Ceci est une ancienne révision du document !
Les binômes / trinômes pour ce TP sont à constituer de la manière suivante:
Le TP est à rendre pour 18/09/2013, 23h59. Sauf contre-ordre, envoyer une archive zip par mail à Emmanuel Coquery contenant: le projet maven sans le répertoire target1), ainsi qu'un fichier README.txt contenant les noms et numéros des étudiants du groupe (binôme ou trinôme) ainsi que tout commentaire à destination du correcteur du TP.
Télécharger le projet maven suivant: inf2018m-2013-base.zip
Ce projet contient:
pom.xml
préconfiguré avec les dépendances vers junit, hibernate et postgresql pour les testssrc/main/resources/setup-pg.sql
qui contient le code SQL pour créer des tables dans postgresqlsrc/main/resources/wine.xsd
sw.wine.model
et sw.wine.model.dao
situés dans src/main/java
sw.wine.itf
Utiliser le script SQL pour initialiser la base de données PostgreSQL <note tip>Une base PostgreSQL est disponible sur chaque machine de TP windows, login etudiant, mot de passe etudiant, utiliser le schema public de la base postgres</note>
Le zip est une archive d'un dépôt Mercurial. Créer un projet sur la forge que vous utiliserez pour versionner votre TP. Pousser le dépôt local 2) vers votre projet forge. N'oubliez pas de partager votre projet avec votre binôme (vos trinômes)
sw.wine.model
(sauf WineCollection
) de façon à pourvoir utiliser la base PostgreSQL comme support de persistance.sw.wine.model.dao
en utilisant JPA.sw.wine.model
(y compris WineCollection) avec JAXB pour pouvoir (dé)sérialiser des objets de ces classes au format XML. Le format XML produit/lu devra être valide vis-à-vis du schéma XSD fourni.
<note warning>Attention, il est interdit de modifier les interfaces du package sw.wine.itf
et les classes qui implémentent des interfaces de ce package doivent continuer à le faire. Vous pouvez par contre ajouter à loisir des méthodes publiques supplémentaires dans les classes d'implémentation.</note>
<note warning>De même, il est interdit de changer le schéma de la BDD ou le schéma XML</note>
Quelques liens utiles:
Fichier persistence.xml
à placer dans src/test/resources/META-INF
:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>sw.wine.model.Location</class> <class>sw.wine.model.Bottle</class> <class>sw.wine.model.VarietyComposition</class> <class>sw.wine.model.Wine</class> <properties> <property name="hibernate.connection.username" value="etudiant"/> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> <property name="hibernate.connection.password" value="etudiant"/> <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres"/> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> </properties> </persistence-unit> </persistence>
<note warning>Attention, le hibernate.hbm2ddl.auto
doit bien être à validate
sous peine de modifier le schema de la BDD.</note>