Ceci est une ancienne révision du document !
Ce TP est à rendre pour le 03/10/2012, à raison d'un rendu par binôme.
URL de rendu SPIRAL: http://spiralconnect.univ-lyon1.fr/spiral/spiral.html#/activities/goto_folder/1742262
Il est demandé de rendre le TP sous forme d'un dépôt Mercurial qui aura été initialisé en clonant le dépôt indiqué ci-dessous. Mercurial est un gestionnaire de version, au même titre que par exemple git. A la différence de svn ou CVS c'est système décentralisé, permettant de réaliser des commit sans connexion avec un quelconque serveur central. Une introduction rapide à Mercurial est à disposition ici.
hg clone mon-repertoire-de-dev le-repertoire-a-zipper
puis zipper le répertoire ainsi obtenu;
mvn clean
dans le projet racine (projet
) avant la compression, en ayant quitter l'environnement de développement afin d'éviter toute recompilation intempestive.
Le but de ce TP est mettre en place un petit modèle de données objet ainsi que des mappings entre ce modèle et les modèles relationnels et semi-structurés.
Un projet maven de départ est disponible ici:
hg clone https://forge.univ-lyon1.fr/hg/inf2018m-2012-tpbase
Ce projet comporte des sous-projets. Le projet modele
contenant les classes du modèles est dans le répertoire projet
.
Remarques:
Mettre en place un mapping avec un modèle relationnel en utilisant l'API JPA dans une base relationnelle1):
META-INF/persistence.xml
appropriéQuelques liens utiles:
Remarque: les dépendances sur l'API JPA et le runtime hibernate sont déjà déclarées dans le pom.xml du projet, ainsi qu'une dépendance vers les pilotes JDBC pour derby dans le cadre des tests.
jdbc:derby:nomDeLaBd
org.apache.derby.jdbc.EmbeddedDriver
org.hibernate.dialect.DerbyDialect
hibernate.hbm2ddl.auto
à update
Mettre en place un mapping avec XML via JAXB3):
Quelques liens utiles:
Remarque:
@XmlTranscient
Ajouter les classes tiw5.modele.Artiste
au modèle, mettre à jour les mappings relationnels et XML, ainsi que le schéma XML.
On considère qu'un artiste a au moins un nom et un prénom, ainsi qu'un identifiant numérique.
La classe Cd doit avoir la liste principale des artistes associés.
On souhaite pouvoir préciser pour chaque piste un ensemble d'artistes ayant participé directement à ce morceau, en plus des artistes de la liste principale du cd.
Adapter le schéma XML pour prendre en compte les artistes.
Adapter vos tests unitaires le cas échéant.
Le projet maven interface-web
contient un squelette d'application Web.
Créer une servlet renvoyant une représentation XML d'un album en fonction de son numéro, ainsi qu'une page HTML avec un formulaire pour la tester facilement.
Ajouter la possibilité de passer paramètre format
donnant le choix entre le format XML défini dans le fichier xsd
du modèle et le format XHTML. La présentation XHTML se fera via l'application d'une feuille de style XSL