Author: tchemit Date: 2013-12-20 12:31:10 +0100 (Fri, 20 Dec 2013) New Revision: 2946 Url: http://nuiton.org/projects/topia/repository/revisions/2946 Log: refs #2973: Making migration service works again Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/AbstractTopiaMigrationCallback.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-20 00:02:27 UTC (rev 2945) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/AbstractTopiaMigrationCallback.java 2013-12-20 11:31:10 UTC (rev 2946) @@ -26,17 +26,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.hibernate.jdbc.Work; import org.nuiton.topia.AbstractTopiaApplicationContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaHibernateSupport; import org.nuiton.topia.TopiaPersistenceContext; +import org.nuiton.topia.TopiaSqlSupport; import org.nuiton.util.StringUtil; import org.nuiton.util.Version; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; import java.util.List; /** @@ -61,10 +57,16 @@ * @param versions the versions to update * @return {@code false} if migration is canceled, {@code true} otherwise. */ - public abstract boolean askUser(Version dbVersion, - List<Version> versions); + public abstract boolean askUser(Version dbVersion, List<Version> versions); - protected abstract TopiaHibernateSupport getHibernateSupport(PersistenceContext tx); + /** + * Get the sql support used to execute sql queries. + * + * @param persistenceContext persistence context + * @return the sql support + * @since 3.0 + */ + protected abstract TopiaSqlSupport getSqlSupport(PersistenceContext persistenceContext); protected abstract void migrateForVersion(Version version, PersistenceContext tx, @@ -160,7 +162,7 @@ final boolean showProgression, final String... sqls) throws TopiaException { - TopiaHibernateSupport hibernateSupport = getHibernateSupport(tx); + TopiaSqlSupport sqlSupport = getSqlSupport(tx); if (log.isInfoEnabled()) { log.info(String.format("Will execute %1$s requests...", sqls.length)); @@ -178,44 +180,35 @@ "--------------------------------------------------------------------------------\n" ); } - hibernateSupport.getHibernateSession().doWork(new Work() { - @Override - public void execute(Connection connection) throws SQLException { - int index = 0; - int max = sqls.length; - for (String sql : sqls) { - index++; - long t0 = System.nanoTime(); - if (log.isInfoEnabled()) { - String message = ""; + int index = 0; + int max = sqls.length; + for (String sql : sqls) { + index++; + long t0 = System.nanoTime(); + if (log.isInfoEnabled()) { + String message = ""; - if (showProgression) { - message = String.format("Executing request [%1$-4s/%2$-4s]", index, max); - } - if (showSql) { - message += "\n" + sql; - } - if (showProgression || showSql) { + if (showProgression) { + message = String.format("Executing request [%1$-4s/%2$-4s]", index, max); + } + if (showSql) { + message += "\n" + sql; + } + if (showProgression || showSql) { - log.info(message); - } - } - PreparedStatement sta = connection.prepareStatement(sql); - try { - sta.execute(); - } finally { - sta.close(); - } - if (log.isDebugEnabled()) { - String message; - message = String.format("Request [%1$-4s/%2$-4s] executed in %3$s.", index, max, StringUtil.convertTime(System.nanoTime() - t0)); - log.debug(message); - } + log.info(message); } } - }); + sqlSupport.executeSql(sql); + + if (log.isDebugEnabled()) { + String message; + message = String.format("Request [%1$-4s/%2$-4s] executed in %3$s.", index, max, StringUtil.convertTime(System.nanoTime() - t0)); + log.debug(message); + } + } } } \ No newline at end of file
participants (1)
-
tchemit@users.nuiton.org