PROJET JEE APPROFONDI STRIPES / TOPLINK 19 / 05 / 2010 Yann Gonzalez , Amaury Languillat, Vincent Laronde, Anys Mechkar, Arnaud Recher Sommaire Présentation du Projet Organisation du Projet Le Framework MVC : Stripes Le Framework de Persistence : TopLink Comparaison avec les autres Frameworks Etude de cas : le Forum Conclusion Présentation du Projet Les frameworks choisis : - MVC : Stripes - Persistence : TopLink But du projet : apprendre à utiliser des frameworks par nous-mêmes Organisation du Projet Recherche générale > Commune Installation de TopLink > Amaury Installation de Stripes > Vincent Installation des 2 frameworks > Yann et Amaury Rédaction des guides d’installation > Vincent et Amaury Présentation PowerPoint > Commune Organisation du Projet Base de données et intégration > Amaury Gestion du forum > Arnaud Gestion des créations (comptes, sujets) > Yann Gestion des modifications (comptes, sujets) > Vincent Design, gestion des posts > Anys Le Framework MVC : Stripes Le FrameWork MVC : Stripes STRIPES FRAMEWORKS. Site officiel : http://www.stripesframework.org/pages/viewpage.action?pageId=2229 (Version Française) http://www.stripesframework.org/display/stripes/Quick+Start+Guide (Version Anglaise) WIKIPEDIA. Stripes – Wikipédia : http://fr.wikipedia.org/wiki/Stripes. MARK EAGLE. Java Web Development with Stripes : http://www.onjava.com/pub/a/onjava/2007/01/24/java-web-development-withstripes.html. IPPON TECHNOLOGIES. Le blog des experts J2EE : http://blog.ippon.fr/2008/02/08/oui-aux-rayures. Le Framework MVC : Stripes STRIPES est un framework de type MVC (Modèle Vue Contrôleur), utilisant les dernières technologies Java, permettant de développer des applications Web. Le principal objectif qui a prévalu à la conception de ce nouveau framework est de rendre facile l'extension de Stripes, sans requérir une configuration trop détaillée, et externe. Ce qui fait de Stripes un outil facilitant le développement, fournissant des solutions simples et puissantes aux problèmes ordinaires, tout en gardant un temps d’apprentissage inférieur à 30 minutes. Le Framework MVC : Stripes Les pré-requis Ajout des bibliothèques Posséder Eclipse (version > 3.4.2) Posséder Apache (version > 6.0.18) Télécharger Stripes ICI ! Configuration du web.xml Configuration dépendante de chaque projet Dans notre cas, faire un copier/coller de stripes.xml Ajout des 3 fichiers en .jar Stripes.jar commons-loggins.jar cos.jar Création des ActionBean et JSP Mise en place des ActionBeans (Modèle – Contrôleur) Mise en place des JSP (Vu) Le Framework MVC : Stripes L’un des plus grand point fort de Stripes est l’utilisation des JSP et des ActionBeans, simplifiant et rendant intuitive le développement en Java. JSP Pour l'affichage des pages. Elles permettent de concevoir les pages plus rapidement, avec une prise en main facile et intuitive. ActionBeans Ces objets reçoivent les données d'un formulaire, et contiennent les actions de celui-ci. Framework de Persistence : TopLink Le Framework de Persistence : TopLink Les pré-requis Posséder un IDE Posséder un SGBD Connaissances Java, SQL et XML Ajout des bibliothèques Configuration du persistence.xml Sensiblement la même pour tous les projets A mettre dans les sources du projet dans un dossier META-INF Gère la génération de .sql Pour TopLink : toplink-essentials.jar toplink-essentials-agent Pour la connexion à la BDD MySQL : mysql-connector-java-5.*-bin.jar Configuration du orm.xml Fichier de mapping Permet de créer des alias aux requêtes SQL Le Framework de Persistence : TopLink TopLink fournit une plateforme puissante et flexible permettant de stocker des objets Java dans une base de données relationnelle et/ou de les convertir en documents XML. TopLink Essentials est la version open source du produit d'Oracle. TopLink remplacé par EclipseLink depuis mars 2008 Fonctionne avec : - n’importe quelle application serveur - n’importe quel outil de développement - n’importe quelle architecture JEE Comparaison avec les concurrents Comparaison avec les autres Frameworks Framework Persistance Framework MVC Java Server Faces Spring Struts 2 Tapestry Hibernate JAXB Comparaison avec les autres Frameworks Java Server Faces Spring + Le standard Java EE + Développement rapide + Beaucoup de bibliothèques de composants - Validation moins fournie - Moins de documentation + L’inversion de contrôle facilite les tests Struts 2 Tapestry + Architecture simple + Productivité accrue une fois pris en main + Séparation des pages HTML du Java, un plus pour les designers - Documentation très conceptuelle, plutôt que pragmatique - Beaucoup de conventions + Customisation du rendu des tags - Documentation mal organisée - Pas d’alerte sur les propriétés manquantes ou non valides + Facilité d’intégrer d’autres frameworks et bibliothèques - Configuration complexe - Aucune prise en charge intégrée d’Ajax Comparaison avec les autres Frameworks Stripes + Facilité de configuration Bonne documentation, apprentissage facilité Communauté enthousiaste Petite communauté Pas aussi activement développé que d'autres projets Comparaison avec les autres Frameworks Hibernate JAXB + Mise en place facile et rapide + Hibernate génère le code SQL + Pouvoir lire et écrire dans une vaste gamme de type d'entrée/sortie + Portabilité du code + Facilité d’utilisation - Nécessite d'apprendre à l'utiliser - Utilisation d'annotations, altérations des classes d’origines Toplink + Génère le code SQL + Puissant - Configuration laborieuse - Très peu de documentations Difficultés rencontrées Configuration du « Build Path » pour charger correctement toutes les bibliothèques TopLink : - configuration du persistence.xml (tables dropées …) - impossibilité de créer le contexte de persistance sans le déclarer comme singleton (avec static) Stripes : - gestion des scopes pour garder la connexion de l’utilisateur sur toutes les pages - affichage des données de la base dans les jsp Etude de cas : le Forum Conclusion Facilité à trouver des informations sur Stripes Très peu de documentations sur TopLink qui est moins facile à prendre en main que Hibernate Stripes : Léger mais compliqué à utiliser TopLink : Puissant pour la persistance mais dur à configurer par manque de documents Questions