branch feature/6688 updated (150c45e -> 1b8c7f3)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git from 150c45e ca continue l'import... new ed04df0 introduce TuttiValidationDataContextSupport to be able to use it inside import without using the data context new baf3d18 validation service is a simple service (no usage at all of the service context) new 091198b fix validation service test using a customize validation data context new d223279 be able to change the validation data context in the value stack new 4091623 introduce validation helper + continue importing operations new 6ba064f fix test campaign new 1b8c7f3 do not want to see some logs from nowhere... The 7 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 1b8c7f37ae8278b67725a3169af9bcd82c8a7688 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:53:46 2015 +0100 do not want to see some logs from nowhere... commit 6ba064f93fe08ea10227eed4e4a624672b39d21b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:53:24 2015 +0100 fix test campaign commit 40916235a059a2e5dd144e583f79ec3b7026340f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:52:16 2015 +0100 introduce validation helper + continue importing operations commit d22327917105792db2468996fc93072797ccc551 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:51:32 2015 +0100 be able to change the validation data context in the value stack commit 091198bed30e2cf34fbf2ba09f12771adb2c5382 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:51:06 2015 +0100 fix validation service test using a customize validation data context commit baf3d18c53919a202a14c5fc564079ad5b593ac1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:50:47 2015 +0100 validation service is a simple service (no usage at all of the service context) commit ed04df029ba2d66fd0d5b99873d910b77e234846 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:50:14 2015 +0100 introduce TuttiValidationDataContextSupport to be able to use it inside import without using the data context Summary of changes: .../fr/ifremer/tutti/service/TuttiDataContext.java | 105 +------------- .../ifremer/tutti/service/TuttiServiceContext.java | 8 +- .../tutti/service/TuttiValidationDataContext.java | 87 ++++++++++++ .../service/TuttiValidationDataContextSupport.java | 152 +++++++++++++++++++++ .../ifremer/tutti/service/ValidationService.java | 12 +- .../genericformat/GenericFormatImportContext.java | 22 ++- .../genericformat/GenericFormatImportService.java | 19 ++- .../GenericFormatImportValidationDataContext.java | 96 +++++++++++++ .../GenericFormatImportValidationHelper.java | 62 +++++++++ .../GenericformatImportPersitenceHelper.java | 13 +- .../consumer/CsvConsumerForOperation.java | 18 +-- .../consumer/CsvConsumerForSurvey.java | 7 +- .../FishingOperationNotValidException.java | 6 +- .../resources/i18n/tutti-service_fr_FR.properties | 2 +- .../tutti/service/ValidationServiceTest.java | 48 +++++-- .../GenericFormatImportServiceTest.java | 2 +- tutti-service/src/test/resources/log4j.properties | 2 + 17 files changed, 507 insertions(+), 154 deletions(-) create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContext.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContextSupport.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationDataContext.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationHelper.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit ed04df029ba2d66fd0d5b99873d910b77e234846 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:50:14 2015 +0100 introduce TuttiValidationDataContextSupport to be able to use it inside import without using the data context --- .../fr/ifremer/tutti/service/TuttiDataContext.java | 105 +------------- .../tutti/service/TuttiValidationDataContext.java | 87 ++++++++++++ .../service/TuttiValidationDataContextSupport.java | 152 +++++++++++++++++++++ .../GenericFormatImportValidationDataContext.java | 96 +++++++++++++ 4 files changed, 342 insertions(+), 98 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 98d416f..fb6f415 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 @@ -23,7 +23,6 @@ package fr.ifremer.tutti.service; */ import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import fr.ifremer.tutti.TuttiConfiguration; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -40,18 +39,15 @@ import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.TaxonCache; import fr.ifremer.tutti.persistence.entities.referential.TaxonCaches; import fr.ifremer.tutti.persistence.entities.referential.Vessel; -import fr.ifremer.tutti.util.Weights; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractBean; -import org.nuiton.util.DateUtil; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Closeable; import java.util.ArrayList; -import java.util.Date; import java.util.List; /** @@ -187,7 +183,7 @@ public class TuttiDataContext extends AbstractBean implements Closeable { @Override public void propertyChange(PropertyChangeEvent evt) { fishingOperation = null; - getValidationContext().existingFishingOperations = null; + getValidationContext().resetExistingFishingOperations(); } }); } @@ -473,8 +469,7 @@ public class TuttiDataContext extends AbstractBean implements Closeable { // always propagate the change firePropertyChange(PROPERTY_FISHING_OPERATION_ID, -1, fishingOperationId); - firePropertyChange(PROPERTY_FISHING_OPERATION_FILLED, - oldValue, isFishingOperationFilled()); + firePropertyChange(PROPERTY_FISHING_OPERATION_FILLED, oldValue, isFishingOperationFilled()); } public Program getProgram() { @@ -877,104 +872,18 @@ public class TuttiDataContext extends AbstractBean implements Closeable { return service; } - protected final TuttiValidationDataContext validationContext = - new TuttiValidationDataContext(); + protected TuttiValidationDataContextSupport validationContext = new TuttiValidationDataContext(this); public void resetValidationDataContext() { validationContext.reset(); } - public TuttiValidationDataContext getValidationContext() { + public TuttiValidationDataContextSupport getValidationContext() { return validationContext; } - /** - * Data to shared by validators. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.2 - */ - public class TuttiValidationDataContext { - - protected List<Program> existingPrograms = Lists.newArrayList(); - - protected List<TuttiProtocol> existingProtocols = Lists.newArrayList(); - - protected List<FishingOperation> existingFishingOperations = Lists.newArrayList(); - - public List<Program> getExistingPrograms() { - checkOpened(); - if (existingPrograms == null) { - existingPrograms = Lists.newArrayList(service.getAllProgram()); - - if (isProgramFilled()) { - - // remove current program - existingPrograms.remove(getProgram()); - } - } - return existingPrograms; - } - - public List<TuttiProtocol> getExistingProtocols() { - checkOpened(); - if (existingProtocols == null) { - existingProtocols = Lists.newArrayList(service.getAllProtocol()); - - if (isProtocolFilled()) { - - // remove current protocol - existingProtocols.remove(getProtocol()); - } - } - return existingProtocols; - } - - public List<FishingOperation> getExistingFishingOperations() { - checkOpened(); - if (existingFishingOperations == null) { - existingFishingOperations = Lists.newArrayList(service.getAllFishingOperation(getCruiseId())); - - if (isFishingOperationFilled()) { - - // remove current protocol - existingFishingOperations.remove(getFishingOperation()); - } - } - return existingFishingOperations; - } - - public boolean isDateInCruise(Date date) { - return DateUtil.between(date, getCruise().getBeginDate(), getCruise().getEndDate()); - } - - public boolean isNotWeightZeroValue(Float weight) { - return Weights.isNotEqualWeight(weight, 0f); - } - - public boolean isMutiRegNumberValid(String numberAsString) { - boolean result = false; - if (numberAsString.matches("\\d+")) { - int mutlirigNumber = Integer.valueOf(numberAsString); - Integer cruiseMultirigNumber = getCruise().getMultirigNumber(); - result = mutlirigNumber <= cruiseMultirigNumber; - } - return result; - } - - public boolean isValidDuration(Date gearShootingStartDate, Date gearShootingEndDate) { - boolean result = gearShootingStartDate == null || gearShootingEndDate == null; - if (!result) { - int minutes = DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate); - result = minutes <= 45 && minutes >= 20; - } - return result; - } - - public void reset() { - existingPrograms = null; - existingProtocols = null; - existingFishingOperations = null; - } + public void setValidationContext(TuttiValidationDataContextSupport validationContext) { + Preconditions.checkNotNull(validationContext, "cant set a null validation context"); + this.validationContext = validationContext; } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContext.java new file mode 100644 index 0000000..08370f9 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContext.java @@ -0,0 +1,87 @@ +package fr.ifremer.tutti.service; + +import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; + +import java.util.List; + +/** + * Data to shared by validators. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.2 + */ +public class TuttiValidationDataContext extends TuttiValidationDataContextSupport { + + private final TuttiDataContext dataContext; + + public TuttiValidationDataContext(TuttiDataContext dataContext) { + this.dataContext = dataContext; + } + + @Override + protected List<Program> loadExistingPrograms() { + dataContext.checkOpened(); + List<Program> existingPrograms = Lists.newArrayList(dataContext.service.getAllProgram()); + + if (dataContext.isProgramFilled()) { + + // remove current program + existingPrograms.remove(getProgram()); + } + + return existingPrograms; + } + + @Override + protected List<TuttiProtocol> loadExistingProtocols() { + dataContext.checkOpened(); + List<TuttiProtocol> existingProtocols = Lists.newArrayList(dataContext.service.getAllProtocol()); + + if (dataContext.isProtocolFilled()) { + + // remove current protocol + existingProtocols.remove(getProtocol()); + } + + return existingProtocols; + } + + @Override + protected List<FishingOperation> loadExistingFishingOperations() { + dataContext.checkOpened(); + List<FishingOperation> existingFishingOperations = Lists.newArrayList(dataContext.service.getAllFishingOperation(dataContext.getCruiseId())); + + if (dataContext.isFishingOperationFilled()) { + + // remove current protocol + existingFishingOperations.remove(getFishingOperation()); + } + + return existingFishingOperations; + } + + @Override + protected Program getProgram() { + return dataContext.getProgram(); + } + + @Override + protected Cruise getCruise() { + return dataContext.getCruise(); + } + + @Override + protected TuttiProtocol getProtocol() { + return dataContext.getProtocol(); + } + + @Override + protected FishingOperation getFishingOperation() { + return dataContext.getFishingOperation(); + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContextSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContextSupport.java new file mode 100644 index 0000000..94496b8 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiValidationDataContextSupport.java @@ -0,0 +1,152 @@ +package fr.ifremer.tutti.service; + +import com.google.common.collect.Lists; +import com.opensymphony.xwork2.util.ValueStack; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.util.Weights; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.DateUtil; +import org.nuiton.validator.xwork2.XWork2ValidatorUtil; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Data to shared by validators. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.2 + */ +public abstract class TuttiValidationDataContextSupport { + + /** Logger. */ + private static final Log log = LogFactory.getLog(TuttiValidationDataContextSupport.class); + + private List<Program> existingPrograms = Lists.newArrayList(); + + private List<TuttiProtocol> existingProtocols = Lists.newArrayList(); + + private List<FishingOperation> existingFishingOperations = Lists.newArrayList(); + + public static TuttiValidationDataContextSupport setValidationContext(TuttiValidationDataContextSupport validationDataContext, boolean removePrevious) { + + ValueStack sharedValueStack = XWork2ValidatorUtil.getSharedValueStack(); + + TuttiValidationDataContextSupport previousValidationContext = null; + if (removePrevious) { + List toRepush = new ArrayList(); + do { + + Object o = sharedValueStack.pop(); + + if (log.isInfoEnabled()) { + log.info("Pop object: " + o); + } + if (o instanceof TuttiValidationDataContextSupport) { + previousValidationContext = (TuttiValidationDataContextSupport) o; + } else { + toRepush.add(0, o); + } + + } while (previousValidationContext == null || sharedValueStack.size() > 0); + + for (Object o : toRepush) { + + if (log.isInfoEnabled()) { + log.info("Push object: " + o); + } + sharedValueStack.push(o); + } + + } + sharedValueStack.push(validationDataContext); + + return previousValidationContext; + } + + protected abstract List<Program> loadExistingPrograms(); + + protected abstract List<TuttiProtocol> loadExistingProtocols(); + + protected abstract List<FishingOperation> loadExistingFishingOperations(); + + protected abstract Program getProgram(); + + protected abstract Cruise getCruise(); + + protected abstract TuttiProtocol getProtocol(); + + protected abstract FishingOperation getFishingOperation(); + + public final List<Program> getExistingPrograms() { + if (existingPrograms == null) { + + existingPrograms = loadExistingPrograms(); + } + return existingPrograms; + } + + public final List<TuttiProtocol> getExistingProtocols() { + if (existingProtocols == null) { + existingProtocols = loadExistingProtocols(); + } + return existingProtocols; + } + + public final List<FishingOperation> getExistingFishingOperations() { + if (existingFishingOperations == null) { + existingFishingOperations = loadExistingFishingOperations(); + } + return existingFishingOperations; + } + + public final boolean isDateInCruise(Date date) { + return DateUtil.between(date, getCruise().getBeginDate(), getCruise().getEndDate()); + } + + public final boolean isNotWeightZeroValue(Float weight) { + return Weights.isNotEqualWeight(weight, 0f); + } + + public final boolean isMutiRegNumberValid(String numberAsString) { + boolean result = false; + if (numberAsString.matches("\\d+")) { + int mutlirigNumber = Integer.valueOf(numberAsString); + Integer cruiseMultirigNumber = getCruise().getMultirigNumber(); + result = mutlirigNumber <= cruiseMultirigNumber; + } + return result; + } + + public final boolean isValidDuration(Date gearShootingStartDate, Date gearShootingEndDate) { + boolean result = gearShootingStartDate == null || gearShootingEndDate == null; + if (!result) { + int minutes = DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate); + result = minutes <= 45 && minutes >= 20; + } + return result; + } + + public void reset() { + resetExistingPrograms(); + resetExistingProtocols(); + resetExistingFishingOperations(); + } + + public void resetExistingPrograms() { + existingPrograms = null; + } + + public void resetExistingProtocols() { + existingProtocols = null; + } + + public void resetExistingFishingOperations() { + existingFishingOperations = null; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationDataContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationDataContext.java new file mode 100644 index 0000000..3066873 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationDataContext.java @@ -0,0 +1,96 @@ +package fr.ifremer.tutti.service.genericformat; + +import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.service.TuttiValidationDataContextSupport; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * Created on 2/19/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class GenericFormatImportValidationDataContext extends TuttiValidationDataContextSupport { + + private Cruise cruise; + + private TuttiProtocol protocol; + + private FishingOperation fishingOperation; + + private final GenericFormatImportContext importContext; + + public GenericFormatImportValidationDataContext(GenericFormatImportContext importContext) { + this.importContext = importContext; + } + + // Not used + @Override + protected List<Program> loadExistingPrograms() { + return Lists.newArrayList(); + } + + // Not used + @Override + protected List<TuttiProtocol> loadExistingProtocols() { + return Lists.newArrayList(); + } + + @Override + protected List<FishingOperation> loadExistingFishingOperations() { + + List<FishingOperation> result = new ArrayList<>(); + + if (cruise != null) { + + Set<FishingOperation> importedFishingOperations = importContext.getImportResult().getImportedFishingOperations(cruise); + result.addAll(importedFishingOperations); + if (fishingOperation != null) { + result.remove(fishingOperation); + } + + } + return result; + } + + @Override + protected Program getProgram() { + return importContext.getImportRequest().getProgram(); + } + + @Override + protected Cruise getCruise() { + return cruise; + } + + @Override + protected TuttiProtocol getProtocol() { + return protocol; + } + + @Override + protected FishingOperation getFishingOperation() { + return fishingOperation; + } + + public void setCruise(Cruise cruise) { + this.cruise = cruise; + resetExistingFishingOperations(); + } + + public void setProtocol(TuttiProtocol protocol) { + this.protocol = protocol; + } + + public void setFishingOperation(FishingOperation fishingOperation) { + this.fishingOperation = fishingOperation; + resetExistingFishingOperations(); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit baf3d18c53919a202a14c5fc564079ad5b593ac1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:50:47 2015 +0100 validation service is a simple service (no usage at all of the service context) --- .../java/fr/ifremer/tutti/service/ValidationService.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java index c2d550b..459f34e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java @@ -36,13 +36,15 @@ import org.nuiton.validator.NuitonValidator; import org.nuiton.validator.NuitonValidatorFactory; import org.nuiton.validator.NuitonValidatorResult; +import java.io.IOException; + /** * To validate some incoming data using nuiton-validators. * * @author tchemit <chemit@codelutin.com> * @since 1.3 */ -public class ValidationService extends AbstractTuttiService { +public class ValidationService implements TuttiService { public static final String VALIDATION_CONTEXT_EDIT = "edit"; @@ -155,4 +157,12 @@ public class ValidationService extends AbstractTuttiService { NuitonValidatorResult result = validator.validate(individualObservationBatch); return result; } + + @Override + public void setServiceContext(TuttiServiceContext context) { + } + + @Override + public void close() throws IOException { + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 091198bed30e2cf34fbf2ba09f12771adb2c5382 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:51:06 2015 +0100 fix validation service test using a customize validation data context --- .../tutti/service/ValidationServiceTest.java | 48 +++++++++++++++------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java index 29b5f02..78685c1 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java @@ -51,18 +51,16 @@ public class ValidationServiceTest extends AbstractServiceTest { private ValidationService service; - private TuttiDataContextFake dataContext; + private TuttiDataValidationContextFake validationContext; @Override protected TuttiServiceContext createServiceContext(TuttiConfiguration config) { - return new TuttiServiceContext(config, dataContext = new TuttiDataContextFake()); - } -// @Override -// protected TuttiServiceContext createServiceContext(RessourceClassLoader loader, -// TuttiConfiguration config) { -// return new TuttiServiceContext(loader, config, dataContext = new TuttiDataContextFake()); -// } + TuttiDataContext dataContext = new TuttiDataContext(); + dataContext.setValidationContext(new TuttiDataValidationContextFake(dataContext)); + + return new TuttiServiceContext(config, dataContext); + } @Before public void setUp() throws Exception { @@ -70,6 +68,8 @@ public class ValidationServiceTest extends AbstractServiceTest { super.setUp(); service = serviceContext.getService(ValidationService.class); + validationContext = (TuttiDataValidationContextFake) serviceContext.getDataContext().getValidationContext(); + } @Test @@ -122,7 +122,7 @@ public class ValidationServiceTest extends AbstractServiceTest { p3.setZone(z); // now program in data context - dataContext.setExistingPrograms(Lists.newArrayList(p2, p3)); + validationContext.setExistingPrograms(Lists.newArrayList(p2, p3)); // no more valid assertIsNotValid(service.validateProgram(p)); @@ -163,7 +163,7 @@ public class ValidationServiceTest extends AbstractServiceTest { p3.setName("pName2"); // now program in data context - dataContext.setExistingProtocols(Lists.newArrayList(p2, p3)); + validationContext.setExistingProtocols(Lists.newArrayList(p2, p3)); // no more valid assertIsNotValid(service.validateProtocol(p)); @@ -201,18 +201,36 @@ public class ValidationServiceTest extends AbstractServiceTest { Assert.assertTrue(validatorResult.isValid()); } - class TuttiDataContextFake extends TuttiDataContext { + class TuttiDataValidationContextFake extends TuttiValidationDataContext { - @Override - protected void checkOpened() { + List<Program> existingPrograms; + + List<TuttiProtocol> existingProtocols; + + public TuttiDataValidationContextFake(TuttiDataContext dataContext) { + super(dataContext); } public void setExistingPrograms(List<Program> existingPrograms) { - getValidationContext().existingPrograms = existingPrograms; + this.existingPrograms = existingPrograms; + resetExistingPrograms(); } public void setExistingProtocols(List<TuttiProtocol> existingProtocols) { - getValidationContext().existingProtocols = existingProtocols; + this.existingProtocols = existingProtocols; + resetExistingProtocols(); } + + @Override + protected List<Program> loadExistingPrograms() { + return existingPrograms; + } + + @Override + protected List<TuttiProtocol> loadExistingProtocols() { + return existingProtocols; + } + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit d22327917105792db2468996fc93072797ccc551 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:51:32 2015 +0100 be able to change the validation data context in the value stack --- .../main/java/fr/ifremer/tutti/service/TuttiServiceContext.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java index d73e6aa..23c16c0 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java @@ -26,14 +26,12 @@ import com.google.common.base.Preconditions; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import com.opensymphony.xwork2.util.ValueStack; import fr.ifremer.tutti.TuttiConfiguration; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.ApplicationTechnicalException; -import org.nuiton.validator.xwork2.XWork2ValidatorUtil; import java.io.Closeable; import java.io.IOException; @@ -68,13 +66,11 @@ public class TuttiServiceContext implements Closeable { this(config, new TuttiDataContext()); } - public TuttiServiceContext(TuttiConfiguration config, - TuttiDataContext dataContext) { + public TuttiServiceContext(TuttiConfiguration config, TuttiDataContext dataContext) { this.config = config; this.dataContext = dataContext; // add datacontext in shared valueStack - ValueStack sharedValueStack = XWork2ValidatorUtil.getSharedValueStack(); - sharedValueStack.push(dataContext.getValidationContext()); + TuttiValidationDataContextSupport.setValidationContext(dataContext.getValidationContext(), false); this.services = CacheBuilder.newBuilder().build(new CacheLoader<Class<? extends TuttiService>, TuttiService>() { @Override public TuttiService load(Class<? extends TuttiService> key) throws Exception { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 40916235a059a2e5dd144e583f79ec3b7026340f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:52:16 2015 +0100 introduce validation helper + continue importing operations --- .../genericformat/GenericFormatImportContext.java | 22 ++++++-- .../genericformat/GenericFormatImportService.java | 19 ++++--- .../GenericFormatImportValidationHelper.java | 62 ++++++++++++++++++++++ .../GenericformatImportPersitenceHelper.java | 13 +++-- .../consumer/CsvConsumerForOperation.java | 18 +++---- .../consumer/CsvConsumerForSurvey.java | 7 ++- .../FishingOperationNotValidException.java | 6 +-- .../resources/i18n/tutti-service_fr_FR.properties | 2 +- 8 files changed, 116 insertions(+), 33 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportContext.java index 9afba1a..999d63b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportContext.java @@ -8,6 +8,7 @@ import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.ValidationService; import fr.ifremer.tutti.service.csv.CaracteristicValueParseException; import fr.ifremer.tutti.service.csv.CaracteristicValueParserFormatter; import fr.ifremer.tutti.service.genericformat.consumer.CsvConsumerForAccidentalCatch; @@ -53,12 +54,20 @@ public class GenericFormatImportContext implements Closeable { private final GenericformatImportPersitenceHelper persitenceHelper; - public GenericFormatImportContext(GenericFormatImportRequest importRequest, ProgressionModel progressionModel, PersistenceService persistenceService, Decorator<Cruise> cruiseDecorator, Decorator<FishingOperation> fishingOperationDecorator) { + private final GenericFormatImportValidationHelper validationHelper; + + public GenericFormatImportContext(GenericFormatImportRequest importRequest, + ProgressionModel progressionModel, + PersistenceService persistenceService, + Decorator<Cruise> cruiseDecorator, + Decorator<FishingOperation> fishingOperationDecorator) { this.importRequest = importRequest; this.progressionModel = progressionModel; this.importResult = new GenericFormatImportResult(importRequest); this.importEntityParserFactory = new GenericFormatImportEntityParserFactory(persistenceService, importRequest, importResult); this.persitenceHelper = new GenericformatImportPersitenceHelper(this, persistenceService, cruiseDecorator, fishingOperationDecorator); + this.validationHelper = new GenericFormatImportValidationHelper(this, new ValidationService()); + } public GenericFormatImportRequest getImportRequest() { @@ -72,6 +81,8 @@ public class GenericFormatImportContext implements Closeable { @Override public void close() throws IOException { + validationHelper.close(); + //TODO Close //getArchive().close(); @@ -111,7 +122,7 @@ public class GenericFormatImportContext implements Closeable { public boolean isCruiseAlreadyImported(Cruise cruise) { Cruise importedCruise = getImportedCruise(cruise); - return importedCruise !=null; + return importedCruise != null; } @@ -153,7 +164,7 @@ public class GenericFormatImportContext implements Closeable { public boolean isFishingOperationAlreadyImported(FishingOperation fishingOperation) { FishingOperation importedFishingOperation = getImportedFishingOperation(fishingOperation); - return importedFishingOperation!=null; + return importedFishingOperation != null; } @@ -248,4 +259,9 @@ public class GenericFormatImportContext implements Closeable { public GenericformatImportPersitenceHelper getPersitenceHelper() { return persitenceHelper; } + + public GenericFormatImportValidationHelper getValidationHelper() { + return validationHelper; + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java index 9c6625c..7d16638 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java @@ -2,6 +2,7 @@ package fr.ifremer.tutti.service.genericformat; import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.ProgressionModel; +import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; @@ -16,7 +17,6 @@ import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiServiceContext; import fr.ifremer.tutti.service.ValidationService; -import fr.ifremer.tutti.service.catches.WeightComputingService; import fr.ifremer.tutti.service.genericformat.consumer.CsvConsumerForAccidentalCatch; import fr.ifremer.tutti.service.genericformat.consumer.CsvConsumerForCatch; import fr.ifremer.tutti.service.genericformat.consumer.CsvConsumerForGearCaracteristic; @@ -79,9 +79,7 @@ public class GenericFormatImportService extends AbstractTuttiService { protected PersistenceService persistenceService; - protected ValidationService validationService; - - protected WeightComputingService weightComputingService; + protected ValidationService validationServic; protected ReferentialTemporaryGearService referentialTemporaryGearService; @@ -102,8 +100,6 @@ public class GenericFormatImportService extends AbstractTuttiService { super.setServiceContext(context); persistenceService = getService(PersistenceService.class); - validationService = getService(ValidationService.class); - weightComputingService = getService(WeightComputingService.class); referentialTemporaryGearService = getService(ReferentialTemporaryGearService.class); referentialTemporaryPersonService = getService(ReferentialTemporaryPersonService.class); referentialTemporarySpeciesService = getService(ReferentialTemporarySpeciesService.class); @@ -411,7 +407,7 @@ public class GenericFormatImportService extends AbstractTuttiService { try (CsvConsumerForSurvey consumer = importContext.loadSurveys()) { for (ImportRow<SurveyRow> row : consumer) { - consumer.validateRow(row, importContext, validationService); + consumer.validateRow(row, importContext); consumer.prepareRowForPersist(row); @@ -457,15 +453,18 @@ public class GenericFormatImportService extends AbstractTuttiService { try (CsvConsumerForOperation consumer = importContext.loadOperations()) { for (ImportRow<OperationRow> row : consumer) { - consumer.validateRow(row, importContext, validationService); + consumer.validateRow(row, importContext); consumer.prepareRowForPersist(row); OperationRow bean = row.getBean(); - importContext.getPersitenceHelper().persistFishingOperation(bean.getFishingOperation()); + FishingOperation savedFishingOperation = importContext.getPersitenceHelper().persistFishingOperation(bean.getFishingOperation()); + + CatchBatch catchBatch = bean.getCatchBatch(); + catchBatch.setFishingOperation(savedFishingOperation); - importContext.getPersitenceHelper().persistCatchBatch(bean.getCatchBatch()); + importContext.getPersitenceHelper().persistCatchBatch(catchBatch); } } catch (IOException e) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationHelper.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationHelper.java new file mode 100644 index 0000000..90b65d0 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportValidationHelper.java @@ -0,0 +1,62 @@ +package fr.ifremer.tutti.service.genericformat; + +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.service.TuttiValidationDataContextSupport; +import fr.ifremer.tutti.service.ValidationService; +import org.apache.commons.io.IOUtils; +import org.nuiton.validator.NuitonValidatorResult; + +import java.io.Closeable; + +/** + * Created on 2/19/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class GenericFormatImportValidationHelper implements Closeable { + + private final ValidationService validationService; + + private final TuttiValidationDataContextSupport originalValidationDataContextSupport; + + private final GenericFormatImportValidationDataContext validationDataContext; + + public GenericFormatImportValidationHelper(GenericFormatImportContext importContext, ValidationService validationService) { + this.validationService = validationService; + this.validationDataContext = new GenericFormatImportValidationDataContext(importContext); + this.originalValidationDataContextSupport = TuttiValidationDataContextSupport.setValidationContext(validationDataContext, true); + } + + @Override + public void close() { + + IOUtils.closeQuietly(validationService); + + TuttiValidationDataContextSupport.setValidationContext(originalValidationDataContextSupport, true); + + } + + public void useFishingOperationInValidation(FishingOperation fishingOperation) { + validationDataContext.setFishingOperation(fishingOperation); + } + + public NuitonValidatorResult validateCruise(Cruise cruise) { + return validationService.validateEditCruise(cruise); + } + + public NuitonValidatorResult validateFishingOperation(FishingOperation fishingOperation) { + + Cruise previousCruise = validationDataContext.getCruise(); + try { + Cruise cruise = fishingOperation.getCruise(); + validationDataContext.setCruise(cruise); + NuitonValidatorResult nuitonValidatorResult = validationService.validateEditFishingOperation(fishingOperation); + return nuitonValidatorResult; + } finally { + validationDataContext.setCruise(previousCruise); + } + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersitenceHelper.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersitenceHelper.java index 0ec9ba7..c5bd425 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersitenceHelper.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersitenceHelper.java @@ -44,8 +44,8 @@ public class GenericformatImportPersitenceHelper { if (log.isInfoEnabled()) { log.info("Persist cruise: " + cruiseDecorator.toString(cruise)); } - Cruise persistedCruise = persistenceService.createCruise(cruise); - importContext.getImportResult().addImportedCruise(persistedCruise); + Cruise savedCruise = persistenceService.createCruise(cruise); + importContext.getImportResult().addImportedCruise(savedCruise); } @@ -72,12 +72,17 @@ public class GenericformatImportPersitenceHelper { } - public void persistFishingOperation(FishingOperation fishingOperation) { + public FishingOperation persistFishingOperation(FishingOperation fishingOperation) { if (log.isInfoEnabled()) { log.info("Persist fishing Operation: " + fishingOperationDecorator.toString(fishingOperation)); } + FishingOperation savedFishingOperation = persistenceService.createFishingOperation(fishingOperation); + importContext.getImportResult().addImportedFishingOperation(savedFishingOperation); + + return savedFishingOperation; + } public void persistCatchBatch(CatchBatch catchBatch) { @@ -86,6 +91,8 @@ public class GenericformatImportPersitenceHelper { log.info("Persist catchBatch of fishing Operation: " + fishingOperationDecorator.toString(catchBatch.getFishingOperation())); } + persistenceService.createCatchBatch(catchBatch); + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java index 84b3859..a336602 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java @@ -3,7 +3,6 @@ package fr.ifremer.tutti.service.genericformat.consumer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.service.ValidationService; import fr.ifremer.tutti.service.csv.CsvComsumer; import fr.ifremer.tutti.service.genericformat.GenericFormatImportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory; @@ -26,7 +25,7 @@ public class CsvConsumerForOperation extends CsvComsumer<OperationRow, Operation super(file, OperationModel.forImport(separator, parserFactory)); } - public void validateRow(ImportRow<OperationRow> row, GenericFormatImportContext importContext, ValidationService validationService) { + public void validateRow(ImportRow<OperationRow> row, GenericFormatImportContext importContext) { if (row.isValid()) { @@ -34,8 +33,8 @@ public class CsvConsumerForOperation extends CsvComsumer<OperationRow, Operation FishingOperation fishingOperation = bean.getFishingOperation(); - Cruise importedCruise = importContext.getImportedCruise(bean.getCruise()); - if (importedCruise == null) { + Cruise cruise = importContext.getImportedCruise(bean.getCruise()); + if (cruise == null) { addCheckError(row, new CruiseNotFoundException(bean.getCruise())); @@ -45,17 +44,18 @@ public class CsvConsumerForOperation extends CsvComsumer<OperationRow, Operation } else { - bean.setCruise(importedCruise); + bean.setCruise(cruise); + fishingOperation.setCruise(cruise); - NuitonValidatorResult validatorResult = validationService.validateEditFishingOperation(fishingOperation); + NuitonValidatorResult validatorResult = importContext.getValidationHelper().validateFishingOperation(fishingOperation); - if (validatorResult.hasFatalMessages() || validatorResult.hasErrorMessagess()) { + if (validatorResult.hasFatalMessages()) { addCheckError(row, new FishingOperationNotValidException(fishingOperation, validatorResult)); } - //TODO other checkes ? + //TODO other checks ? } @@ -97,7 +97,7 @@ public class CsvConsumerForOperation extends CsvComsumer<OperationRow, Operation if (bean.isBenthosTotalLivingNotItemizedWeightComputed()) { catchBatch.setBenthosTotalLivingNotItemizedWeight(null); } - + if (bean.isMarineLitterTotalWeightComputed()) { catchBatch.setMarineLitterTotalWeight(null); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForSurvey.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForSurvey.java index 513225b..a96b13a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForSurvey.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForSurvey.java @@ -3,7 +3,6 @@ package fr.ifremer.tutti.service.genericformat.consumer; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrder; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrders; -import fr.ifremer.tutti.service.ValidationService; import fr.ifremer.tutti.service.csv.CsvComsumer; import fr.ifremer.tutti.service.genericformat.GenericFormatImportContext; import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory; @@ -27,7 +26,7 @@ public class CsvConsumerForSurvey extends CsvComsumer<SurveyRow, SurveyModel> { super(file, SurveyModel.forImport(separator, parserFactory)); } - public void validateRow(ImportRow<SurveyRow> row, GenericFormatImportContext importContext, ValidationService validationService) { + public void validateRow(ImportRow<SurveyRow> row, GenericFormatImportContext importContext) { if (row.isValid()) { @@ -45,8 +44,8 @@ public class CsvConsumerForSurvey extends CsvComsumer<SurveyRow, SurveyModel> { } else { - NuitonValidatorResult nuitonValidatorResult = validationService.validateEditCruise(cruise); - if (nuitonValidatorResult.hasFatalMessages() || nuitonValidatorResult.hasErrorMessagess()) { + NuitonValidatorResult nuitonValidatorResult = importContext.getValidationHelper().validateCruise(cruise); + if (nuitonValidatorResult.hasFatalMessages()) { addCheckError(row, new CruiseNotValidException(cruise, nuitonValidatorResult)); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java index f45ecb1..53ba30d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java @@ -39,15 +39,15 @@ public class FishingOperationNotValidException extends Exception { if (validatorResult.hasFatalMessages()) { List<String> fatalMessage = validatorResult.getMessagesForScope(NuitonValidatorScope.FATAL); - builder.append(t("tutti.fatal.messages", Joiner.on("\n-").join(fatalMessage))); + builder.append("\n").append(t("tutti.fatal.messages", Joiner.on("\n-").join(fatalMessage))); } if (validatorResult.hasErrorMessagess()) { List<String> errorsMessage = validatorResult.getMessagesForScope(NuitonValidatorScope.ERROR); - builder.append(t("tutti.error.messages", Joiner.on("\n-").join(errorsMessage))); + builder.append("\n").append(t("tutti.error.messages", Joiner.on("\n-").join(errorsMessage))); } if (validatorResult.hasWarningMessages()) { List<String> warningMessage = validatorResult.getMessagesForScope(NuitonValidatorScope.WARNING); - builder.append(t("tutti.warning.messages", Joiner.on("\n-").join(warningMessage))); + builder.append("\n").append(t("tutti.warning.messages", Joiner.on("\n-").join(warningMessage))); } String message = t("tutti.genericFormat.import.error.fishingOperationNotValid", builder.toString()); diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index 5bfa000..e767166 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -15,7 +15,7 @@ tutti.genericFormat.import.error.cruiseAlreadyImported=La campagne avec ce nom % tutti.genericFormat.import.error.cruiseNotFound=La campagne (année\: %s, série\: %s, série partielle %s) n'existe pas tutti.genericFormat.import.error.cruiseNotValid= tutti.genericFormat.import.error.fishingOperationAlreadyImported=Un trait %s - %s - %s -%s a déjà été importé dans la campagne %s -tutti.genericFormat.import.error.fishingOperationNotValid=La campagne n'est pas valide \:\n%s +tutti.genericFormat.import.error.fishingOperationNotValid=Le trait n'est pas valide \:\n%s tutti.genericFormat.import.error.gearNotFoundInCruise=L'engin %s (position %s) non trouvé dans la campagne (année\: %s, série\: %s, série partielle %s) tutti.genericFormat.import.gearCaracteristics=Import des caractéristiques d'engin tutti.genericFormat.import.individualObservations=Import des observations individuelles -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 6ba064f93fe08ea10227eed4e4a624672b39d21b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:53:24 2015 +0100 fix test campaign --- .../tutti/service/genericformat/GenericFormatImportServiceTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java index 7b8354d..c499247 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java @@ -22,7 +22,7 @@ public class GenericFormatImportServiceTest { @ClassRule public static final ServiceDbResource dbResource = ServiceDbResource.writeDb("dbGenericFormatImport"); - public static final String PROGRAM_ID = "CAM-CGFS"; + public static final String PROGRAM_ID = "CAM-EVHOE"; protected GenericFormatImportService service; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 1b8c7f37ae8278b67725a3169af9bcd82c8a7688 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 19:53:46 2015 +0100 do not want to see some logs from nowhere... --- tutti-service/src/test/resources/log4j.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tutti-service/src/test/resources/log4j.properties b/tutti-service/src/test/resources/log4j.properties index faeb4ee..96f6f77 100644 --- a/tutti-service/src/test/resources/log4j.properties +++ b/tutti-service/src/test/resources/log4j.properties @@ -35,4 +35,6 @@ log4j.logger.org.nuiton.i18n=ERROR log4j.logger.org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog=ERROR log4j.logger.org.hibernate.engine.internal.StatefulPersistenceContext=ERROR log4j.logger.net.sf.ehcache.config.CacheConfiguration=ERROR +log4j.logger.com.opensymphony.xwork2.validator.validators.FieldExpressionValidator=ERROR log4j.logger.fr.ifremer.tutti.persistence.service.util.SynchronizationStatusHelper=WARN + -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm