Archive

Articles taggués ‘Java EE’

MD DAY 2009 : modernisation du SI grâce au MDA – en ligne

logo_md_day 2009La 3ème édition du MD Day a été un succès, avec plus de 230 participants venus assister aux 12 conférences et cas clients consacrés aux approches Model Driven.

Toutes les présentations sont disponibles au téléchargement sur le site http://www.mdday.fr/, en particulier celle d’Objet Direct et de son client le CIG Petite Couronne : Grégory Weinbach (OD) et Yannick Chazeau (CIG) ont raconté le succès du projet de modernisation du SI du CIG, grâce à une approche innovante basée sur le MDA (Model Driven Architecture) => l’équipe projet a mené à bien en 1000 jours/hommes la refonte globale d’un parc applicatif client/serveur qui avait nécessité 4800 j/h (22 années/hommes) de développement.  Les applications cibles Web Java/Seam/JSF, ont été développées en Scrum.

Disponibles également les présentations des autres partenaires et des keynote speakers Jean Bézivin et Andrew Watson, VP et Directeur Technique de l’OMG.

Paris JUG octobre 2009 : JSF2 et Servlet 3.0

Tout d’abord, une bonne adresse à noter : si vous ratez les rendez-vous du JUG Parisien, vous pouvez désormais les rejouer à cette adresse http://beta.parleys.com/#st=4&id=56644.

JSF 2.0

La présentation JSF2 faite par Damien Gouyette et François Petitit a détaillé, non pas uniquement les nouveautés JSF2, mais une présentation complète du framework en marquant les nouveautés 2.0.

La présentation est intéressante même pour un débutant JSF. Je ne détaillerai ici que les nouveautés de la mouture 2009 du framework d’IHM de la spec JEE.

On note que JSF2 est bien entendu, complètement inclus dans JEE6 (dont Antonio Goncalves rappelle qu’il fera une présentation au Paris JUG de décembre) et est compatible JEE5.

Voici donc les nouveautés :

  • Une déclaration des managed beans de la sorte :

@ManagedBean

@SessionScoped

public class MonBean {

}

La convention dit que ce bean sera accessible dans la vue par son nom de classe ; première lettre en minuscule : ‘monBean’

  • Validation des vues via les annotations Hibernate Validator (ce qui permet une vérification centralisée des contraintes)
  • Un nouveau scope, le ‘view scope’ ayant une durée de vie égale à la durée de vie de la vue. Scope qui s’intercale donc entre request et session
  • Un des principaux apports de cette nouvelle version est le support natif d’AJAX. On ajoute le support Ajax à un composant JSF en insérant le tag <f:ajax>

<h:inputText ….>

<f:ajax render= »autreChamp » />

</h:inputText>

  • Les Jsp sont abandonnées (mais restent compatibles) au profit des Facelets XHTML. Les Facelets apportent notamment le concept de « templating », permettant de réutiliser aisément des sections de la vue.
  • EZComp permet de créer facilement des composants uniquement via les Facelets (plus de Java nécessaire pour des composants simples) en leur déclarant une interface puis un contenu créé de façon similaire à celui des vues qui sont, elles aussi, des Facelets.

Un exemple des plus classiques : ici on a créé un composant qui prend un attribut ‘value’ :

<!DOCTYPE html PUBLIC « -//W3C//DTD XHTML 1.0 Transitional//EN »

« http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd »>

<html xmlns=« http://www.w3.org/1999/xhtml »

xmlns:h=« http://java.sun.com/jsf/html »

xmlns:ezcomp=« http://java.sun.com/jsf/composite »>

<body>

<ezcomp:interface>

<ezcomp:attribute name=« value » required=« true »/>

</ezcomp:interface>

<ezcomp:implementation>

<!– Les mots clés cc.attrs sont réservés par JSF2 pour accéder aux attributs/paramètres passés au composant –>

<h:outputText value=« Hello #{cc.attrs.value} » />

</ezcomp:implementation>

</body>
</html>

Ce composant est déclaré dans ‘WEB-INF/resources/’ puis utilisé tout simplement :

<ez:mycomp value= »world » />

Je vous laisse deviner le résultat …

  • Un autre apport non négligeable est la gestion de profils d’environnement : « prod », « testUnit » …
  • La gestion des ressources statiques est améliorée : on n’a plus besoin de gérer ces ressources dans le WEB-INF de son projet. Elles peuvent être apportées par un jar.

On note donc une évolution de la spec, reprenant de bonnes idées. On retrouve notamment de nombreux concepts apparus dans des frameworks et librairies JEE comme Seam ou ajax4jsf.

Servlet 3.0

Mon retour sera beaucoup plus rapide sur ce sujet qui nous touche quotidiennement … mais de loin puisque les frameworks que nous utilisons nous font travailler à un plus haut niveau.

La présentation de l’API par Rémy Maucherat concernait donc plus particulièrement les personnes développant ces frameworks. Néanmoins un tour d’horizon permet d’apercevoir quelques impacts sur notre façon de travailler avec ces frameworks :

  • Actuellement, lors de l’ajout d’un framework il est nécessaire de configurer le fameux fichier web.xml afin de notifier le conteneur de servlet de la présence de ce framework.Cela sera remplacé par des web-fragments vivant à l’intérieur des jars des frameworks et donc intégrés au web.xml par le conteneur à l’initialisation.
  • Le deuxième point marquant est la gestion de l’exécution asynchrone des Servlets. Actuellement on réserve un processus pour traiter une requête et la gestion asynchrone devait être gérée par ailleurs.
    Servlet 3.0 permet de rendre un traitement asynchrone et donc de libérer des ressources tout en ayant des requêtes longues. En travaillant sur ce point les frameworks devraient gagner en performance.

Fortement lié au contenu de ce post, un post précédent traitait des nouveautés JEE6.

Categories: Java EE Tags: , , , ,

Hibernate : fonctionnement et bonnes pratiques – Héritage

Le Wiki d’Objet Direct contient une section Hibernate depuis un certain temps.  Cette section commence à être assez étofée et propose des articles techniques très pointus.  Elle vient de s’enrichir d’un article de Gérald Quintana concernant l’héritage. Cet article met en perspective les différentes approches autorisées par Hibernate, délivre des détails d’implémentation et des limites peu connus. La section Hibernate contient aussi la série des articles « Hibernate survival Guide » rédigée par Henri Darmet, dans leur version longue.

3 événements techniques Objet Direct – Spring – HP en juin

hp-logox-u-21954-33logo-springsource2« Spring pour accélérer les développements, oui ! Mais quelle stratégie de mise en oeuvre, quels choix d’architectures ?« .

SpringSource, Objet Direct et son client HP conjuguent leurs expertises et leurs retours d’expériences pour présenter des solutions et des architectures éprouvées en termes de performance, de qualité et de productivité.

3 sessions :

Ce sera la première fois que SpringSource participera à des événements publics en région Rhône-Alpes!

Pour vous inscrire, rendez-vous sur le site d’Objet Direct : inscription

Journée « L’Open Source SUN à l’honneur » – suite : GlassFish v3 Prelude

GlassFish est le serveur d’applications Open Source de Sun. La version v2 de GlassFish a été lancée en avril 2008. La version Entreprise Server v3, quant à elle, est prévue pour le début 2009. Cette version (Prelude) implémente certains composants Java EE 6.

GlassFish v3 Prelude se veut modulaire (architecturé autour d’un cœur OSCGi), léger, rapide et extensible (HK2).

Grâce à la modularité, GlassFish permet de supporter d’autres langages, en plus de Java, comme JRuby on Rails, Grails, etc. Un autre résultat de la modularité est le fait de n’embarquer dans GlassFish que les technologies nécessaires pour votre développement. Par exemple, si vous ne faites pas d’EJB vous ne serez pas obligé d’embarquer dans votre serveur d’applications un container pour cette technologie.

GlassFish permet un déploiement automatique et incrémental des applications Web. En effet, grâce à la sérialisation des sessions par le serveur, les données de la session sont sauvegardées et intactes. Ce qui permet, lors des phases de test d’un use case un peu long, de reprendre son déroulement dans l’état où il était avant toute modification et redéploiement.

GlassFish offre un mode embarqué (« GlassFish embedded »). Ce mode embarqué  est un mini conteneur intégrable et pilotable via une API Java. Le serveur se compose à la demande selon les composants que vous voulez embarquer.  Le code ci-dessous montre la simplicité d’utilisation du mode embarqué.

GlassFish glassfish = new GlassFish();
glassfish.minimallyConfigure(8080);
GFApplication app = glassfish.deploy(new File("sample.war"));
...
app.undeploy();
glassfish.stop();

En conclusion, GlassFish v3 Prelude offre un avant-goût de Java EE 6. Cette version permettra de tester certains composants de Java EE 6 comme :

  • JAX-RS 1.0 pour le développement de services REST
  • EJB 3.1
  • JSF 2.0 dont les spécifications ne sont pas encore terminées
  • Servlet 3.0 prévue pour bientôt.

Un « UpdateCenter » intégré permet d’installer facilement les modules, comme par exemple les toutes dernières versions « preview » des spécifications Java EE 6. L’administration du serveur peut maintenant être pilotée en REST sur le port d’administration. Il est à noter que GlassFish est intégré aux deux IDE : NetBean et Eclipse.

Categories: Java EE Tags: , ,