Author: tchemit Date: 2013-12-20 01:02:27 +0100 (Fri, 20 Dec 2013) New Revision: 2945 Url: http://nuiton.org/projects/topia/repository/revisions/2945 Log: refs #2973: Making migration service works again (use generic) Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/AbstractTopiaMigrationCallback.java trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClass.java trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClassNG.java trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByMethod.java Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/AbstractTopiaMigrationCallback.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/AbstractTopiaMigrationCallback.java 2013-12-19 21:25:28 UTC (rev 2944) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/AbstractTopiaMigrationCallback.java 2013-12-20 00:02:27 UTC (rev 2945) @@ -46,7 +46,7 @@ * @version $Id$ * @since 2.5 */ -public abstract class AbstractTopiaMigrationCallback { +public abstract class AbstractTopiaMigrationCallback<PersistenceContext extends TopiaPersistenceContext> { /** Logger */ private static final Log log = LogFactory.getLog(AbstractTopiaMigrationCallback.class); @@ -64,10 +64,10 @@ public abstract boolean askUser(Version dbVersion, List<Version> versions); - protected abstract TopiaHibernateSupport getHibernateSupport(TopiaPersistenceContext tx); + protected abstract TopiaHibernateSupport getHibernateSupport(PersistenceContext tx); protected abstract void migrateForVersion(Version version, - TopiaPersistenceContext tx, + PersistenceContext tx, boolean showSql, boolean showProgression) throws Exception; @@ -92,7 +92,7 @@ * ggrement * @return {@code true} si la migration est accepté, {@code false} autrement. */ - public boolean doMigration(AbstractTopiaApplicationContext applicationContext, + public boolean doMigration(AbstractTopiaApplicationContext<PersistenceContext> applicationContext, Version dbVersion, boolean showSql, boolean showProgression, @@ -105,7 +105,7 @@ // ouverture d'une connexion direct JDBC sur la base try { - TopiaPersistenceContext persistenceContext = + PersistenceContext persistenceContext = applicationContext.newPersistenceContext(); try { @@ -141,7 +141,7 @@ return doMigrate; } - public void executeSQL(TopiaPersistenceContext tx, String... sqls) + public void executeSQL(PersistenceContext tx, String... sqls) throws TopiaException { executeSQL(tx, false, false, sqls); } @@ -155,7 +155,7 @@ * @throws TopiaException if any pb * @since 2.3.0 */ - public void executeSQL(TopiaPersistenceContext tx, + public void executeSQL(PersistenceContext tx, final boolean showSql, final boolean showProgression, final String... sqls) throws TopiaException { Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClass.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClass.java 2013-12-19 21:25:28 UTC (rev 2944) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClass.java 2013-12-20 00:02:27 UTC (rev 2945) @@ -25,7 +25,9 @@ package org.nuiton.topia.migration; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.TopiaHibernateSupport; import org.nuiton.topia.TopiaPersistenceContext; +import org.nuiton.topia.TopiaSqlSupport; import org.nuiton.util.ObjectUtil; import org.nuiton.util.Version; @@ -48,7 +50,7 @@ * @version $Id$ * @since 2.5 */ -public abstract class TopiaMigrationCallbackByClass extends AbstractTopiaMigrationCallback { +public abstract class TopiaMigrationCallbackByClass<PersistenceContext extends TopiaPersistenceContext& TopiaHibernateSupport & TopiaSqlSupport> extends AbstractTopiaMigrationCallback<PersistenceContext> { protected MigrationCallBackForVersionResolver callBackResolver; @@ -67,13 +69,13 @@ @Override protected void migrateForVersion(Version version, - TopiaPersistenceContext tx, + PersistenceContext tx, boolean showSql, boolean showProgression) throws Exception { Class<? extends MigrationCallBackForVersion> migratorClass = callBackResolver.getCallBack(version); - MigrationCallBackForVersion migrator = ObjectUtil.newInstance(migratorClass, Arrays.asList(this), true); + MigrationCallBackForVersion<PersistenceContext> migrator = ObjectUtil.newInstance(migratorClass, Arrays.asList(this), true); String[] queries = migrator.prepareMigration(tx, showSql, showProgression); @@ -87,20 +89,20 @@ * @author tchemit <chemit@codelutin.com> * @since 2.5 */ - public abstract static class MigrationCallBackForVersion { + public abstract static class MigrationCallBackForVersion<PersistenceContext extends TopiaPersistenceContext& TopiaHibernateSupport & TopiaSqlSupport> { protected final Version version; - protected final TopiaMigrationCallbackByClass callBack; + protected final TopiaMigrationCallbackByClass<PersistenceContext> callBack; public MigrationCallBackForVersion(Version version, - TopiaMigrationCallbackByClass callBack) { + TopiaMigrationCallbackByClass<PersistenceContext> callBack) { this.version = version; this.callBack = callBack; } - protected String[] prepareMigration(TopiaPersistenceContext tx, + protected String[] prepareMigration(PersistenceContext tx, boolean showSql, boolean showProgression) throws TopiaException { @@ -111,17 +113,17 @@ return queries.toArray(new String[queries.size()]); } - protected abstract void prepareMigrationScript(TopiaPersistenceContext tx, + protected abstract void prepareMigrationScript(PersistenceContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException; - public void executeSQL(TopiaPersistenceContext tx, + public void executeSQL(PersistenceContext tx, String... sqls) throws TopiaException { callBack.executeSQL(tx, sqls); } - public void executeSQL(TopiaPersistenceContext tx, + public void executeSQL(PersistenceContext tx, boolean showSql, boolean showProgression, String... sqls) throws TopiaException { Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClassNG.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClassNG.java 2013-12-19 21:25:28 UTC (rev 2944) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByClassNG.java 2013-12-20 00:02:27 UTC (rev 2945) @@ -52,15 +52,15 @@ * @version $Id$ * @since 2.9.11 */ -public abstract class TopiaMigrationCallbackByClassNG extends AbstractTopiaMigrationCallback { +public abstract class TopiaMigrationCallbackByClassNG<PersistenceContext extends TopiaPersistenceContext> extends AbstractTopiaMigrationCallback<PersistenceContext> { /** Logger. */ private static final Log log = LogFactory.getLog(TopiaMigrationCallbackByClassNG.class); - protected MigrationCallBackForVersionResolver callBackResolver; + protected MigrationCallBackForVersionResolver<PersistenceContext> callBackResolver; - protected TopiaMigrationCallbackByClassNG(MigrationCallBackForVersionResolver callBackResolver) { + protected TopiaMigrationCallbackByClassNG(MigrationCallBackForVersionResolver<PersistenceContext> callBackResolver) { this.callBackResolver = callBackResolver; } @@ -73,11 +73,11 @@ @Override protected void migrateForVersion(Version version, - TopiaPersistenceContext tx, + PersistenceContext tx, boolean showSql, boolean showProgression) throws Exception { - MigrationCallBackForVersion migrator = callBackResolver.getCallBack(version); + MigrationCallBackForVersion<PersistenceContext> migrator = callBackResolver.getCallBack(version); migrator.setCallBack(this); @@ -93,17 +93,17 @@ * @author tchemit <chemit@codelutin.com> * @since 2.5 */ - public abstract static class MigrationCallBackForVersion { + public abstract static class MigrationCallBackForVersion<PersistenceContext extends TopiaPersistenceContext> { - protected TopiaMigrationCallbackByClassNG callBack; + protected TopiaMigrationCallbackByClassNG<PersistenceContext> callBack; public abstract Version getVersion(); - public void setCallBack(TopiaMigrationCallbackByClassNG callBack) { + public void setCallBack(TopiaMigrationCallbackByClassNG<PersistenceContext> callBack) { this.callBack = callBack; } - protected String[] prepareMigration(TopiaPersistenceContext tx, + protected String[] prepareMigration(PersistenceContext tx, boolean showSql, boolean showProgression) throws TopiaException { @@ -114,17 +114,17 @@ return queries.toArray(new String[queries.size()]); } - protected abstract void prepareMigrationScript(TopiaPersistenceContext tx, + protected abstract void prepareMigrationScript(PersistenceContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException; - public void executeSQL(TopiaPersistenceContext tx, + public void executeSQL(PersistenceContext tx, String... sqls) throws TopiaException { callBack.executeSQL(tx, sqls); } - public void executeSQL(TopiaPersistenceContext tx, + public void executeSQL(PersistenceContext tx, boolean showSql, boolean showProgression, String... sqls) throws TopiaException { @@ -138,7 +138,7 @@ * * @since 2.6.11 */ - public interface MigrationCallBackForVersionResolver { + public interface MigrationCallBackForVersionResolver<PersistenceContext extends TopiaPersistenceContext> { /** * Returns all detected versions. @@ -154,7 +154,7 @@ * @return the migration call for the given version, or {@code null} * if no such migration callback exists for the version */ - MigrationCallBackForVersion getCallBack(Version version); + MigrationCallBackForVersion<PersistenceContext> getCallBack(Version version); } /** Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByMethod.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByMethod.java 2013-12-19 21:25:28 UTC (rev 2944) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallbackByMethod.java 2013-12-20 00:02:27 UTC (rev 2945) @@ -26,7 +26,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaHibernateSupport; import org.nuiton.topia.TopiaPersistenceContext; +import org.nuiton.topia.TopiaSqlSupport; import org.nuiton.util.Version; import java.lang.reflect.Method; @@ -44,14 +46,14 @@ * @version $Id$ * @since 2.5 */ -public abstract class TopiaMigrationCallbackByMethod extends AbstractTopiaMigrationCallback { +public abstract class TopiaMigrationCallbackByMethod<PersistenceContext extends TopiaPersistenceContext& TopiaHibernateSupport & TopiaSqlSupport> extends AbstractTopiaMigrationCallback<PersistenceContext> { /** Logger */ private static final Log log = LogFactory.getLog(TopiaMigrationCallbackByMethod.class); @Override protected void migrateForVersion(Version version, - TopiaPersistenceContext tx, + PersistenceContext tx, boolean showSql, boolean showProgression) throws Exception {