r1050 - trunk/topia-service/src/java/org/codelutin/topia/migration
Author: chatellier Date: 2008-08-29 18:59:03 +0000 (Fri, 29 Aug 2008) New Revision: 1050 Modified: trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationService.java trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationServiceImpl.java Log: Le service s'ajoute en listener de nouvelle transaction Sur une nouvelle transaction, il se reenregistre sur le context fils Modified: trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationService.java =================================================================== --- trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationService.java 2008-08-29 15:26:35 UTC (rev 1049) +++ trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationService.java 2008-08-29 18:59:03 UTC (rev 1050) @@ -19,6 +19,7 @@ package org.codelutin.topia.migration; import org.codelutin.topia.event.TopiaContextListener; +import org.codelutin.topia.event.TopiaTransactionVetoable; import org.codelutin.topia.framework.TopiaService; /** @@ -32,7 +33,7 @@ * * Last update : $Date$ */ -public interface TopiaMigrationService extends TopiaService, TopiaContextListener { +public interface TopiaMigrationService extends TopiaService, TopiaContextListener, TopiaTransactionVetoable { /** * Nom du service Modified: trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationServiceImpl.java =================================================================== --- trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationServiceImpl.java 2008-08-29 15:26:35 UTC (rev 1049) +++ trunk/topia-service/src/java/org/codelutin/topia/migration/TopiaMigrationServiceImpl.java 2008-08-29 18:59:03 UTC (rev 1050) @@ -25,7 +25,7 @@ import org.apache.commons.logging.LogFactory; import org.codelutin.topia.TopiaRuntimeException; import org.codelutin.topia.event.TopiaContextEvent; -import org.codelutin.topia.framework.TopiaContextImpl; +import org.codelutin.topia.event.TopiaTransactionEvent; import org.codelutin.topia.framework.TopiaContextImplementor; import org.codelutin.topia.migration.callback.MigrationCallbackHandler; import org.codelutin.topia.migration.common.Version; @@ -188,6 +188,7 @@ // add topia context listener context.addTopiaContextListener(this); + context.addTopiaTransactionVetoable(this); // test mappingdir null if(mappingdir == null) { @@ -283,6 +284,7 @@ * @see org.codelutin.topia.event.TopiaContextListener#postRestoreSchema(org.codelutin.topia.event.TopiaContextEvent) */ public void postRestoreSchema(TopiaContextEvent event) { + if(log.isInfoEnabled()) { log.info("postRestoreSchema event detected, redo, schema migration"); } @@ -294,4 +296,16 @@ } } } + + /* + * @see org.codelutin.topia.event.TopiaTransactionVetoable#beginTransaction(org.codelutin.topia.event.TopiaTransactionEvent) + */ + public void beginTransaction(TopiaTransactionEvent event) { + + TopiaContextImplementor context = (TopiaContextImplementor)event.getSource(); + + // add topia context listener + context.addTopiaContextListener(this); + + } }
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org