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
contient les classes du modèles.
Remarques:
README.txt
dans le répertoire racine du projet maven dans lequel vous pourrez mettre les remarques et/ou justifications à adresser au correcteur.Mettre en place un mapping avec un modèle relationnel en utilisant l'API JPA dans une base relationnelle1):
META-INF/persistence.xml
approprié
Il est possible de modifier le modèle, en particulier en ajoutant/modifiant des méthodes. Toute modification doit cependant être justifiée dans le fichier README.txt
.
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
Créer une classe tiw5.modele.InfosFilms contenant une liste de personnes, une liste de films et une liste de sociétés. Ajouter les annotations JAXB pour la sérialisation XML et mettez à jour le schéma XML.
Le projet maven interface-web
contient un squelette d'application Web.
Créer une servlet renvoyant une représentation XML d'un film en fonction de son numéro, ainsi qu'une page HTML avec un formulaire pour la tester facilement. Changer la servlet pour envoyer la représentation XML d'une instance d'InfosFilms contenant le film et toutes les personnes et les sociétés qui y sont liées.
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. Les personnes/sociétés (et les détails les concernant) seront indiquées dans la description du film.