Author: athimel Date: 2012-07-09 18:44:29 +0200 (Mon, 09 Jul 2012) New Revision: 2607 Url: http://nuiton.org/repositories/revision/topia/2607 Log: Add a small HOWTO about migration to ToPIA 3 Added: trunk/doc/migration-to-topia-3.rst Added: trunk/doc/migration-to-topia-3.rst =================================================================== --- trunk/doc/migration-to-topia-3.rst (rev 0) +++ trunk/doc/migration-to-topia-3.rst 2012-07-09 16:44:29 UTC (rev 2607) @@ -0,0 +1,91 @@ +Migration vers ToPIA 3 +====================== + + +Dépéndances +----------- + +L'ancien topia-pesistence est maintenant séparé en 2 modules. +Pour la génération, vous n'avez besoin que du module topia-persistence. + +En runtime par contre, vous aurez besoin du module Hibernate de ToPIA : topia-persistence-hibernate. + +Dans votre dependency-management, ajoutez donc : + + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + <version>${topiaVersion}</version> + </dependency> + + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence-hibernate</artifactId> + <version>${topiaVersion}</version> + <scope>runtime</scope> + </dependency> + +avec la propriété : + <topiaVersion>3.0-SNAPSHOT</topiaVersion> + +Il est aussi nécessaire d'utiliser au moins la version 2.4.3-SNAPSHOT d'Eugene : + <eugeneVersion>2.4.3-SNAPSHOT</eugeneVersion> +Et de renommer si besoin le plugin maven : "maven-eugene-plugin" devient "eugene-maven-plugin" + +Le plugin eugene a besoin d'une dépendance supplémentaire, qui est : + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jpa_2.0_spec</artifactId> + <version>1.1</version> + </dependency> + +Dans un module qui n'a pas de runtime, supprimez la dépendance vers Hibernate et ajoutez cette même dépendance en provided : + + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jpa_2.0_spec</artifactId> + <version>1.1</version> + <scope>provided</scope> + </dependency> + +Il faut aussi maintenant utiliser la version 4 d'Hibernate : + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>4.1.3.Final</version> + </dependency> + + +Configuration +------------- + +Les propriétés de ToPIA lui sont maintenant spécifiques. + +Par exemple, + hibernate.connection.url +devient + topia.connection.url + +Les propriétés utilisés sont disponibles sur la classe org.nuiton.topia.TopiaContextFactory. +Par exemple : org.nuiton.topia.TopiaContextFactory#CONFIG_URL = "topia.connection.url" + + +API +--- + +Peu de changements dans l'immédiat. Si vous accédiez à la session Hibernate (getHibernate()), vous devriez maintenant +retrouver vos petits avec (getEntityManager()). + +La javadoc de l'API ToPIA a été améliorée, n'hésitez pas à la consulter. + + +FAQ +--- + +Q : "No Persistence provider for EntityManager named topia" +A : C'est probablement parce que vous n'avez pas inclus "topia-persistence-hibernate" en dépendance "runtime" de votre projet + +Q : "java.lang.NoClassDefFoundError: org/hibernate/event/spi/EventType" +A : C'est probablement parce que vous n'utilisez pas la version 4 d'Hibernate +