Ceci est une ancienne révision du document !


TIW5 TP Modèle de données

Année 2013-2014

<note warning>Sujet non terminé</note>

Sources des données: Freebase (cf le type Wine).

Binômes / Trinômes

Les binômes / trinômes pour ce TP sont à constituer de la manière suivante:

  • maximum 2 étudiant(e)s ayant fait le M1 au département l'an dernier;
  • minimum 1 étuduant(e) ayant fait le M1 au département l'an dernier;
  • tout trinôme doit contenir au moins un étudiant n'ayant pas fait le M1 au département l'an dernier;
  • les binômes/trinômes sont à choisir dans la mesure du possible au sein des groupes TI5.

Mise en place

Télécharger le projet maven suivant: inf2018m-2013-base.zip

Ce projet contient:

  • un fichier pom.xml préconfiguré avec les dépendances vers junit, hibernate et postgresql pour les tests
  • un fichier src/main/resources/setup-pg.sql qui contient le code SQL pour créer des tables dans postgresql
  • un fichier XML Schema src/main/resources/wine.xsd
  • des classes dans les packages sw.wine.model et sw.wine.model.dao situés dans src/main/java
  • des interfaces dans les packages 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 1) vers votre projet forge. N'oubliez pas de partager votre projet avec votre binôme (vos trinômes)

Travail demandé

  1. Comprendre les schémas SQL et XML
  2. Utiliser JPA (cf TP A completer) pour annoter les classes du package sw.wine.model (sauf WineCollection) de façon à pourvoir utiliser la base PostgreSQL comme support de persistance.
  3. Compléter les classes du package sw.wine.model.dao en utilisant JPA.
  4. Ecrire une classe de test unitaire pour vérifier le bon fonctionnement du mapping JPA.
  5. Annoter les classes du package 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.
  6. Ecrire une classe de test unitaire pour vérifier le bon fonctionnement de la (dé)sérialisation avec JAXB.

<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.</note>

1)
i.e. le projet maven