This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit c4ec765a2e90776cf54f0c4c1c33c662fc49d59b Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 2 14:52:15 2015 +0100 chargement en lazy du modèle de catégorisation --- .../fr/ifremer/tutti/service/TuttiDataContext.java | 38 +++++++++++++++++----- .../action/SaveSampleCategoryModelAction.java | 2 +- .../ui/swing/update/module/DbModuleUpdater.java | 14 +++++--- 3 files changed, 40 insertions(+), 14 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java index 3fc6ca6..94b23af 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java @@ -115,6 +115,13 @@ public class TuttiDataContext extends AbstractBean implements Closeable { */ protected SampleCategoryModel sampleCategoryModel; + /** + * Flag to reload sampleCategoryModel in lazy mode. + * + * @since 3.13 + */ + protected boolean dirtySampleCategoryModel; + protected Program program; protected Cruise cruise; @@ -191,7 +198,7 @@ public class TuttiDataContext extends AbstractBean implements Closeable { PersistenceService persistenceService = this.service; // Check there is a persistence service injected - Preconditions.checkState(persistenceService != null); + Preconditions.checkNotNull(persistenceService, "Can't have a null persistence service."); // Close data context close(); @@ -226,7 +233,7 @@ public class TuttiDataContext extends AbstractBean implements Closeable { } } - loadSampleCategoryModel(config.getSampleCategoryModel()); + setSampleCategoryModel(config.getSampleCategoryModel()); } @Override @@ -364,9 +371,28 @@ public class TuttiDataContext extends AbstractBean implements Closeable { } public SampleCategoryModel getSampleCategoryModel() { + if (dirtySampleCategoryModel) { + + try { + if (log.isInfoEnabled()) { + log.info("Loading sampleCategoryModel: " + sampleCategoryModel); + } + sampleCategoryModel.load(service); + } finally { + + dirtySampleCategoryModel = false; + } + + } return sampleCategoryModel; } + public void setSampleCategoryModel(SampleCategoryModel sampleCategoryModel) { + Preconditions.checkNotNull(sampleCategoryModel, "Can't get a null sampleCategoryModel"); + this.sampleCategoryModel = sampleCategoryModel; + this.dirtySampleCategoryModel = true; + } + public String getProgramId() { return programId; } @@ -629,7 +655,7 @@ public class TuttiDataContext extends AbstractBean implements Closeable { // use the first category Integer categoryId = speciesProtocol.getMandatorySampleCategoryId().get(0); - selectedCategory = sampleCategoryModel.getCategoryById(categoryId); + selectedCategory = getSampleCategoryModel().getCategoryById(categoryId); if (categories.contains(selectedCategory)) { @@ -836,12 +862,6 @@ public class TuttiDataContext extends AbstractBean implements Closeable { deadOrAliveValues = null; } - public void loadSampleCategoryModel(SampleCategoryModel sampleCategoryModel) { - Preconditions.checkNotNull(sampleCategoryModel,"Can't get a null sampleCategoryModel"); - this.sampleCategoryModel = sampleCategoryModel; - sampleCategoryModel.load(service); - } - protected void checkOpened() { Preconditions.checkState(service != null, "No persistence service assigned!"); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java index 68d3dcb..3a71477 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java @@ -60,7 +60,7 @@ public class SaveSampleCategoryModelAction extends AbstractTuttiAction<EditSampl getConfig().save(); - getDataContext().loadSampleCategoryModel(bean); + getDataContext().setSampleCategoryModel(bean); model.setModify(false); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/update/module/DbModuleUpdater.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/update/module/DbModuleUpdater.java index 266eac1..8b63a46 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/update/module/DbModuleUpdater.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/update/module/DbModuleUpdater.java @@ -117,7 +117,7 @@ public class DbModuleUpdater extends ModuleUpdaterSupport { } else if (dbUpdated) { // launch a referential synchronize operation - synchronizetDatabase(context, info); + synchronizeDatabase(context, info); } @@ -149,7 +149,7 @@ public class DbModuleUpdater extends ModuleUpdaterSupport { } } - protected void synchronizetDatabase(TuttiUIContext context, ApplicationInfo info) { + protected void synchronizeDatabase(TuttiUIContext context, ApplicationInfo info) { if (log.isInfoEnabled()) { log.info(String.format("A database update was downloaded (oldVersion: %s, newVersion: %s), will launch a referential synchronize operation ", info.oldVersion, info.newVersion)); @@ -184,12 +184,18 @@ public class DbModuleUpdater extends ModuleUpdaterSupport { persistence.clearAllCaches(); // clean data context + SampleCategoryModel sampleCategoryModel = context.getConfig().getSampleCategoryModel(); + if (log.isInfoEnabled()) { + log.info("SampleCategoryModel to reload: " + sampleCategoryModel); + } if (log.isInfoEnabled()) { log.info("Clean data context."); } - SampleCategoryModel sampleCategoryModel = context.getDataContext().getSampleCategoryModel(); context.getDataContext().clearContext(); - context.getDataContext().loadSampleCategoryModel(sampleCategoryModel); + if (log.isInfoEnabled()) { + log.info("SampleCategoryModel to reload (after clearContext): " + sampleCategoryModel); + } + context.getDataContext().setSampleCategoryModel(sampleCategoryModel); // replace the version.appup file content File target = context.getConfig().getDbDirectory(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.