tapestry (mvc) et jaxb (persistance en xml) christopher bigozzi, raouda mcharek, samir sadroudine

21
Présentation des frameworks pour Java EE Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Upload: blanche-cuvelier

Post on 03-Apr-2015

117 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Présentation des frameworks pour Java EE

Tapestry (MVC) et JAXB (Persistance en XML)

Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Page 2: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Sommaire

I. Pré-requisII. TapestryIII. JAXBIV. Cas d’étude

Page 3: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Pré-requis

Connaissance de JavaConnaissance des fondements du web

(HTML,HTTP)Connaissance des technologies de J2EE

(Servlet et balises personnalisées)Connaissance des architectures des serveurs

web

Page 4: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Tapestry

1) Qu’est-ce que Tapestry ?2) Fonctionnalités de Tapestry3) Avantages et inconvénients de Tapestry 4) Installation de Tapestry5) Application de Tapestry

Page 5: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Qu’est-ce que Tapestry?utilisation XML pour implémenter des

applications Web en suivant le motif de conception MVC

projet intégré par la fondation Apache comme sous-projet Jakarta..

http://tapestry.apache.org/

Page 6: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Avantages et inconvénientsAvantages :

Rapidité de développement, configuration minimale et URLs claires Prise en charge de nombreuses problématiques permettant au

développeur de se concentrer sur la partie métier Séparation complète de la présentation HTML du code Java Souplesse d’utilisation (développement de ses propres composants) Facilité d’intégration avec Hibernate et Spring.

Inconvénients : Absence de mapping relationnel spécifique : il faut utiliser JDBC ou

Hibernate Masquage de nombreux mécanismes web Manque de maturité (composants incomplets, communauté limitée,

documentation et tutoriaux insuffisants). Pas de rétro-compatibilité avec la version 4.

Page 7: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Installation de Tapestry

Tapestry n’est pas un simple plugin de Eclipse, mais une librairie qu’il faut configurer

Il suffit de mettre les .jar dans le dossier : WEB-INF/lib

Page 8: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Application de Tapestry2 types de fichiers qui sont liés:

Logique (.java) : code métier de la page Graphique (.tml ou .html) : vue de la page

Accueil.java Accueil.tml

Page 9: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Fonctionnement accueil .tml

<t:form t:id="loginForm"><t:textfield t:value="message"/><input type="submit" value="Submit"/>

</t:form>

accueil. java@OnEvent(value="submit", component="loginForm") void onFormSubmit() {

System.out.println("Handling form submission!");}

Page 10: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

• t:validate=required

• Spécification dans le fichier app.Property

Page 11: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

JAXB (Java Architecture for XML Binding)

1) Qu’est-ce que JAXB ?2) Installation de JAXB3) Fonctionnement de JAXB4) Avantages et inconvénients de JAXB5) Application de JAXB

Page 12: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Qu’est-ce que JAXB ? librairie Java implémentée par SUN pour

générer du Code Java depuis un fichier XML et inversement

Site de référence: https://jaxb.dev.java.net/

API Java permettant de créer des classes Java à partir de Schémas (.XSD) et inversement

Page 13: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Fonctionnalités de JAXBData Binding : automatiser la transformation d'un modèle

de données en un modèle de données objets dans un langage de programmation

3 étapes: Génération de classes Rassemblement des données Redistribution des données

Objectif final : mise en correspondance automatique entre une famille de documents XML et un schéma de classes Java.

Page 14: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Installation de JAXB Installation du plugin XJC de Eclipse

Télécharger le plugin à cette adresse : https://jaxb-workshop.dev.java.net/plugins/eclipse/xjc-plugin.html

Le placer dans le dossier /plugins/ de Eclipse

Faire la commande ‘eclipse.exe - clean’ pour prendre en compte les nouveaux plugins

Créer un schéma fichier.xsd décrivant les données

Puis clic bouton-droit sur le fichier Normalement une nouvelle option est apparue : JAXB 2.0.

L’installation du plugin a été faite correctement

Page 15: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Fonctionnement général

Page 16: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

1ière étape : création de classes

Création d’un .xsdLancer JAXB en

utilisant eclipse

Création de n fichiers :Des .javaUne fabrique,

permet d’instancier les objets

Page 17: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

2ième étape : Marshalling Génération d’un fichier

XML depuis des objets JAVACréation d’un contexte et

indication du package source

JAXBContext jaxbContext=JAXBContext.newInstance(Projet.class);

Création d’un « marshaller »Marshaller marshaller=jaxbContext.createMarshaller();

Génération du XMLmarshaller.marshal(projet, new FileOutputStream(emplacement));

Le XML est crée

Page 18: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

3ième étape : UnmarshallingGénération des objets JAVA

depuis un XMLCréation d’un contexte et

indication du package source

JAXBContext jaxbContext=JAXBContext.newInstance(« Contacts_JAXB »);

Créer un « unmarshaller » sur le contexte

Unmarshaller unmarshaller=jaxbContext.createUnmarshaller();

Création de l’objet Projet projet = (Projet)unmarshaller.unmarshal(emplacement);

Page 19: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Avantages et inconvénients de JAXB Avantages :

Lire et écrire dans une vaste gamme de type d'entrée/sortie (Fichier, Flux, Noeud Dom ...etc...)

Facilité d'utilisation

Inconvénients : Utilisation d'annotations, ce qui oblige a altérer les

classes d'originesReformatage des classes pour avoir soit des

méthodes get/set annotées ou des variables annotées

Page 20: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Comparaison avec d’autres Frameworks

Même utilisation que JAXP (SAX et DOM), mais niveau d’abstraction plus élevé, plus rapide

Nécessité d’installer des grosses librairies à l’inverse de Frameworks comme Castor

Page 21: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

CONCLUSION

Documentation difficile à trouverOn a pu travaillé notre anglais ;)Prise en main difficile malgré la simplicité

apparente d’utilisation