Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:tp:sw:donnees:2014 [2014/09/11 14:50]
ecoquery [Travail demandé]
enseignement:tp:sw:donnees:2014 [2014/09/23 07:19] (Version actuelle)
ecoquery [Travail demandé]
Ligne 29: Ligne 29:
 ===== Mise en place ===== ===== Mise en place =====
  
-Télécharger le projet maven suivant: {{:enseignement:tp:sw:donnees:inf2018m-2014-base.zip|}}+Télécharger le projet maven suivant: {{:enseignement:tp:sw:donnees:inf2018m-2014-base.zip|}}.
  
 Alternativement, il est possible de cloner le dépôt de l'énoncé: https://forge.univ-lyon1.fr/hg/inf2018m-2014-base . Alternativement, il est possible de cloner le dépôt de l'énoncé: https://forge.univ-lyon1.fr/hg/inf2018m-2014-base .
Ligne 35: Ligne 35:
 Ce projet contient: Ce projet contient:
   * un fichier ''pom.xml'' préconfiguré avec les dépendances vers junit, hibernate et [[http://www.h2database.com|h2]] pour les tests   * un fichier ''pom.xml'' préconfiguré avec les dépendances vers junit, hibernate et [[http://www.h2database.com|h2]] pour les tests
-  * un fichier ''src/main/resources/setup-h2.sql'' qui contient le code SQL pour créer des tables dans postgresql+  * un fichier ''src/main/resources/setup-h2.sql'' qui contient le code SQL pour créer des tables dans H2
   * un script ''build-h2.sh'', dont il faut éventuellement éditer la variable ''H2JAR'' pour initialiser une base H2 dans le répertoire target((je suis preneur d'un éventuel ''.bat'' similaire pôur Windows))   * un script ''build-h2.sh'', dont il faut éventuellement éditer la variable ''H2JAR'' pour initialiser une base H2 dans le répertoire target((je suis preneur d'un éventuel ''.bat'' similaire pôur Windows))
   * un fichier XML Schema ''src/main/resources/film.xsd''   * un fichier XML Schema ''src/main/resources/film.xsd''
Ligne 48: Ligne 48:
   - Comprendre les schémas SQL et XML   - Comprendre les schémas SQL et XML
   - Utiliser JPA (cf TP [[enseignement:tp:bd:tp-orm:2012|Mise en oeuvre de mappings Objet/Relationnels]]) pour annoter les classes du package ''sw.film.model'' (sauf ''FilmCollection'') de façon à pourvoir utiliser une base H2((typiquement celle créée par le script ''build-h2.sh'' décrit ci-dessus)) comme support de persistance.   - Utiliser JPA (cf TP [[enseignement:tp:bd:tp-orm:2012|Mise en oeuvre de mappings Objet/Relationnels]]) pour annoter les classes du package ''sw.film.model'' (sauf ''FilmCollection'') de façon à pourvoir utiliser une base H2((typiquement celle créée par le script ''build-h2.sh'' décrit ci-dessus)) comme support de persistance.
-  - Compléter les classes du package ''sw.film.model.dao'' en utilisant JPA.+  - Compléter les classes du package ''sw.film.model.dao.jpa'' en utilisant JPA.
   - Ecrire une classe de test unitaire pour vérifier le bon fonctionnement du mapping JPA.   - Ecrire une classe de test unitaire pour vérifier le bon fonctionnement du mapping JPA.
   - Annoter les classes du package ''sw.film.model'' (y compris FilmCollection) 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.   - Annoter les classes du package ''sw.film.model'' (y compris FilmCollection) 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.
-  - Ecrire une classe de test unitaire pour vérifier le bon fonctionnement de la (dé)sérialisation avec JAXB, y compris le respect du schéma XSD. +  - Ecrire une((au moins)) classe de test unitaire pour vérifier le bon fonctionnement de la (dé)sérialisation avec JAXB, y compris le respect du schéma XSD. 
-<note warning>Attention, il est interdit de modifier les interfaces du package ''sw.film.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>Attention, il est interdit de modifier les interfaces du package ''sw.film.model.dao'' 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. Il est interdit de changer la signature des méthodes publiques des classes fournies.</note> 
-<note warning>De même, il est interdit de changer le schéma de la BDD ou le schéma XML</note>+<note warning>De même, il est interdit de changer le schéma de la BDD ou le schéma XML.</note>
  
 ===== Ressources ===== ===== Ressources =====
Ligne 66: Ligne 66:
   * [[http://download.oracle.com/javase/6/docs/api/|API Java 6]] -> package javax.xml.bind et sous-packages   * [[http://download.oracle.com/javase/6/docs/api/|API Java 6]] -> package javax.xml.bind et sous-packages
  
-Fichier ''persistence.xml'' à placer dans ''src/test/resources/META-INF'':+Fichier ''persistence.xml'' placé dans ''src/test/resources/META-INF'':
 <file xml persistence.xml> <file xml persistence.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Ligne 72: Ligne 72:
   <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">   <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>     <provider>org.hibernate.ejb.HibernatePersistence</provider>
-    <class>...</class>+    <class>...</class> <!-- compléter ici avec les classes du mapping OR -->
     <properties>     <properties>
       <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>       <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>