Java EE 6, une plateforme simple et légère. Spring n’a qu’à bien se tenir !

Article publié par Romain Schlick le 1 février 2012.

Catégorie(s) : Java / JEE

 

23 commentaires »

La plateforme Java EE conserve de nos jours encore une mauvaise réputation. Les fameux EJB 2 et conteneurs lourds démarrant en plusieurs minutes vous rappelleront quelques bons souvenirs. L’arrivée de Spring a ouvert la voie aux conteneurs légers, à l’inversion de contrôle, ou encore à l’injection de dépendances; et est devenue la solution de référence. Cependant, la plateforme Java EE a beaucoup évolué entre temps.

Nous allons voir que Java EE 6 n’a maintenant rien à envier à Spring. Cette plateforme est devenue légère et simple à prendre en main. Toutes les spécifications ne seront pas abordées en détails.  Nous parlerons plutôt de conteneurs légers et testables, de managed beans, d’EJB Lite, ainsi que des nombreux services et patterns offert par la plateforme.  Nous terminerons par la spécification CDI et ses extensions portables, qui offrent de belles perspectives à la plateforme Java EE 6.

Lire la suite de cet article »

Devoxx – The evolution of Java – Past, Present and Future

Article publié par Olivier Michallat et Nicolas Jozwiak le 1 décembre 2011.

Catégorie(s) : Java / JEE

 

2 commentaires »

Mots-clefs :,

Pour cette avant-dernière session de la conférence, l’incontournable Joshua Bloch remplit comme à son habitude la grande salle de Devoxx. Il nous présente aujourd’hui une rétrospective des meilleures et des pires fonctionnalités ajoutées au fil des versions de Java. Sa critique est objective et sans détours, d’autant qu’il a participé de près ou de loin à bon nombre des sujets abordés.

Lire la suite de cet article »

JEE6 – Glassfish 3.1, Clustering & Failover

Article publié par Issam El Fatmi le 23 novembre 2011.

Catégorie(s) : Java / JEE

 

4 commentaires »

En Java EE, on parle souvent de clustering de serveurs d’application pour évoquer la mise en relation d’un certain nombre de serveurs.

On parle également de failover pour parler de la capacité à rendre l’indisponibilité d’un ou de plusieurs serveurs du cluster complètement transparente vis à vis du client; cela se traduit par le fait de garantir au client la reprise du même contexte d’exécution qui existait en amont de l’apparition de la panne du serveur incriminé.

Glassfish V3, l’implémentation de référence de JEE6 (JSR 316), inclut à partir de sa version 3.1 des nouvelles fonctionnalités de clustering (synchronisation lors du démarrage d’une nouvelle instance, réplication des changements dynamiques de configuration,…), et offre également un mécanisme de réplication de la session http et des EJB statefull.

Au cours de cet article nous aborderons la mise en place d’un cluster glassfish, la configuration Apache avec le plugin Glassfish Load Balancer et le test du failover à travers une application web.

Il faut noter que toutes les étapes d’installation et de configuration peuvent être réalisées en mode console ou en mode GUI (à travers la console d’administration Glassfish). L’approche console (ligne de commande) a été adoptée.

Lire la suite de cet article »

REST côté serveur avec Java

Article publié par Yves Amsellem le 14 novembre 2011.

Catégorie(s) : SOA

 

Un commentaire »

Voilà 11 ans que Roy Fielding a introduit REST, le style d’architecture original du web appliqué aux échanges inter-applications. Reposant sur HTTP, il promet économie, simplicité et profit des structures réseau en place. Voyons comment l’implémenter via un client JavaScript — présenté dans un article connexe — communiquant avec un serveur Java — présenté ici –. Le code clé-en-main est disponible sur GitHub.

JAX-RS — Java API for RESTful Web Services — standardise l’implémentation de REST en Java (une API + une servlet). Nous retiendrons son implémentation de référence, Jersey, et la déploierons sur un serveur Jetty-Embedded (le code clé-en-main dispose d’un main effectuant le déploiement ; pas besoin d’installer de serveur).

Les web services REST sont des ressources. Une ressource est identifiée par un nom du domaine, produit, commande, etc. HTTP définit 7 verbes pour manipuler les ressources :

  • GET pour la lecture,
  • PUT pour la modification,
  • DELETE pour la suppression,
  • POST pour la création et autre,
  • OPTIONS (verbes disponibles), HEAD (prise de pouls) et TRACE (écho des headers de l’appelant) non abordés

Une fois déployée, la servlet Jersey mappe l’url /resource/* ; la partie cliente est disponible sur /index.html. Le web.xml définit deux filtres Jersey afin de loguer les trames HTTP des échanges client-serveur.

Lire la suite de cet article »

Les méthodes virtuelles d’extension dans Java 8

Article publié par François Sarradin le 5 octobre 2011.

Catégorie(s) : Java / JEE

 

7 commentaires »

Dans un précédant article, nous avons vu les lambda expressions et comment elles allaient apparaître dans Java 8 — l’idée étant d’orienter Java vers un style plus fonctionnel. Mais pour parfaire l’intégration de ce style de programmation dans Java, Brian Goetz indique qu’il faudra modifier l’API Collection pour y ajouter des fonctions telles que filter, map ou fold. Afin de faciliter la mise en place de telles fonctions au sein de l’API Collection, Brian Goetz propose d’intégrer les méthodes virtuelles d’extension (virtual extension method) dans le langage.

Dans cet article, nous allons voir ce que sont les méthodes virtuelles d’extension, comment est-ce que Java résout le lien entre ces méthodes et leur implémentation, et comment est traité le cas du diamant (un problème classique en programmation objet). Puis nous comparerons les méthodes virtuelles d’extension avec une autre approche plus ou moins similaire utilisée dans d’autres langages : les mixins.

Lire la suite de cet article »

Les lambda expressions dans Java 8

Article publié par François Sarradin le 20 septembre 2011.

Catégorie(s) : Java / JEE

 

10 commentaires »

Durant cet été, l’actuel architecte de Java auprès d’Oracle, Brian Goetz, a fourni des informations intéressantes sur l’implémentation des lambda expressions dans le futur Java 8 et de ses conséquences sur le langage. Par lambda expression comprenez ici closure ou fonction anonyme, qu’il est possible de stocker dans une variable ou de retourner depuis une méthode ou depuis une autre fonction, et bien sûr d’appeler. L’intégration des lambda expressions se fait dans le cadre de la JSR 335 (JSR 335: Lambda Expressions for the JavaTM Programming Language), aussi appelé Lambda Project.

Du point vue d’Oracle, la stratégie donnée à Brian est celle-ci :

Oracle’s position is that Java must evolve – carefully, of course – in order to remain competitive. (« La position d’Oracle est que Java doit évoluer – prudemment, bien sûr – afin de rester compétitif. »)

À partir de quoi, Brian propose :

It is my belief that the best direction for evolving Java is to encourage a more functional style of programming. (« Je suis convaincu que la meilleure orientation pour l’évolution de Java est d’encourager un style de programmation plus fonctionnel. »)

Nous allons voir dans cet article, l’état des actuelles propositions faites pour étendre le langage Java vers un style fonctionnel.

Lire la suite de cet article »

Gestion des ressources par Cyrille Le Clerc

Article publié par Xebia France et Cyrille Le Clerc le 6 juillet 2011.

Catégorie(s) : Java / JEE

 

7 commentaires »

Mots-clefs :, ,

Si vous êtes lecteur de notre blog, vous avez probablement entendu parler des journées XKE. Organisées une fois par mois, cette journée est dédiée aux échanges techniques et humains entre les consultants. Nous souhaitons partager avec vous l’une de ces sessions en vidéo. La session, animée par Cyrille Le Clerc, concerne la gestion des ressources en Java, et plus particulièrement leur fermeture.

Gestion des ressources par Cyrille Le Clerc



Tous les podcasts Xebia France :

  • Subscribe with iTunes
  • Xebia France Podcast Feed

Comparaison d’API Java de programmation fonctionnelle

Article publié par François Sarradin le 29 juin 2011.

Catégorie(s) : Java / JEE

 

9 commentaires »

Alors que le Java Community Process (JCP) a annoncé l’apparition de la programmation fonctionnelle dans le langage Java, avec l’introduction des expressions lambda (JSR 335: Lambda Expressions for the JavaTM Programming Language), est-il possible avec la version actuelle de Java de pratiquer ce paradigme ? A l’heure où ces lignes sont écrites, le JCP est en plein brainstorming sur le sujet. Il existe différentes propositions concernant la syntaxe à adopter pour la JSR 335 : une proposition factice, un prototype pour l’OpenJDK serait en cours, la proposition BGGA (comprenez Bracha, Gafter, Gosling et von der Ahé), etc. Mais aucune de ces syntaxes n’ont été officialisées. Toutefois, un premier brouillon devrait apparaître d’ici septembre 2011 en vue d’une sortie officielle a priori avec Java 8 en 2012.

En attendant, il existe un certain nombre d’API permettant aux développeurs d’utiliser la programmation fonctionnelle avec Java sans forcément changer de langage.

Dans cet article, après avoir introduit la programmation fonctionnelle, nous allons nous intéresser à l’état actuel de ce style de programmation dans Java au travers des API suivantes :

  • Guava
  • Functional Java
  • FunckyJFunctional
  • LambdaJ

En partant d’un exemple commun, nous verrons les différences qui caractérisent ces API.
Lire la suite de cet article »

Code retreat juin 2011

Article publié par Jean-Laurent de Morlhon et Simon Caplette le 9 mai 2011.

Catégorie(s) : Java / JEE

 

Aucun commentaire »

En tant que développeur, ne vous êtes vous jamais dit entre deux itérations : « Ah, si seulement j’avais un peu de temps je tenterais d’écrire ce code autrement ? ».

N’attendez plus ! Une code retreat est organisée dans les bureaux de Xebia ce 24 Juin.

L’idée de cette journée est l’amélioration et le partage des compétences au travers d’une pratique répétée de techniques de programmation.
Le principe est le suivant: sur la journée coder en binôme sur plusieurs sessions de 30-45 minutes chacune afin de résoudre un problème. A l’issue de chaque session on change de binôme et tout le code produit est effacé. Drastique mais efficace pour rester créatif. C’est aussi le lieu privilégié pour tester de nouvelles techniques et algorithmes.

Le langage retenu est Java – le code existant du problème étant en Java – et la méthodologie privilégiée le Test Driven Development. Si vous n’êtes que débutant en TDD, cela sera l’occasion d’apprendre aux côtés de gens plus expérimentés.

Rendez-vous le 24 juin à partir de 9h30 jusqu’à 17h dans les bureaux de Xebia au 156 boulevard Haussmann, Paris. Vous aurez besoin d’un ordinateur portable muni de votre IDE préféré. Le repas de midi est fourni.

Le nombre de place est limité à 20;  nous vous invitons à vous inscrire sur http://coderetreat-paris.eventbrite.com

Pour plus de détails sur le fonctionnement d’une code retreat vous pouvez parcourir le billet « How a code retreat works ».

Lancement du projet Platform as a Service « Cloud Foundry » de Spring Source

Article publié par Alexis Kinsella le 13 avril 2011.

Catégorie(s) : Cloud / NoSQL, Java / JEE

 

6 commentaires »

L’attente fut longue, depuis l’annonce du rachat de SpringSource par VMware en août 2009, cependant la synergie VMware + SpringSource semble porter ses fruits. Le terrain a été préparé consciencieusement depuis presque 2 années maintenant, puisque SpringSource/VMware a bâti au fur et à mesure son portefeuille de technologies Cloud, leur permettant à ce jour de proposer sûrement une des offres les plus prometteuses du marché, comme le montre cet historique:

Lire la suite de cet article »

 

Page optimized by WP Minify WordPress Plugin