r860 - in trunk: echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication echobase-ui/src/main/java/fr/ifremer/echobase/ui
Author: tchemit Date: 2013-10-21 17:18:58 +0200 (Mon, 21 Oct 2013) New Revision: 860 Url: http://forge.codelutin.com/projects/echobase/repository/revisions/860 Log: fixes #3504: Impossible de cr?\195?\169er une application embarqu?\195?\169e Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java 2013-10-21 15:18:24 UTC (rev 859) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java 2013-10-21 15:18:58 UTC (rev 860) @@ -149,18 +149,18 @@ File internalDir = new File(dir, "internaldb"); - TopiaContext internalRootContext = + TopiaContext newInternalRootContext = EchobaseTopiaContexts.newInternalDb(internalDir); - TopiaContext internalTransaction = internalRootContext.beginTransaction(); + TopiaContext internalTransaction = newInternalRootContext.beginTransaction(); TopiaEchoBaseInternalPersistenceContext newPersistenceContext = new TopiaEchoBaseInternalPersistenceContext( internalTransaction ); - newServiceContext.setEchoBaseInternalPersistenceContext(newPersistenceContext); -// newServiceContext.setInternalTransaction( -// internalRootContext.beginTransaction()); + newServiceContext.setEchoBaseInternalPersistenceContext( + newPersistenceContext); - + TopiaEchoBaseInternalPersistenceContext internalPersistenceContext = + getEchoBaseInternalPersistenceContext(); try { // get user service from h2 db UserService userService = newServiceContext.newService(UserService.class); @@ -175,10 +175,10 @@ model.incrementsProgress(); // get all export queries from application - List<ExportQuery> queries = getEchoBaseInternalPersistenceContext().getExportQueryDAO().findAll(); + List<ExportQuery> queries = internalPersistenceContext.getExportQueryDAO().findAll(); // replicate queries - getEchoBaseInternalPersistenceContext().replicateEntities( + internalPersistenceContext.replicateEntities( internalTransaction, queries); // create export sql service from h2 db @@ -198,19 +198,18 @@ // get all working db configuration from application List<WorkingDbConfiguration> confs = - getEchoBaseInternalPersistenceContext().getWorkingDbConfigurationDAO().findAll(); + internalPersistenceContext.getWorkingDbConfigurationDAO().findAll(); // replicate configs - getEchoBaseInternalPersistenceContext().replicateEntities( + internalPersistenceContext.replicateEntities( internalTransaction, confs); model.incrementsProgress(); return admin; - } finally { newServiceContext.setEchoBaseInternalPersistenceContext(null); - EchoBaseEntityHelper.releaseRootContext(internalRootContext); + EchoBaseEntityHelper.releaseRootContext(newInternalRootContext); } } @@ -253,34 +252,6 @@ } } -// protected void closeContext(TopiaContext tx, String message) { -// try { -// tx.closeContext(); -// } catch (TopiaException eee) { -// throw new EchoBaseTechnicalException(message, eee); -// } -// } - -// protected TopiaContext beginTransaction(TopiaContext tx, String message) { -// try { -// return tx.beginTransaction(); -// } catch (TopiaException eee) { -// throw new EchoBaseTechnicalException(message, eee); -// } -// } - -// protected void rollbackTransaction(TopiaContext tx, String message) { -// try { -// if (tx != null) { -// tx.rollbackTransaction(); -// } -// } catch (TopiaException eee) { -// if (log.isErrorEnabled()) { -// log.error(message, eee); -// } -// } -// } - protected int computeNbSteps(EmbeddedApplicationConfiguration model) { int nbSteps = 5; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2013-10-21 15:18:24 UTC (rev 859) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2013-10-21 15:18:58 UTC (rev 860) @@ -354,8 +354,8 @@ if (configuration.isEmbedded()) { if (log.isInfoEnabled()) { - log.info("Will try t create default working db " + - "configuration for embedded db."); + log.info("Will try to create default working db " + + "configuration for internal db."); } // try to create a default embedded working db configuration serviceContext.newService(WorkingDbConfigurationService.class). @@ -376,30 +376,25 @@ File libDirectory = configuration.getLibDirectory(); for (DriverType driverType : DriverType.values()) { String pilotFileName = driverType.getPilotFileName(configuration); - File pilotFile = new File(libDirectory, pilotFileName); - if (!pilotFile.exists()) { - // copy it from class-path - if (log.isInfoEnabled()) { - log.info("Copy driver " + pilotFileName + - " to directory " + libDirectory); - } - service.copyEmbeddedBinaryFile(pilotFileName, libDirectory); + // copy it from class-path + if (log.isInfoEnabled()) { + log.info("Copy embedded resource " + pilotFileName + + " to directory " + libDirectory); } + service.copyEmbeddedBinaryFile(pilotFileName, libDirectory); } // copy embedded war File warLocation = configuration.getWarLocation(); File embeddedWarDirectory = warLocation.getParentFile(); String embeddedWarFileName = warLocation.getName(); - if (!warLocation.exists()) { - // copy it from class-path - if (log.isInfoEnabled()) { - log.info("Copy embedded war " + embeddedWarFileName + - " to directory " + embeddedWarDirectory); - } - service.copyEmbeddedBinaryFile(embeddedWarFileName, embeddedWarDirectory); + // copy it from class-path + if (log.isInfoEnabled()) { + log.info("Copy embedded war " + embeddedWarFileName + + " to directory " + embeddedWarDirectory); } + service.copyEmbeddedBinaryFile(embeddedWarFileName, embeddedWarDirectory); } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java 2013-10-21 15:18:24 UTC (rev 859) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java 2013-10-21 15:18:58 UTC (rev 860) @@ -30,6 +30,9 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.web.filter.TopiaTransactionFilter; +import javax.servlet.FilterConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; @@ -51,10 +54,20 @@ return TopiaTransactionFilter.getTransaction(request); } + protected ServletContext servletContext; + @Override - protected /*synchronized*/ TopiaContext beginTransaction(ServletRequest request) { + public void init(FilterConfig filterConfig) throws ServletException { + super.init(filterConfig); + + servletContext = filterConfig.getServletContext(); + } + + @Override + protected TopiaContext beginTransaction(ServletRequest request) { + EchoBaseApplicationContext applicationContext = - EchoBaseApplicationContext.getApplicationContext(request.getServletContext()); + EchoBaseApplicationContext.getApplicationContext(servletContext); TopiaContext rootContext = applicationContext.getInternalRootContext(); TopiaContext transaction = rootContext.beginTransaction();
participants (1)
-
tchemit@users.forge.codelutin.com