Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 4058 discussions
r524 - trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential
by tchemit@users.forge.codelutin.com 04 Mar '13
by tchemit@users.forge.codelutin.com 04 Mar '13
04 Mar '13
Author: tchemit
Date: 2013-03-04 09:45:29 +0100 (Mon, 04 Mar 2013)
New Revision: 524
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/524
Log:
fix build
Modified:
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java 2013-03-03 20:22:36 UTC (rev 523)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java 2013-03-04 08:45:29 UTC (rev 524)
@@ -43,7 +43,7 @@
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
-import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.config.ApplicationConfig;
import org.nuiton.util.FileUtil;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
1
0
03 Mar '13
Author: tchemit
Date: 2013-03-03 21:22:36 +0100 (Sun, 03 Mar 2013)
New Revision: 523
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/523
Log:
- move TuttiIOUtil to persistence module
- refs #1860: [CAMPAGNE] - Fonctionnalit?\195?\169s de pi?\195?\168ces jointes (add persistence service)
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
Removed:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java (from rev 518, trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -0,0 +1,115 @@
+package fr.ifremer.tutti;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.nuiton.util.ZipUtil;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Useful methods around IO, all method errors are boxes a
+ * {@link TuttiTechnicalException}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public class TuttiIOUtil {
+
+ protected TuttiIOUtil() {
+ // no instance
+ }
+
+ public static void close(Closeable toClose, String errorMessage) {
+
+ try {
+ toClose.close();
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void zip(File source, File archiveFile, String errorMessage) {
+ try {
+ ZipUtil.compress(archiveFile, source);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void forceMkdir(File dir, String errorMessage) {
+ try {
+ FileUtils.forceMkdir(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void copyDirectory(File source, File target, String errorMessage) {
+ try {
+ FileUtils.copyDirectory(source, target);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void copyFileToDirectory(File source, File target, String errorMessage) {
+ try {
+ FileUtils.copyFileToDirectory(source, target);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void copyFile(File source, File target, String errorMessage) {
+ try {
+ FileUtils.copyFile(source, target);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void deleteFile(File file, String errorMessage) {
+ try {
+ FileUtils.forceDelete(file);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static File addExtensionIfMissing(File file, String extension) {
+ if (!file.getName().endsWith(extension)) {
+ file = new File(file.getParentFile(), file.getName() + extension);
+ }
+ return file;
+ }
+
+ public static String getExtension(File file) {
+ return FilenameUtils.getExtension(file.getName());
+ }
+}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,6 +25,7 @@
*/
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -39,12 +40,14 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.springframework.transaction.annotation.Transactional;
+import java.io.File;
import java.util.List;
/**
@@ -199,12 +202,20 @@
List<Person> getAllPerson();
+ /**
+ * @return all object type
+ * @since 1.0.2
+ */
+ List<ObjectType> getAllObjectType();
+
Person getPerson(Integer personId);
Gear getGear(Integer gearCode);
Vessel getVessel(String vesselCode);
+ ObjectType getObjectType(String objectTypeCode);
+
boolean isSortedQualitativeValue(CaracteristicQualitativeValue value);
/**
@@ -243,7 +254,55 @@
@Transactional(readOnly = false)
List<Gear> importTemporaryGear(List<Gear> gears);
+ //------------------------------------------------------------------------//
+ //-- Attachments methods --//
+ //------------------------------------------------------------------------//
+ /**
+ * Get all attachments for the given object {@code objectId}.
+ *
+ * @param objectId id of the object
+ * @return list of all attachments for the given {@code objectId}.
+ */
+ List<Attachment> getAllAttachments(String objectId);
+
+ /**
+ * Get the file of the given {@code attachmentId}.
+ *
+ * @param attachmentId id of the attachment
+ * @return the file for the given attachment
+ */
+ File getAttachmentFile(String attachmentId);
+
+ /**
+ * Creates the given attachment.
+ *
+ * @param attachment attachment to create
+ * @param file file to store in this attachment
+ * @return the attachment with his id.
+ */
+ @Transactional(readOnly = false)
+ Attachment createAttachment(Attachment attachment, File file);
+
+
+ /**
+ * Saves the given attachment.
+ *
+ * @param attachment attachment to create
+ * @return the attachment with his id.
+ */
+ @Transactional(readOnly = false)
+ Attachment saveAttachment(Attachment attachment);
+
+
+ /**
+ * Deletes the given attachment given his id.
+ *
+ * @param attachmentId id of the attachment to delete
+ */
+ @Transactional(readOnly = false)
+ void deleteAttachment(String attachmentId);
+
//------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -28,6 +28,7 @@
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -43,11 +44,13 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.persistence.service.AccidentalBatchPersistenceService;
+import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService;
import fr.ifremer.tutti.persistence.service.BatchPersistenceService;
import fr.ifremer.tutti.persistence.service.CruisePersistenceService;
import fr.ifremer.tutti.persistence.service.FishingOperationPersistenceService;
@@ -62,6 +65,7 @@
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -104,6 +108,9 @@
protected ProtocolPersistenceService protocolService;
@Autowired
+ protected AttachmentPersistenceService attachmentService;
+
+ @Autowired
protected CacheService cacheService;
@Override
@@ -130,6 +137,7 @@
macroWasteBatchService.init();
accidentalBatchService.init();
protocolService.init();
+ attachmentService.init();
}
@Override
@@ -147,6 +155,7 @@
macroWasteBatchService.close();
accidentalBatchService.close();
protocolService.close();
+ attachmentService.close();
TuttiPersistenceServiceLocator.close();
}
@@ -240,6 +249,11 @@
}
@Override
+ public List<ObjectType> getAllObjectType() {
+ return referentialService.getAllObjectType();
+ }
+
+ @Override
public Caracteristic getSizeCategoryCaracteristic() {
return referentialService.getSizeCategoryCaracteristic();
}
@@ -305,6 +319,11 @@
}
@Override
+ public ObjectType getObjectType(String objectTypeCode) {
+ return referentialService.getObjectType(objectTypeCode);
+ }
+
+ @Override
public List<Species> importTemporarySpecies(List<Species> species) {
return referentialService.importTemporarySpecies(species);
}
@@ -325,6 +344,36 @@
}
//------------------------------------------------------------------------//
+ //-- Attachment methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public List<Attachment> getAllAttachments(String objectId) {
+ return attachmentService.getAllAttachments(objectId);
+ }
+
+ @Override
+ public File getAttachmentFile(String attachmentId) {
+ return attachmentService.getAttachmentFile(attachmentId);
+ }
+
+ @Override
+ public Attachment createAttachment(Attachment attachment, File file) {
+ return attachmentService.createAttachment(attachment, file);
+ }
+
+ @Override
+ public Attachment saveAttachment(Attachment attachment) {
+ return attachmentService.saveAttachment(attachment);
+ }
+
+ @Override
+ public void deleteAttachment(String attachmentId) {
+ attachmentService.deleteAttachment(attachmentId);
+ }
+
+
+ //------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,6 +25,7 @@
*/
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -39,11 +40,13 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
+import java.io.File;
import java.io.IOException;
import java.util.List;
@@ -211,6 +214,16 @@
}
@Override
+ public List<ObjectType> getAllObjectType() {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
+ public ObjectType getObjectType(String objectTypeCode) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
public List<Program> getAllProgram() {
throw new RuntimeException("method not implemented");
}
@@ -476,6 +489,31 @@
}
@Override
+ public List<Attachment> getAllAttachments(String objectId) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
+ public File getAttachmentFile(String attachmentId) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
+ public Attachment createAttachment(Attachment attachment, File file) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
+ public Attachment saveAttachment(Attachment attachment) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
+ public void deleteAttachment(String attachmentId) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
public void init() {
}
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -0,0 +1,88 @@
+package fr.ifremer.tutti.persistence.service;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * To persist {@link Attachment}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+@Transactional(readOnly = true)
+public interface AttachmentPersistenceService extends TuttiPersistenceServiceImplementor {
+
+ /**
+ * Get all attachments for the given object {@code objectId}.
+ *
+ * @param objectId id of the object
+ * @return list of all attachments for the given {@code objectId}.
+ */
+ List<Attachment> getAllAttachments(String objectId);
+
+ /**
+ * Get the file of the given {@code attachmentId}.
+ *
+ * @param attachmentId id of the attachment
+ * @return the file for the given attachment
+ */
+ File getAttachmentFile(String attachmentId);
+
+ /**
+ * Creates the given attachment.
+ *
+ * @param attachment attachment to create
+ * @param file file to store in this attachment
+ * @return the attachment with his id.
+ */
+ @Transactional(readOnly = false)
+ Attachment createAttachment(Attachment attachment, File file);
+
+
+ /**
+ * Saves the given attachment.
+ *
+ * @param attachment attachment to create
+ * @return the attachment with his id.
+ */
+ @Transactional(readOnly = false)
+ Attachment saveAttachment(Attachment attachment);
+
+
+ /**
+ * Deletes the given attachment given his id.
+ *
+ * @param attachmentId id of the attachment to delete
+ */
+ @Transactional(readOnly = false)
+ void deleteAttachment(String attachmentId);
+
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -0,0 +1,253 @@
+package fr.ifremer.tutti.persistence.service;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.data.measure.file.MeasurementFile;
+import fr.ifremer.adagio.core.dao.data.measure.file.MeasurementFileDao;
+import fr.ifremer.adagio.core.dao.referential.ObjectTypeImpl;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
+import fr.ifremer.tutti.TuttiIOUtil;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.type.IntegerType;
+import org.hibernate.type.StringType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataRetrievalFailureException;
+import org.springframework.dao.InvalidDataAccessResourceUsageException;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Default implementation of the service {@link AttachmentPersistenceService}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+@Service("attachmentPersistenceService")
+public class AttachmentPersistenceServiceImpl extends AbstractPersistenceService implements AttachmentPersistenceService {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AttachmentPersistenceServiceImpl.class);
+
+ protected static final String ATTACHMENT_PATH_FORMAT =
+ "%1$s/OBJ-%2$s/%1$s-%2$s-%3$s.%4$s";
+
+ @Autowired
+ protected ReferentialPersistenceService referentialService;
+
+ @Resource(name = "measurementFileDao")
+ protected MeasurementFileDao measurementFileDao;
+
+ protected File dbAttachmentDirectory;
+
+ @Override
+ public void init() {
+ super.init();
+ dbAttachmentDirectory = config.getDbAttachmentDirectory();
+
+ if (log.isInfoEnabled()) {
+ log.info("Db Attachment storage: " + dbAttachmentDirectory);
+ }
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AttachmentPersistenceService implementation --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public List<Attachment> getAllAttachments(String objectId) {
+ Iterator<Object[]> list = queryList(
+ "allAttachment",
+ "objectId", StringType.INSTANCE, objectId);
+
+ List<Attachment> result = Lists.newArrayList();
+ while (list.hasNext()) {
+ Object[] source = list.next();
+ Attachment target = new Attachment();
+ loadAttachment(source, target);
+ result.add(target);
+ }
+ return result;
+ }
+
+ @Override
+ public File getAttachmentFile(String attachmentId) {
+ Object[] source = queryUnique(
+ "attachment",
+ "attachmetId", IntegerType.INSTANCE, Integer.valueOf(attachmentId));
+
+ if (source == null) {
+ throw new DataRetrievalFailureException(
+ "Could not retrieve Attachment with id=" + attachmentId);
+ }
+ Attachment target = new Attachment();
+ loadAttachment(source, target);
+
+ File result = getFile(target);
+ return result;
+ }
+
+ @Override
+ public Attachment createAttachment(Attachment attachment, File file) {
+ Preconditions.checkNotNull(attachment);
+ Preconditions.checkNotNull(attachment.getObjectType());
+ Preconditions.checkNotNull(attachment.getObjectType().getId());
+ Preconditions.checkArgument(
+ attachment.getId() == null,
+ "Attachment 'id' must be null to call createAttachment().");
+ Preconditions.checkNotNull(file);
+
+ // Use first a fake filePath (we don't know the id of attachment entity)
+ attachment.setPath("FAKE-" + System.nanoTime());
+
+ // Create measurement file
+ MeasurementFile measurementFile = MeasurementFile.Factory.newInstance();
+
+ // set measurementFile pmfm
+ measurementFile.setPmfm(load(PmfmImpl.class, enumeration.PMFM_ID_MEASUREMENT_FILE));
+
+ // set not qualifed flag
+ measurementFile.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+
+ // set objectType
+ measurementFile.setObjectType(load(ObjectTypeImpl.class, attachment.getObjectType().getId()));
+
+ // copy our property
+ attachmentToEntity(attachment, measurementFile);
+ measurementFileDao.create(measurementFile);
+
+ // get created id
+ attachment.setId(String.valueOf(measurementFile.getId()));
+
+ // Build now the real path
+ String filePath = String.format(ATTACHMENT_PATH_FORMAT,
+ measurementFile.getObjectType().getCode(),
+ measurementFile.getObjectId(),
+ measurementFile.getId(),
+ TuttiIOUtil.getExtension(file));
+
+ // store the path
+ attachment.setPath(filePath);
+ measurementFile.setPath(filePath);
+
+ if (log.isInfoEnabled()) {
+ log.info("Created attachment: " + attachment.getId() +
+ ", path: " + filePath);
+ }
+
+ // update measurementFile with correct path
+ measurementFileDao.update(measurementFile);
+
+ // copy file to disk local storage
+ File targetFile = getFile(attachment);
+
+ TuttiIOUtil.copyFile(
+ file, targetFile,
+ "Could not copy attachment file " + file + " to " + targetFile);
+
+ return null;
+ }
+
+ @Override
+ public Attachment saveAttachment(Attachment attachment) {
+ Preconditions.checkNotNull(attachment);
+ Preconditions.checkNotNull(attachment.getObjectType());
+ Preconditions.checkNotNull(attachment.getObjectType().getId());
+ Preconditions.checkNotNull(attachment.getId(), "Attachment 'id' must not be null or empty to be saved.");
+
+ MeasurementFile measurementFile = measurementFileDao.load(Integer.valueOf(attachment.getId()));
+ if (measurementFile == null) {
+ throw new DataRetrievalFailureException("Could not retrieve Attachment with id=" + attachment.getId());
+ }
+
+ // can't change the objectType
+ if (ObjectUtils.notEqual(attachment.getObjectType().getId(),
+ measurementFile.getObjectType().getCode())) {
+ throw new InvalidDataAccessResourceUsageException(
+ "Can't change objectId, was before " +
+ measurementFile.getObjectType().getCode());
+ }
+
+ attachmentToEntity(attachment, measurementFile);
+ measurementFileDao.update(measurementFile);
+ return attachment;
+ }
+
+ @Override
+ public void deleteAttachment(String attachmentId) {
+ Integer id = Integer.valueOf(attachmentId);
+ Object[] source = queryUnique(
+ "attachment",
+ "attachmetId", IntegerType.INSTANCE, id);
+
+ if (source == null) {
+ throw new DataRetrievalFailureException(
+ "Could not retrieve Attachment with id=" + attachmentId);
+ }
+ Attachment target = new Attachment();
+ loadAttachment(source, target);
+
+ measurementFileDao.remove(id);
+ getCurrentSession().flush();
+
+ File file = getFile(target);
+ //TODO Hum we do not have a transaction manager for file :(
+ TuttiIOUtil.deleteFile(file, "Could not delete attachement file " + file);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected void loadAttachment(Object[] source,
+ Attachment target) {
+
+ target.setId(String.valueOf(source[0]));
+ target.setPath((String) source[1]);
+ target.setName((String) source[2]);
+ target.setComment((String) source[3]);
+ }
+
+ protected void attachmentToEntity(Attachment attachment,
+ MeasurementFile measurementFile) {
+ measurementFile.setName(attachment.getName());
+ measurementFile.setComments(attachment.getComment());
+ }
+
+ protected File getFile(Attachment attachment) {
+ File result = new File(dbAttachmentDirectory, attachment.getPath());
+ return result;
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -33,6 +33,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
@@ -178,6 +179,13 @@
*/
List<Caracteristic> getAllNumericCaracteristic();
+ /**
+ * @return all object type
+ * @since 1.0.2
+ */
+ @Cacheable(value = "objectTypes")
+ List<ObjectType> getAllObjectType();
+
Caracteristic getSizeCategoryCaracteristic();
Caracteristic getSexCaracteristic();
@@ -205,6 +213,9 @@
@Cacheable(value = "pmfmById", key = "#pmfmId")
Caracteristic getCaracteristic(Integer pmfmId);
+ @Cacheable(value = "objectTypeByCode", key = "#objectTypeCode")
+ ObjectType getObjectType(String objectTypeCode);
+
boolean isSortedQualitativeValue(CaracteristicQualitativeValue value);
List<Integer> getSampleCategoryIds();
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -43,6 +43,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Status;
@@ -453,6 +454,29 @@
}
@Override
+ public List<ObjectType> getAllObjectType() {
+ Iterator<Object[]> sources = queryList("allObjectType");
+ List<ObjectType> result = Lists.newArrayList();
+ Cache cache = cacheService.getCache("objectTypeByCode");
+ while (sources.hasNext()) {
+ Object[] source = sources.next();
+ String code = (String) source[0];
+ ObjectType target = loadObjectType(source);
+ cache.put(code, target);
+ result.add(target);
+ }
+ return result;
+ }
+
+ @Override
+ public ObjectType getObjectType(String objectTypeCode) {
+ Object[] source = queryUnique("objectType",
+ "objectTypeCode", StringType.INSTANCE, objectTypeCode);
+ ObjectType target = loadObjectType(source);
+ return target;
+ }
+
+ @Override
public List<Caracteristic> getAllNumericCaracteristic() {
List<Caracteristic> result = Lists.newArrayList();
@@ -761,6 +785,14 @@
return result;
}
+ protected ObjectType loadObjectType(Object[] source) {
+ ObjectType result = new ObjectType();
+ result.setId((String) source[0]);
+ result.setName((String) source[1]);
+ result.setDescription((String) source[2]);
+ return result;
+ }
+
protected Species loadSpecies(TaxonRefTaxVO source) {
Species target = new Species();
target.setId(String.valueOf(source.getTaxonNameId()));
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -188,6 +188,10 @@
@Value("${PmfmId.SURVEY_PART}")
public final Integer PMFM_ID_SURVEY_PART = null;
+ @Value("${PmfmId.MEASUREMENT_FILE}")
+ public final Integer PMFM_ID_MEASUREMENT_FILE= null;
+
+
@Value("${ProgramCode.SCIENTIFIC_CRUISE_PREFIX}")
public final String PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX = null;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -110,6 +110,11 @@
ReferentialSynchronizeService.class);
}
+ public static AttachmentPersistenceService getAttachmentPersistenceService() {
+ return getPersistenceService("attachmentPersistenceService",
+ AttachmentPersistenceService.class);
+ }
+
public static <S extends TuttiPersistenceServiceImplementor> S getPersistenceService(String name, Class<S> serviceType) {
S service = instance().getService(name, serviceType);
service.init();
Modified: trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-03-03 20:22:36 UTC (rev 523)
@@ -83,7 +83,14 @@
<bean id="tuttiPmfmByIdCache" parent="tuttiAbstractEternalCache">
<property name="cacheName" value="pmfmById" />
</bean>
-
+
+ <bean id="tuttiObjectTypeCache" parent="tuttiAbstractEternalCache">
+ <property name="cacheName" value="objectTypes" />
+ </bean>
+ <bean id="tuttiObjectTypeByCodeCache" parent="tuttiAbstractEternalCache">
+ <property name="cacheName" value="objectTypeByCode" />
+ </bean>
+
<bean id="tuttiFishingVesselsCache" parent="tuttiAbstractEternalCache">
<property name="cacheName" value="fishingVessels" />
<property name="maxElementsInMemory" value="1"/>
Modified: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-03-03 20:22:36 UTC (rev 523)
@@ -327,8 +327,7 @@
<query-param name="pmfmIdSorted" type="java.lang.Integer"/>
<query-param name="pmfmIdSortingType" type="java.lang.Integer"/>
</query>
-
-
+
<query name="allSpeciesBatchFrequency">
<![CDATA[
SELECT
@@ -354,8 +353,41 @@
ORDER BY sm.numericalValue
]]>
<query-param name="parentBatchId" type="java.lang.Integer"/>
- </query>
+ </query>
+ <query name="allAttachment">
+ <![CDATA[
+ SELECT
+ m.id AS attachmentId,
+ m.path AS attachmentPath,
+ m.name AS attachmentName,
+ m.comments as attachmentComment
+ FROM
+ MeasurementFileImpl m
+ WHERE
+ m.objectId = :objectId
+ AND m.pmfm.id = :pmfmId
+ ORDER BY m.id
+ ]]>
+ <query-param name="objectId" type="java.lang.Integer"/>
+ <query-param name="pmfmId" type="java.lang.Integer"/>
+ </query>
+
+ <query name="attachment">
+ <![CDATA[
+ SELECT
+ m.id AS attachmentId,
+ m.path AS attachmentPath,
+ m.name AS attachmentName,
+ m.comments as attachmentComment
+ FROM
+ MeasurementFileImpl m
+ WHERE
+ m.id = :id
+ ]]>
+ <query-param name="id" type="java.lang.Integer"/>
+ </query>
+
<!-- ===================================================================== -->
<!-- === Requete techniques sur référentiels [REF-TXXX] === -->
<!-- ===================================================================== -->
@@ -432,7 +464,6 @@
<query-param name="statusTemporaryCode" type="java.lang.String"/>
</query>
-
<!-- ===================================================================== -->
<!-- === Requete sur référentiels [REF-XXX] === -->
<!-- ===================================================================== -->
@@ -743,6 +774,30 @@
<query-param name="statusTemporaryCode" type="java.lang.String"/>
</query>
+ <!-- [REF-17] Get all ObjectType -->
+ <query cacheable="true" name="allObjectType">
+ <![CDATA[
+ SELECT
+ p.code AS objectTypeCode,
+ p.name AS objectTypeName,
+ p.description AS objectTypeDescription
+ FROM ObjectTypeImpl p
+ ]]>
+ </query>
+
+ <!-- [REF-18] Get one ObjectType -->
+ <query cacheable="true" name="objectType">
+ <![CDATA[
+ SELECT
+ p.code AS objectTypeCode,
+ p.name AS objectTypeName,
+ p.description AS objectTypeDescription
+ FROM ObjectTypeImpl p
+ WHERE p.code = :objectTypeCode
+ ]]>
+ <query-param name="objectTypeCode" type="java.lang.String"/>
+ </query>
+
<!-- ===================================================================== -->
<!-- === Fetch profiles === -->
<!-- ===================================================================== -->
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-03 20:22:36 UTC (rev 523)
@@ -328,10 +328,16 @@
# Classe de taille macro-déchet
PmfmId.MARINE_LITTER_SIZE_CATEGORY=1422
+# Pour stoquer Cruise.surveyPart
# TODO Alphanumeric = true A creer (dans les enumerations Allegro)
-# TODO Change this number
+# FIXME Change this number
PmfmId.SURVEY_PART=1310
+# Pmfm associé aux pièces-jointes
+# TODO Alphanumeric = true A creer (dans les enumerations Allegro)
+# FIXME Change this number
+PmfmId.MEASUREMENT_FILE=1310
+
# TODO A creer (dans les enumerations Allegro)
PmfmId.STATION_NUMBER=1243
# TODO A creer (dans les enumerations Allegro)
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -118,6 +118,10 @@
return 123;
}
+ public int refNbObjectType() {
+ return 56;
+ }
+
public String refSpeciesId() {
return "15461";
}
@@ -133,4 +137,8 @@
public Integer refBad2SpeciesTaxonId() {
return 2320;
}
+
+ public String objectTypeCode() {
+ return "BATCH";
+ }
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -33,6 +33,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
@@ -76,7 +77,6 @@
TuttiPersistenceServiceLocator.instance().getCacheService().clearAllCaches();
}
-
@Before
public void setUp() throws Exception {
service = TuttiPersistenceServiceLocator.getReferentialPersistenceService();
@@ -100,6 +100,18 @@
}
@Test
+ public void getAllObjectType() {
+ List<ObjectType> result = service.getAllObjectType();
+ assertResultList(result, fixtures.refNbObjectType());
+ }
+
+ @Test
+ public void getObjectType() {
+ ObjectType result = service.getObjectType(fixtures.objectTypeCode());
+ Assert.assertNotNull(result);
+ }
+
+ @Test
public void getAllFishingOperationStrata(/*String zoneId*/) {
String zoneId = dbResource.getFixtures().zoneId();
List<FishingOperationLocation> result =
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,11 +25,13 @@
*/
import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.TuttiPersistenceNoDbImpl;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -44,6 +46,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
@@ -271,6 +274,11 @@
}
@Override
+ public List<ObjectType> getAllObjectType() {
+ return driver.getAllObjectType();
+ }
+
+ @Override
public List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId) {
return driver.getAllFishingOperationStrata(zoneId);
}
@@ -336,6 +344,11 @@
}
@Override
+ public ObjectType getObjectType(String objectTypeCode) {
+ return driver.getObjectType(objectTypeCode);
+ }
+
+ @Override
public List<Species> importTemporarySpecies(List<Species> species) {
return driver.importTemporarySpecies(species);
}
@@ -356,6 +369,35 @@
}
//------------------------------------------------------------------------//
+ //-- Attachment methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public List<Attachment> getAllAttachments(String objectId) {
+ return driver.getAllAttachments(objectId);
+ }
+
+ @Override
+ public File getAttachmentFile(String attachmentId) {
+ return driver.getAttachmentFile(attachmentId);
+ }
+
+ @Override
+ public Attachment createAttachment(Attachment attachment, File file) {
+ return driver.createAttachment(attachment, file);
+ }
+
+ @Override
+ public Attachment saveAttachment(Attachment attachment) {
+ return driver.saveAttachment(attachment);
+ }
+
+ @Override
+ public void deleteAttachment(String attachmentId) {
+ driver.deleteAttachment(attachmentId);
+ }
+
+ //------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
Deleted: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -1,95 +0,0 @@
-package fr.ifremer.tutti.service;
-
-/*
- * #%L
- * Tutti :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.TuttiTechnicalException;
-import org.apache.commons.io.FileUtils;
-import org.nuiton.util.ZipUtil;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Useful methods around IO, all method errors are boxes a
- * {@link TuttiTechnicalException}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.2
- */
-public class TuttiIOUtil {
-
- protected TuttiIOUtil() {
- // no instance
- }
-
- public static void close(Closeable toClose, String errorMessage) {
-
- try {
- toClose.close();
- } catch (IOException e) {
- throw new TuttiTechnicalException(errorMessage, e);
- }
- }
-
- public static void zip(File source, File archiveFile, String errorMessage) {
- try {
- ZipUtil.compress(archiveFile, source);
- } catch (IOException e) {
- throw new TuttiTechnicalException(errorMessage, e);
- }
- }
-
- public static void forceMkdir(File dir, String errorMessage) {
- try {
- FileUtils.forceMkdir(dir);
- } catch (IOException e) {
- throw new TuttiTechnicalException(errorMessage, e);
- }
- }
-
- public static void copyDirectory(File source, File target, String errorMessage) {
- try {
- FileUtils.copyDirectory(source, target);
- } catch (IOException e) {
- throw new TuttiTechnicalException(errorMessage, e);
- }
- }
-
- public static void copyFile(File source, File target, String errorMessage) {
- try {
- FileUtils.copyFileToDirectory(source, target);
- } catch (IOException e) {
- throw new TuttiTechnicalException(errorMessage, e);
- }
- }
-
- public static File addExtensionIfMissing(File file, String extension) {
- if (!file.getName().endsWith(extension)) {
- file = new File(file.getParentFile(), file.getName() + extension);
- }
- return file;
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,7 +25,7 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -26,7 +26,7 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,7 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -26,7 +26,7 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -27,7 +27,7 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,7 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,7 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,7 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-03 17:45:10 UTC (rev 522)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-03 20:22:36 UTC (rev 523)
@@ -25,7 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.service.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
1
0
r522 - trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 03 Mar '13
by tchemit@users.forge.codelutin.com 03 Mar '13
03 Mar '13
Author: tchemit
Date: 2013-03-03 18:45:10 +0100 (Sun, 03 Mar 2013)
New Revision: 522
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/522
Log:
remove bad species block code
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-03 17:42:58 UTC (rev 521)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-03 17:45:10 UTC (rev 522)
@@ -409,9 +409,6 @@
List<Species> result = Lists.newArrayListWithCapacity(sources.length);
Cache referentSpeciesByIdCache = cacheService.getCache("referentSpeciesById");
for (TaxonRefTaxVO source : sources) {
- if (36403 == source.getTaxonNameId() || 34539 == source.getTaxonNameId()) {
- continue;
- }
Species target = loadSpecies(source);
// Add to cache :
1
0
r521 - in trunk/tutti-persistence: . src/main/java/fr/ifremer/tutti/persistence/service src/test/java/fr/ifremer/tutti/persistence src/test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 03 Mar '13
by tchemit@users.forge.codelutin.com 03 Mar '13
03 Mar '13
Author: tchemit
Date: 2013-03-03 18:42:58 +0100 (Sun, 03 Mar 2013)
New Revision: 521
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/521
Log:
fixes #2036: [CAMPAGNE] - Gestion des campagnes - Information saisie partielle non sauvegard?\195?\169e
improve test (now really destroy test directories if tests are ok)
Added:
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunListener.java
Modified:
trunk/tutti-persistence/pom.xml
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-03-03 16:57:56 UTC (rev 520)
+++ trunk/tutti-persistence/pom.xml 2013-03-03 17:42:58 UTC (rev 521)
@@ -231,6 +231,22 @@
</plugin>
</plugins>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <properties>
+ <property>
+ <name>listener</name>
+ <value>fr.ifremer.tutti.persistence.TuttiRunListener</value>
+ </property>
+ </properties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-03 16:57:56 UTC (rev 520)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-03 17:42:58 UTC (rev 521)
@@ -28,6 +28,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramDao;
+import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramImpl;
import fr.ifremer.adagio.core.dao.administration.user.PersonDao;
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.measure.SurveyMeasurement;
@@ -335,17 +336,13 @@
}
// Name
- if (source.getName() == null) {
- target.setName(null);
- } else if (source.getName() != null) {
- target.setName(source.getName());
- }
+ target.setName(source.getName());
// Program
if (source.getProgram() == null || source.getProgram().getId() == null) {
target.setProgram(null);
} else if (source.getName() != null && source.getProgram().getId() != null) {
- target.setProgram(programDao.load(source.getProgram().getId()));
+ target.setProgram(load(ProgramImpl.class, source.getProgram().getId()));
}
// Sort Room Managers
@@ -355,7 +352,9 @@
List<Person> persons = source.getHeadOfSortRoom();
miscDataBuffer.append(CRUISE_MISC_DATA_SORT_MANAGERS_TAG);
for (int i = 0; i < persons.size(); i++) {
- if (i > 0) miscDataBuffer.append(',');
+ if (i > 0) {
+ miscDataBuffer.append(',');
+ }
miscDataBuffer.append(persons.get(i).getId());
}
}
@@ -365,7 +364,7 @@
target.setManagerPerson(null);
} else if (source.getHeadOfMission() != null && source.getHeadOfMission().size() > 0) {
List<Person> persons = source.getHeadOfMission();
- target.setManagerPerson(personDao.load(Integer.valueOf(persons.get(0).getId())));
+ target.setManagerPerson(load(PersonImpl.class, Integer.valueOf(persons.get(0).getId())));
if (persons.size() > 1) {
//throw new UnsupportedOperationException("Cruise could not yet support more than one vessel.");
@@ -478,7 +477,6 @@
fishingTrip.setReturnLocation(locationCountry);
}
- //FIXME Creer un psfm serie partielle (voir avec vincent + benoit) (PmfmId.SURVEY_PART)
setSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART, null, source.getSurveyPart(), null);
// Gear
@@ -528,52 +526,54 @@
}
// adapt to surveyMeasurement
- protected SurveyMeasurement getSurveyMeasurement(FishingTrip scientificCruise,
- Integer pmfmId,
- boolean createIfNotExists) {
- SurveyMeasurement gearUseMeasurement = null;
+ protected SurveyMeasurement getOrCreateSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId) {
+ SurveyMeasurement result = null;
- for (SurveyMeasurement vum : scientificCruise.getSurveyMeasurements()) {
+ for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
if (pmfmId.equals(vum.getPmfm().getId())) {
- gearUseMeasurement = vum;
+ result = vum;
break;
}
}
- if (gearUseMeasurement == null) {
- if (!createIfNotExists) {
- return null;
+ if (result == null) {
+
+ // create new measurement
+ result = SurveyMeasurement.Factory.newInstance();
+ result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setDepartment(fishingTrip.getRecorderDepartment());
+ Pmfm pmfm = load(PmfmImpl.class, pmfmId);
+ result.setPmfm(pmfm);
+ result.setFishingTrip(fishingTrip);
+
+ // add it to fishingTrip
+ if (fishingTrip.getSurveyMeasurements() == null) {
+
+ //create new set of measurements
+ fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
}
- gearUseMeasurement = SurveyMeasurement.Factory.newInstance();
- if (scientificCruise.getSurveyMeasurements() == null) {
- scientificCruise.setSurveyMeasurements(Sets.newHashSet(gearUseMeasurement));
- } else {
- scientificCruise.getSurveyMeasurements().add(gearUseMeasurement);
- }
- gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
- Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
- gearUseMeasurement.setPmfm(pmfm);
+
+ fishingTrip.getSurveyMeasurements().add(result);
}
-
- return gearUseMeasurement;
+ return result;
}
- protected SurveyMeasurement setSurveyMeasurement(FishingTrip scientificCruise,
+ protected SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
Integer pmfmId,
Float numericalValue,
String alphanumericalValue,
Integer qualitativevalueId) {
- SurveyMeasurement vesselUseMeasurement = getSurveyMeasurement(scientificCruise, pmfmId, true);
+ SurveyMeasurement result = getOrCreateSurveyMeasurement(fishingTrip, pmfmId);
if (alphanumericalValue != null) {
- vesselUseMeasurement.setAlphanumericalValue(alphanumericalValue);
+ result.setAlphanumericalValue(alphanumericalValue);
} else if (numericalValue != null) {
- vesselUseMeasurement.setNumericalValue(numericalValue);
+ result.setNumericalValue(numericalValue);
} else if (qualitativevalueId != null) {
- vesselUseMeasurement.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
+ result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
}
- return vesselUseMeasurement;
+ return result;
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-03 16:57:56 UTC (rev 520)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-03 17:42:58 UTC (rev 521)
@@ -285,8 +285,8 @@
@Override
public Vessel getVessel(String vesselCode) {
- if (log.isInfoEnabled()) {
- log.info("get vessel: " + vesselCode);
+ if (log.isDebugEnabled()) {
+ log.debug("get vessel: " + vesselCode);
}
// Warning : return a list because more than one line could be found,
// but 'order by' assume that the first one in the good row
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-03 16:57:56 UTC (rev 520)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-03 17:42:58 UTC (rev 521)
@@ -40,6 +40,7 @@
import org.junit.Assume;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
+import org.junit.runner.notification.Failure;
import org.junit.runners.model.Statement;
import org.nuiton.util.config.ApplicationConfig;
@@ -130,8 +131,6 @@
return new File(resourceDirectory, name);
}
- boolean witherror = false;
-
@Override
public Statement apply(final Statement base, final Description description) {
@@ -141,8 +140,6 @@
before(description);
try {
base.evaluate();
- } catch (Throwable e) {
- witherror = true;
} finally {
after(description);
}
@@ -154,6 +151,8 @@
protected void before(Description description) throws Throwable {
+ TuttiRunListener.beforeClass(description);
+
testClass = description.getTestClass();
File db = new File("src/test/db");
@@ -295,23 +294,32 @@
log.info("After test " + testClass);
}
- if (!witherror) {
+ Set<Failure> failures = TuttiRunListener.getFailuresForClass(
+ description.getClassName());
+
+ if (failures.isEmpty()) {
+
+ // can destroy directories
for (File file : toDetroy) {
if (file.exists()) {
if (log.isInfoEnabled()) {
log.info("Destroy directory: " + file);
}
-// try {
-// FileUtils.deleteDirectory(file);
-// } catch (IOException e) {
-// if (log.isErrorEnabled()) {
-// log.error("Could not delete directory: " + file, e);
-// }
-// }
+ try {
+ FileUtils.deleteDirectory(file);
+ } catch (IOException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not delete directory: " + file, e);
+ }
+ }
}
}
+ } else {
+ if (log.isWarnEnabled()) {
+ log.warn("Won't destroy directories caus of failures in test.");
+ }
+ }
- }
// push back old classLoader
if (oldClassLoader != null) {
Thread.currentThread().setContextClassLoader(oldClassLoader);
Added: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunListener.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunListener.java (rev 0)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunListener.java 2013-03-03 17:42:58 UTC (rev 521)
@@ -0,0 +1,95 @@
+package fr.ifremer.tutti.persistence;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Sets;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.runner.Description;
+import org.junit.runner.notification.Failure;
+import org.junit.runner.notification.RunListener;
+
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * Listen JUnit test and keep failures (in order to remove or not directories
+ * in {@link DatabaseResource}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public final class TuttiRunListener extends RunListener {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(TuttiRunListener.class);
+
+ protected static final Set<Failure> failures = Sets.newHashSet();
+
+ public static synchronized void beforeClass(Description description) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Start to listen test " + description);
+ }
+
+ Iterator<Failure> iterator = failures.iterator();
+ String className = description.getClassName();
+ while (iterator.hasNext()) {
+ Failure failure = iterator.next();
+ if (className.equals(failure.getDescription().getClassName())) {
+ iterator.remove();
+ }
+ }
+ }
+
+ public static synchronized Set<Failure> getFailuresForClass(String className) {
+ Set<Failure> result = Sets.newHashSet();
+ for (Failure failure : failures) {
+ if (className.equals(failure.getDescription().getClassName())) {
+ result.add(failure);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public void testFailure(Failure failure) throws Exception {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding failure: " + failure + ", for description: " + failure.getDescription());
+ }
+ failures.add(failure);
+ super.testFailure(failure);
+
+ }
+
+ @Override
+ public void testAssumptionFailure(Failure failure) {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding assumptionFailure: " + failure + ", for description: " + failure.getDescription());
+ }
+ failures.add(failure);
+ super.testAssumptionFailure(failure);
+ }
+}
Property changes on: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunListener.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-03 16:57:56 UTC (rev 520)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-03 17:42:58 UTC (rev 521)
@@ -35,7 +35,6 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.ClassRule;
-import org.junit.Ignore;
import org.junit.Test;
import java.util.Calendar;
@@ -52,8 +51,6 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-//FIXME-TC solve the surveyPart stuff (http://forge.codelutin.com/issues/2036)
-@Ignore
public class CruisePersistenceServiceWriteTest {
/** Logger. */
1
0
03 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/4…>
Changes:
[Tony Chemit] use new Applicationconfig and Applicationupdater API
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-persistence:1.0.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/fr/ifremer/adagio/adagi…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (2 KB at 5.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/fr/ifremer/adagio/adagi…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (8 KB at 200.4 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/fr/ifremer/adagio/adagi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (600 B at 17.8 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (16 KB at 510.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 41.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils… (2 KB at 25.4 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils… (7 KB at 142.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (823 B at 13.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils… (823 B at 10.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils… (12 KB at 247.2 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-confi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 26.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-confi… (2 KB at 26.9 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-confi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-confi… (5 KB at 147.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (2509 KB at 9153.7 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-confi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-confi… (35 KB at 891.3 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-utils… (293 KB at 3752.2 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-persistence ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-persistence ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.eugene:eugene-maven-plugin:2.6.1(default)
[INFO]
[INFO] --- eugene-maven-plugin:2.6.1:generate (default) @ tutti-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Generate one file in 61.673ms.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> for 1 file(s).
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Generate one file in 3.128s.
[INFO] Process phase [model] for one entry.
INFO [pool-1-thread-1] (ObjectModelReader.java:273) loadModelProperties - 19 tag values were succesfull imported from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Apply generator JavaInterfaceTransformer
[INFO] Apply generator SimpleJavaBeanTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.Program], already found in class-path.
[INFO] Apply generator JavaEnumerationTransformer
[INFO] No file generated.
[INFO] Add compile source root : <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Add resource root :Resource {targetPath: null, filtering: false, FileSet {directory: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…,> PatternSet [includes: {}, excludes: {**/*.java}]}}
mojoSucceeded org.nuiton.eugene:eugene-maven-plugin:2.6.1(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-persistence ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-persistence:1.0.2-SNAPSHOT[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-persistence ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-persistence:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-persistence ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 7 resources
[INFO] Copying 0 resource
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-persistence ---
[INFO] Compiling 82 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
mojoSucceeded org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
mojoStarted org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Executed tasks
mojoSucceeded org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-testResources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-testResources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-testCompile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ tutti-persistence ---
[INFO] Compiling 27 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[53,51] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[190,8] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[190,50] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[191,25] error: no suitable method found for loadDefaultOptions(TuttiPersistenceConfigOption[])
[ERROR]
O#2 extends OptionDef declared in method <O#2>loadDefaultOptions(Class<O#2>)
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[198,17] error: constructor TuttiPersistenceConfig in class TuttiPersistenceConfig cannot be applied to given types;
[INFO] 5 errors
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-testCompile)
projectFailed fr.ifremer.tutti:tutti-persistence:1.0.2-SNAPSHOT
1
1
r520 - trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence
by tchemit@users.forge.codelutin.com 03 Mar '13
by tchemit@users.forge.codelutin.com 03 Mar '13
03 Mar '13
Author: tchemit
Date: 2013-03-03 17:57:56 +0100 (Sun, 03 Mar 2013)
New Revision: 520
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/520
Log:
fix build
Modified:
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-03 15:52:58 UTC (rev 519)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-03 16:57:56 UTC (rev 520)
@@ -41,7 +41,7 @@
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
-import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.config.ApplicationConfig;
import java.io.BufferedReader;
import java.io.BufferedWriter;
@@ -301,13 +301,13 @@
if (log.isInfoEnabled()) {
log.info("Destroy directory: " + file);
}
- try {
- FileUtils.deleteDirectory(file);
- } catch (IOException e) {
- if (log.isErrorEnabled()) {
- log.error("Could not delete directory: " + file, e);
- }
- }
+// try {
+// FileUtils.deleteDirectory(file);
+// } catch (IOException e) {
+// if (log.isErrorEnabled()) {
+// log.error("Could not delete directory: " + file, e);
+// }
+// }
}
}
1
0
03 Mar '13
03 Mar '13
Author: tchemit
Date: 2013-03-03 16:52:58 +0100 (Sun, 03 Mar 2013)
New Revision: 519
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/519
Log:
use new Applicationconfig and Applicationupdater API
Added:
trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider
trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider
trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider
Removed:
trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider
trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider
trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider
Modified:
trunk/pom.xml
trunk/tutti-persistence/pom.xml
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigProvider.java
trunk/tutti-service/pom.xml
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigProvider.java
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigProvider.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/pom.xml 2013-03-03 15:52:58 UTC (rev 519)
@@ -183,6 +183,19 @@
<dependency>
<groupId>org.nuiton</groupId>
+ <artifactId>nuiton-config</artifactId>
+ <version>${nuitonUtilsVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-updater</artifactId>
+ <version>${nuitonUtilsVersion}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
<artifactId>nuiton-csv</artifactId>
<version>${nuitonUtilsVersion}</version>
</dependency>
@@ -233,6 +246,12 @@
<dependency>
<groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-config</artifactId>
+ <version>${jaxxVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-runtime</artifactId>
<version>${jaxxVersion}</version>
<scope>test</scope>
@@ -679,7 +698,7 @@
<reportSets>
<reportSet>
<reports>
- <report>aggregate-application-config-report</report>
+ <report>aggregate-config-report</report>
</reports>
</reportSet>
</reportSets>
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-persistence/pom.xml 2013-03-03 15:52:58 UTC (rev 519)
@@ -52,6 +52,11 @@
</dependency>
<dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-config</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.nuiton.i18n</groupId>
<artifactId>nuiton-i18n</artifactId>
</dependency>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -33,7 +33,7 @@
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.config.ApplicationConfig;
import java.io.BufferedReader;
import java.io.BufferedWriter;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -26,7 +26,7 @@
import org.hibernate.dialect.HSQLDialect;
import org.hsqldb.jdbcDriver;
-import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.config.ConfigOptionDef;
import java.io.File;
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.2
*/
-public enum TuttiPersistenceConfigOption implements ApplicationConfig.OptionDef {
+public enum TuttiPersistenceConfigOption implements ConfigOptionDef {
DB_DIRECTORY(
"tutti.persistence.db.directory",
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigProvider.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigProvider.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigProvider.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -24,8 +24,9 @@
* #L%
*/
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ApplicationConfigProvider;
+import org.nuiton.util.config.ConfigActionDef;
+import org.nuiton.util.config.ApplicationConfigProvider;
+import org.nuiton.util.config.ConfigOptionDef;
import java.util.Locale;
@@ -50,12 +51,12 @@
}
@Override
- public ApplicationConfig.OptionDef[] getOptions() {
+ public ConfigOptionDef[] getOptions() {
return TuttiPersistenceConfigOption.values();
}
@Override
- public ApplicationConfig.ActionDef[] getActions() {
- return new ApplicationConfig.ActionDef[0];
+ public ConfigActionDef[] getActions() {
+ return new ConfigActionDef[0];
}
}
Deleted: trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider
===================================================================
--- trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider 2013-03-03 15:52:58 UTC (rev 519)
@@ -1 +0,0 @@
-fr.ifremer.tutti.persistence.config.TuttiPersistenceConfigProvider
\ No newline at end of file
Copied: trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider (from rev 514, trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider)
===================================================================
--- trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider (rev 0)
+++ trunk/tutti-persistence/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider 2013-03-03 15:52:58 UTC (rev 519)
@@ -0,0 +1 @@
+fr.ifremer.tutti.persistence.config.TuttiPersistenceConfigProvider
\ No newline at end of file
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-service/pom.xml 2013-03-03 15:52:58 UTC (rev 519)
@@ -54,6 +54,11 @@
</dependency>
<dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-config</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.nuiton.i18n</groupId>
<artifactId>nuiton-i18n</artifactId>
</dependency>
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -26,10 +26,8 @@
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.Version;
+import org.nuiton.util.config.ApplicationConfig;
import java.io.File;
import java.io.IOException;
@@ -43,9 +41,6 @@
*/
public class TuttiServiceConfig {
- /** Logger. */
- private static final Log log = LogFactory.getLog(TuttiServiceConfig.class);
-
/** Delegate application config object containing configuration. */
protected final ApplicationConfig applicationConfig;
@@ -119,6 +114,5 @@
FileUtils.deleteDirectory(tmpDirectory);
}
FileUtils.forceMkdir(tmpDirectory);
-
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -24,8 +24,8 @@
* #L%
*/
-import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.Version;
+import org.nuiton.util.config.ConfigOptionDef;
import java.io.File;
import java.net.URL;
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public enum TuttiServiceConfigOption implements ApplicationConfig.OptionDef {
+public enum TuttiServiceConfigOption implements ConfigOptionDef {
BASEDIR(
"tutti.basedir",
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigProvider.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigProvider.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigProvider.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -24,8 +24,9 @@
* #L%
*/
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ApplicationConfigProvider;
+import org.nuiton.util.config.ConfigActionDef;
+import org.nuiton.util.config.ApplicationConfigProvider;
+import org.nuiton.util.config.ConfigOptionDef;
import java.util.Locale;
@@ -50,12 +51,12 @@
}
@Override
- public ApplicationConfig.OptionDef[] getOptions() {
+ public ConfigOptionDef[] getOptions() {
return TuttiServiceConfigOption.values();
}
@Override
- public ApplicationConfig.ActionDef[] getActions() {
- return new ApplicationConfig.ActionDef[0];
+ public ConfigActionDef[] getActions() {
+ return new ConfigActionDef[0];
}
}
\ No newline at end of file
Deleted: trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider
===================================================================
--- trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider 2013-03-03 15:52:58 UTC (rev 519)
@@ -1 +0,0 @@
-fr.ifremer.tutti.service.config.TuttiServiceConfigProvider
\ No newline at end of file
Copied: trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider (from rev 514, trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider)
===================================================================
--- trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider (rev 0)
+++ trunk/tutti-service/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider 2013-03-03 15:52:58 UTC (rev 519)
@@ -0,0 +1 @@
+fr.ifremer.tutti.service.config.TuttiServiceConfigProvider
\ No newline at end of file
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/pom.xml 2013-03-03 15:52:58 UTC (rev 519)
@@ -234,6 +234,16 @@
</dependency>
<dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-config</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-updater</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.nuiton.i18n</groupId>
<artifactId>nuiton-i18n</artifactId>
</dependency>
@@ -295,6 +305,11 @@
<dependency>
<groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-config</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-validator</artifactId>
</dependency>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -37,8 +37,10 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationUpdater;
import org.nuiton.util.Version;
+import org.nuiton.util.updater.ApplicationInfo;
+import org.nuiton.util.updater.ApplicationUpdater;
+import org.nuiton.util.updater.ApplicationUpdaterCallback;
import java.io.File;
import java.io.IOException;
@@ -51,7 +53,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class TuttiApplicationUpdaterCallBack implements ApplicationUpdater.ApplicationUpdaterCallback {
+public class TuttiApplicationUpdaterCallBack implements ApplicationUpdaterCallback {
/** Logger. */
private static final Log log =
@@ -93,11 +95,11 @@
}
@Override
- public Map<String, ApplicationUpdater.ApplicationInfo> updateToDo(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) {
- Map<String, ApplicationUpdater.ApplicationInfo> result = Maps.newHashMap();
+ public Map<String, ApplicationInfo> updateToDo(Map<String, ApplicationInfo> appToUpdate) {
+ Map<String, ApplicationInfo> result = Maps.newHashMap();
for (UpdateType type : types) {
- ApplicationUpdater.ApplicationInfo info = getInfo(type, appToUpdate);
+ ApplicationInfo info = getInfo(type, appToUpdate);
if (info != null) {
result.put(info.name, info);
if (UpdateType.DB.equals(type)) {
@@ -111,13 +113,13 @@
}
if (types.contains(UpdateType.DB)) {
- ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.DB, result);
+ ApplicationInfo info = getInfo(UpdateType.DB, result);
dbUpdated = info != null;
}
return result;
}
- public void startUpdate(ApplicationUpdater.ApplicationInfo info) {
+ public void startUpdate(ApplicationInfo info) {
if (UpdateType.DB.name().toLowerCase().equals(info.name)) {
if (Version.VZERO.toString().equals(info.oldVersion)) {
@@ -141,7 +143,7 @@
}
@Override
- public void updateDone(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate,
+ public void updateDone(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
boolean doRestart = updateDoneJre(appToUpdate, appUpdateError);
@@ -187,7 +189,7 @@
}
}
- protected boolean updateDoneJre(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate,
+ protected boolean updateDoneJre(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
boolean doRestart = false;
Exception error = getError(UpdateType.JRE, appUpdateError);
@@ -198,7 +200,7 @@
log.error("Could not update jre", error);
}
} else {
- ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.JRE, appToUpdate);
+ ApplicationInfo info = getInfo(UpdateType.JRE, appToUpdate);
if (info != null) {
if (log.isInfoEnabled()) {
@@ -212,7 +214,7 @@
return doRestart;
}
- protected boolean updateDoneTutti(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate,
+ protected boolean updateDoneTutti(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
boolean doRestart = false;
Exception error = getError(UpdateType.TUTTI, appUpdateError);
@@ -223,7 +225,7 @@
log.error("Could not update tutti", error);
}
} else {
- ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.TUTTI, appToUpdate);
+ ApplicationInfo info = getInfo(UpdateType.TUTTI, appToUpdate);
if (info != null) {
if (log.isInfoEnabled()) {
@@ -237,7 +239,7 @@
return doRestart;
}
- protected boolean updateDoneI18n(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate,
+ protected boolean updateDoneI18n(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
boolean doRestart = false;
Exception error = getError(UpdateType.I18N, appUpdateError);
@@ -248,7 +250,7 @@
log.error("Could not update i18n", error);
}
} else {
- ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.I18N, appToUpdate);
+ ApplicationInfo info = getInfo(UpdateType.I18N, appToUpdate);
if (info != null) {
if (log.isInfoEnabled()) {
@@ -262,7 +264,7 @@
return doRestart;
}
- protected void updateDoneDb(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate,
+ protected void updateDoneDb(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
Exception error = getError(UpdateType.DB, appUpdateError);
if (error != null) {
@@ -272,7 +274,7 @@
log.error("Could not update db", error);
}
} else {
- ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.DB, appToUpdate);
+ ApplicationInfo info = getInfo(UpdateType.DB, appToUpdate);
if (info != null) {
if (log.isInfoEnabled()) {
@@ -294,8 +296,8 @@
}
}
- protected ApplicationUpdater.ApplicationInfo getInfo(UpdateType type,
- Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) {
+ protected ApplicationInfo getInfo(UpdateType type,
+ Map<String, ApplicationInfo> appToUpdate) {
return appToUpdate.get(type.name().toLowerCase());
}
@@ -304,7 +306,7 @@
return appUpdateError.get(type.name().toLowerCase());
}
- protected File getDbDirectory(ApplicationUpdater.ApplicationInfo info) {
+ protected File getDbDirectory(ApplicationInfo info) {
File[] sources = info.destDir.listFiles();
Preconditions.checkState(
sources != null && sources.length == 1,
@@ -313,7 +315,7 @@
return result;
}
- protected void prepareFirstDatabase(ApplicationUpdater.ApplicationInfo info) {
+ protected void prepareFirstDatabase(ApplicationInfo info) {
if (log.isInfoEnabled()) {
log.info("First time database was downloaded at version: " + info.newVersion);
}
@@ -334,7 +336,7 @@
}
}
- protected void synchronizetDatabase(ApplicationUpdater.ApplicationInfo info) {
+ protected void synchronizetDatabase(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));
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -33,10 +33,10 @@
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ApplicationConfigHelper;
-import org.nuiton.util.ApplicationConfigProvider;
-import org.nuiton.util.ArgumentsParserException;
+import org.nuiton.util.config.ApplicationConfig;
+import org.nuiton.util.config.ApplicationConfigHelper;
+import org.nuiton.util.config.ApplicationConfigProvider;
+import org.nuiton.util.config.ArgumentsParserException;
import org.nuiton.util.Version;
import javax.swing.KeyStroke;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -25,7 +25,7 @@
*/
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
-import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.config.ConfigOptionDef;
import javax.swing.KeyStroke;
import java.awt.Color;
@@ -40,7 +40,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public enum TuttiApplicationConfigOption implements ApplicationConfig.OptionDef {
+public enum TuttiApplicationConfigOption implements ConfigOptionDef {
TUTTI_LAUNCH_MODE(
"tutti.launch.mode",
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigProvider.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigProvider.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigProvider.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -24,8 +24,9 @@
* #L%
*/
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ApplicationConfigProvider;
+import org.nuiton.util.config.ApplicationConfigProvider;
+import org.nuiton.util.config.ConfigActionDef;
+import org.nuiton.util.config.ConfigOptionDef;
import java.util.Locale;
@@ -50,12 +51,12 @@
}
@Override
- public ApplicationConfig.OptionDef[] getOptions() {
+ public ConfigOptionDef[] getOptions() {
return TuttiApplicationConfigOption.values();
}
@Override
- public ApplicationConfig.ActionDef[] getActions() {
- return new ApplicationConfig.ActionDef[0];
+ public ConfigActionDef[] getActions() {
+ return new ConfigActionDef[0];
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -27,9 +27,9 @@
import fr.ifremer.tutti.service.config.TuttiServiceConfigOption;
import fr.ifremer.tutti.ui.swing.content.MainUI;
import jaxx.runtime.SwingUtil;
-import jaxx.runtime.swing.editor.config.ConfigUI;
-import jaxx.runtime.swing.editor.config.ConfigUIHelper;
-import jaxx.runtime.swing.editor.config.model.MainCallBackFinalizer;
+import jaxx.runtime.swing.config.ConfigUI;
+import jaxx.runtime.swing.config.ConfigUIHelper;
+import jaxx.runtime.swing.config.model.MainCallBackFinalizer;
import static org.nuiton.i18n.I18n.n_;
@@ -124,7 +124,7 @@
ConfigUI configUI = helper.buildUI(
mainUI,
- "tutti.config.category.applications");
+ n_("tutti.config.category.applications"));
helper.displayUI(mainUI, false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -49,7 +49,7 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.config.ApplicationConfig;
import org.nuiton.widget.SwingSession;
import javax.swing.Icon;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -32,7 +32,7 @@
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationUpdater;
+import org.nuiton.util.updater.ApplicationUpdater;
import java.io.File;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -30,7 +30,7 @@
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationUpdater;
+import org.nuiton.util.updater.ApplicationUpdater;
import java.io.File;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -32,7 +32,7 @@
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationUpdater;
+import org.nuiton.util.updater.ApplicationUpdater;
import java.io.File;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-03 15:52:58 UTC (rev 519)
@@ -82,28 +82,28 @@
Throwable cause = ex;
- if (cause instanceof NullPointerException) {
-
- // See http://forge.codelutin.com/issues/2055
- if (ex.getStackTrace().length > 0 &&
- ex.getStackTrace()[0].getClassName().contains("swing.")) {
- if (log.isWarnEnabled()) {
- log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
- }
- return;
- }
- }
-
- if (cause instanceof IndexOutOfBoundsException) {
- // See http://forge.codelutin.com/issues/2055
- if (ex.getStackTrace().length > 0 &&
- "convertRowIndexToModel".equals(ex.getStackTrace()[0].getMethodName())) {
- if (log.isWarnEnabled()) {
- log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
- }
- return;
- }
- }
+// if (cause instanceof NullPointerException) {
+//
+// // See http://forge.codelutin.com/issues/2055
+// if (ex.getStackTrace().length > 0 &&
+// ex.getStackTrace()[0].getClassName().contains("swing.")) {
+// if (log.isWarnEnabled()) {
+// log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
+// }
+// return;
+// }
+// }
+//
+// if (cause instanceof IndexOutOfBoundsException) {
+// // See http://forge.codelutin.com/issues/2055
+// if (ex.getStackTrace().length > 0 &&
+// "convertRowIndexToModel".equals(ex.getStackTrace()[0].getMethodName())) {
+// if (log.isWarnEnabled()) {
+// log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
+// }
+// return;
+// }
+// }
if (cause instanceof TuttiTechnicalException) {
cause = cause.getCause();
}
Deleted: trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider 2013-03-03 07:20:40 UTC (rev 518)
+++ trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider 2013-03-03 15:52:58 UTC (rev 519)
@@ -1 +0,0 @@
-fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfigProvider
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider (from rev 514, trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.ApplicationConfigProvider)
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider (rev 0)
+++ trunk/tutti-ui-swing/src/main/resources/META-INF/services/org.nuiton.util.config.ApplicationConfigProvider 2013-03-03 15:52:58 UTC (rev 519)
@@ -0,0 +1 @@
+fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfigProvider
\ No newline at end of file
1
0
r518 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence/service main/resources test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 03 Mar '13
by tchemit@users.forge.codelutin.com 03 Mar '13
03 Mar '13
Author: tchemit
Date: 2013-03-03 08:20:40 +0100 (Sun, 03 Mar 2013)
New Revision: 518
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/518
Log:
- clean program service
- clean cruise service
- ignore some tests (until refs #2036 works)
-add soem nice methods for date (what a mess!)
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2013-03-02 16:44:34 UTC (rev 517)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2013-03-03 07:20:40 UTC (rev 518)
@@ -37,6 +37,9 @@
import org.springframework.dao.DataIntegrityViolationException;
import java.io.Serializable;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
@@ -183,4 +186,43 @@
return result;
}
+ protected Date newCreateDate() {
+ calendar.setTime(new Date());
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ return calendar.getTime();
+ }
+
+ protected Date dateWithNoSecondAndMiliSecond(Date date) {
+ calendar.setTime(date);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ return calendar.getTime();
+ }
+
+ protected Date dateWithOneMiliSecond(Date date) {
+ calendar.setTime(date);
+ calendar.add(Calendar.MILLISECOND, 1);
+ return calendar.getTime();
+ }
+
+ protected Date dateOfYearWithOneMiliSecond(int year) {
+ calendar.setTimeInMillis(0);
+ calendar.set(Calendar.YEAR, year);
+ calendar.set(Calendar.MILLISECOND, 1);
+ return calendar.getTime();
+ }
+
+ protected long dateOfYearWithOneMiliSecondInMili(int year) {
+ calendar.setTimeInMillis(0);
+ calendar.set(Calendar.YEAR, year);
+ calendar.set(Calendar.MILLISECOND, 1);
+ return calendar.getTimeInMillis();
+ }
+
+ private Calendar calendar = new GregorianCalendar();
+
+
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-02 16:44:34 UTC (rev 517)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-03 07:20:40 UTC (rev 518)
@@ -68,9 +68,7 @@
import java.sql.Timestamp;
import java.text.MessageFormat;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -129,8 +127,6 @@
@Resource(name = "gearPhysicalFeaturesDao")
protected GearPhysicalFeaturesExtendDao gearPhysicalFeaturesDao;
- protected Calendar calendar = new GregorianCalendar();
-
@Override
public List<Cruise> getAllCruise(String programId) {
Iterator<Object[]> list = queryList(
@@ -158,9 +154,7 @@
"pmfmIdSurveyPart", IntegerType.INSTANCE, enumeration.PMFM_ID_SURVEY_PART);
if (source == null) {
- return null;
- // TODo TC : manage exception in the UI ?
- //throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + id);
+ throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + id);
}
Cruise result = new Cruise();
result.setId(id);
@@ -183,11 +177,9 @@
Timestamp beginDate = (Timestamp) source[6];
if (beginDate != null && result.getYear() != null) {
- calendar.setTimeInMillis(0);
- calendar.set(Calendar.YEAR, result.getYear());
- calendar.add(Calendar.MILLISECOND, 1);
+ long mili = dateOfYearWithOneMiliSecondInMili(result.getYear());
// Comparison with getTime() is need, to keep millisecond precision
- if (beginDate.getTime() == calendar.getTimeInMillis()) {
+ if (beginDate.getTime() == mili) {
// if BeginDate is fake : set to null (see createCruise for details)
result.setBeginDate(null);
} else {
@@ -298,7 +290,7 @@
Preconditions.checkArgument(bean.getId() == null, "Cruise 'id' must be null to call createCruise().");
ScientificCruise scientificCruise = ScientificCruise.Factory.newInstance();
- cruiseToEntity(bean, scientificCruise, true);
+ cruiseToEntity(bean, scientificCruise);
scientificCruiseDao.create(scientificCruise);
bean.setId(String.valueOf(scientificCruise.getId()));
@@ -315,13 +307,14 @@
throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + bean.getId());
}
- cruiseToEntity(bean, scientificCruise, true);
+ cruiseToEntity(bean, scientificCruise);
scientificCruiseDao.update(scientificCruise);
return bean;
}
- protected void cruiseToEntity(Cruise source, ScientificCruise target, boolean copyIfNull) {
+ protected void cruiseToEntity(Cruise source, ScientificCruise target) {
+
StringBuilder miscDataBuffer = new StringBuilder();
QualityFlag qualityFlagNotQualified = load(
QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
@@ -342,21 +335,21 @@
}
// Name
- if (copyIfNull && source.getName() == null) {
+ if (source.getName() == null) {
target.setName(null);
} else if (source.getName() != null) {
target.setName(source.getName());
}
// Program
- if (copyIfNull && (source.getProgram() == null || source.getProgram().getId() == null)) {
+ if (source.getProgram() == null || source.getProgram().getId() == null) {
target.setProgram(null);
} else if (source.getName() != null && source.getProgram().getId() != null) {
target.setProgram(programDao.load(source.getProgram().getId()));
}
// Sort Room Managers
- if (copyIfNull && (source.getHeadOfSortRoom() == null || source.getHeadOfSortRoom().size() == 0)) {
+ if (source.getHeadOfSortRoom() == null || source.getHeadOfSortRoom().size() == 0) {
target.setManagerPerson(null);
} else if (source.getHeadOfSortRoom() != null && source.getHeadOfSortRoom().size() > 0) {
List<Person> persons = source.getHeadOfSortRoom();
@@ -368,7 +361,7 @@
}
// Managers
- if (copyIfNull && (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0)) {
+ if (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0) {
target.setManagerPerson(null);
} else if (source.getHeadOfMission() != null && source.getHeadOfMission().size() > 0) {
List<Person> persons = source.getHeadOfMission();
@@ -385,7 +378,7 @@
}
// Vessel
- if (copyIfNull && (source.getVessel() == null || source.getVessel().size() == 0)) {
+ if (source.getVessel() == null || source.getVessel().size() == 0) {
target.setProgram(null);
} else if (source.getVessel() != null && source.getVessel().size() > 0) {
List<Vessel> vessels = source.getVessel();
@@ -402,46 +395,37 @@
}
// Year
- if (copyIfNull && source.getYear() == null && source.getBeginDate() == null) {
+ if (source.getYear() == null && source.getBeginDate() == null) {
target.setDepartureDateTime(null);
} else if (source.getYear() != null && source.getBeginDate() == null) {
// Set year into departure date time only if no departure date time has been set
- calendar.setTimeInMillis(0);
- calendar.set(Calendar.YEAR, source.getYear());
// Add one millisecond to retrieve a 'year saved but no departure date'
- calendar.set(Calendar.MILLISECOND, 1);
- target.setDepartureDateTime(calendar.getTime());
+ target.setDepartureDateTime(dateOfYearWithOneMiliSecond(source.getYear()));
}
// BeginDate
- if (copyIfNull && source.getYear() == null && source.getBeginDate() == null) {
+ if (source.getYear() == null && source.getBeginDate() == null) {
target.setDepartureDateTime(null);
} else if (source.getBeginDate() != null) {
- calendar.setTime(source.getBeginDate());
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 0);
- target.setDepartureDateTime(calendar.getTime());
+ target.setDepartureDateTime(dateWithNoSecondAndMiliSecond(source.getBeginDate()));
}
// EndDate
- if (copyIfNull && source.getEndDate() == null) {
+ if (source.getEndDate() == null) {
target.setReturnDateTime(null);
} else if (source.getEndDate() != null) {
- calendar.setTime(source.getEndDate());
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 0);
- target.setReturnDateTime(calendar.getTime());
+ target.setReturnDateTime(dateWithNoSecondAndMiliSecond(source.getEndDate()));
}
// Comment
- if (copyIfNull && source.getComment() == null) {
+ if (source.getComment() == null) {
target.setComments(null);
} else if (source.getComment() != null) {
target.setComments(source.getComment());
}
// Manager
- if (copyIfNull && (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0)) {
+ if (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0) {
target.setComments(null);
} else if (source.getHeadOfMission() != null && source.getHeadOfMission().size() > 0) {
if (source.getHeadOfMission().size() > 0) {
@@ -461,12 +445,7 @@
// Default values :
target.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
if (target.getCreationDate() == null) {
- calendar.setTime(new Date());
- calendar.set(Calendar.HOUR_OF_DAY, 0);
- calendar.set(Calendar.MINUTE, 0);
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 0);
- target.setCreationDate(calendar.getTime());
+ target.setCreationDate(newCreateDate());
}
if (target.getManagerPerson() != null) {
target.setRecorderPerson(target.getManagerPerson());
@@ -485,13 +464,12 @@
fishingTrip.setQualityFlag(qualityFlagNotQualified);
if (fishingTrip.getReturnDateTime() == null && fishingTrip.getDepartureDateTime() != null) {
- calendar.setTime(fishingTrip.getDepartureDateTime());
- calendar.add(Calendar.MILLISECOND, 1); // = departureDateTime + 1ms
- fishingTrip.setReturnDateTime(calendar.getTime());
+ // = departureDateTime + 1ms
+ fishingTrip.setReturnDateTime(dateWithOneMiliSecond(fishingTrip.getDepartureDateTime()));
}
// Country
- if (copyIfNull && source.getCountry() == null || source.getCountry().getId() == null) {
+ if (source.getCountry() == null || source.getCountry().getId() == null) {
fishingTrip.setDepartureLocation(null);
fishingTrip.setReturnLocation(null);
} else if (source.getCountry() != null && source.getCountry().getId() != null) {
@@ -500,14 +478,11 @@
fishingTrip.setReturnLocation(locationCountry);
}
- //TODO Serie partiel (ajouter SurveyMeasurement dans fishingtrip)
-
- //TODO Creer un psfm serie partielle (voir avec vincent + benoit) (PmfmId.SURVEY_PART)
-
+ //FIXME Creer un psfm serie partielle (voir avec vincent + benoit) (PmfmId.SURVEY_PART)
setSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART, null, source.getSurveyPart(), null);
// Gear
- if (copyIfNull && source.isGearEmpty() && fishingTrip.getGearPhysicalFeatures() != null) {
+ if (source.isGearEmpty() && fishingTrip.getGearPhysicalFeatures() != null) {
fishingTrip.getGearPhysicalFeatures().clear();
} else if (!source.isGearEmpty()) {
// Create a list to trace not updated items, to be able to remove them later
@@ -517,8 +492,7 @@
}
// Create or update a geaPhysicalFeatures for each gears in the cruise
- for (int i = 0; i < source.getGear().size(); i++) {
- Gear gear = source.getGear().get(i);
+ for (Gear gear : source.getGear()) {
GearPhysicalFeatures guf = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, Integer.valueOf(gear.getId()), true);
notChangedGearPhysicalFeatures.remove(guf);
@@ -531,7 +505,7 @@
guf.setRankOrder((short) 1);
// Trawl net (store in Gear Physical features)
- if (copyIfNull && source.getMultirigNumber() == null) {
+ if (source.getMultirigNumber() == null) {
gearPhysicalFeaturesDao.removeGearPhysicalMeasurement(guf, enumeration.PMFM_ID_MULTIRIG_NUMBER);
} else {
gearPhysicalFeaturesDao.setGearPhysicalMeasurement(target, guf, enumeration.PMFM_ID_MULTIRIG_NUMBER, Float.valueOf(source.getMultirigNumber()), null, null);
@@ -553,24 +527,6 @@
fishingTrip.setComments(miscDataBuffer.toString());
}
- protected List<Person> getCruisePersonsByRole(String cruiseId, Integer vesselPersonRole) {
- Iterator<Object[]> list = queryList(
- "allCruiseManagers",
- "cruiseId", IntegerType.INSTANCE, Integer.valueOf(cruiseId),
- "vesselPersonRoleId", IntegerType.INSTANCE, vesselPersonRole);
-
- List<Person> persons = Lists.newArrayList();
- int maxTrawlNetFound = 0;
- while (list.hasNext()) {
- Object[] source = list.next();
- Person target = new Person();
-
- persons.add(target);
- }
-
- return persons;
- }
-
// adapt to surveyMeasurement
protected SurveyMeasurement getSurveyMeasurement(FishingTrip scientificCruise,
Integer pmfmId,
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-03-02 16:44:34 UTC (rev 517)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-03-03 07:20:40 UTC (rev 518)
@@ -42,8 +42,6 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
@@ -126,7 +124,7 @@
log.debug("Create program with name: " + bean.getName());
}
fr.ifremer.adagio.core.dao.administration.programStrategy.Program program = fr.ifremer.adagio.core.dao.administration.programStrategy.Program.Factory.newInstance();
- beanToEntity(bean, program, true);
+ programToEntity(bean, program);
program = programDao.create(program);
bean.setId(String.valueOf(program.getCode()));
@@ -140,7 +138,6 @@
Preconditions.checkNotNull(bean.getId());
Preconditions.checkNotNull(bean.getComment());
-
if (log.isDebugEnabled()) {
log.debug("Create program with name: " + bean.getName());
}
@@ -149,7 +146,7 @@
throw new DataRetrievalFailureException("Could not retrieve program with code=" + bean.getId());
}
- beanToEntity(bean, program, true);
+ programToEntity(bean, program);
programDao.update(program);
return bean;
@@ -172,9 +169,8 @@
}
}
- protected void beanToEntity(Program source,
- fr.ifremer.adagio.core.dao.administration.programStrategy.Program target,
- boolean copyIfNull) {
+ protected void programToEntity(Program source,
+ fr.ifremer.adagio.core.dao.administration.programStrategy.Program target) {
// Code : compute with : <prefixe><name>
if (target.getCode() == null && source.getName() != null) {
// Compute a program code (remove spaces, and capitalize the name)
@@ -197,26 +193,17 @@
target.setTaxonGroupType(load(TaxonGroupTypeImpl.class, enumeration.TAXON_GROUP_TYPE_ID_COMMERCIAL_SPECIES));
// Creation date
- Calendar calendar = new GregorianCalendar();
- calendar.set(Calendar.HOUR_OF_DAY, 0);
- calendar.set(Calendar.MINUTE, 0);
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 0);
- target.setCreationDate(calendar.getTime());
+ target.setCreationDate(newCreateDate());
}
- // Name
- if (copyIfNull && source.getName() == null) {
- target.setName(null);
- } else if (source.getName() != null) {
- target.setName(source.getName());
- }
+ // Name (mandatory in database)
+ target.setName(source.getName());
// Description (mandatory in database)
target.setDescription(source.getComment());
// Zone
- if (copyIfNull && source.getZone() == null) {
+ if (source.getZone() == null) {
// Remove program location classifications :
if (target.getLocationClassifications() != null) {
target.getLocationClassifications().clear();
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-02 16:44:34 UTC (rev 517)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-03 07:20:40 UTC (rev 518)
@@ -329,7 +329,8 @@
PmfmId.MARINE_LITTER_SIZE_CATEGORY=1422
# TODO Alphanumeric = true A creer (dans les enumerations Allegro)
-PmfmId.SURVEY_PART=-192
+# TODO Change this number
+PmfmId.SURVEY_PART=1310
# TODO A creer (dans les enumerations Allegro)
PmfmId.STATION_NUMBER=1243
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-02 16:44:34 UTC (rev 517)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-03 07:20:40 UTC (rev 518)
@@ -35,6 +35,7 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.Calendar;
@@ -51,6 +52,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+//FIXME-TC solve the surveyPart stuff (http://forge.codelutin.com/issues/2036)
+@Ignore
public class CruisePersistenceServiceWriteTest {
/** Logger. */
@@ -110,6 +113,7 @@
cruise.setGear(gears);
cruise.setComment("My comments on cruise");
+ cruise.setSurveyPart("SurveyPart");
Person managerPerson = referentialService.getAllPerson().get(0);
cruise.setHeadOfMission(Lists.newArrayList(managerPerson));
@@ -129,6 +133,7 @@
assertNotNull(createdCruise);
assertNotNull(createdCruise.getId());
assertEquals(cruise.getName(), createdCruise.getName());
+ assertEquals(cruise.getSurveyPart(), createdCruise.getSurveyPart());
if (log.isInfoEnabled()) {
log.info("Created cruise: " + createdCruise.getId());
@@ -158,6 +163,9 @@
// Save cruise
createdCruise = service.createCruise(cruise);
+ if (log.isInfoEnabled()) {
+ log.info("Created cruise: " + createdCruise.getId());
+ }
assertNotNull(createdCruise);
assertNotNull(createdCruise.getId());
assertEquals(cruise.getName(), createdCruise.getName());
@@ -168,8 +176,8 @@
assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate());
assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate());
assertEquals(createdCruise.getComment(), reloadedCruise.getComment());
+ assertEquals(createdCruise.getSurveyPart(), reloadedCruise.getSurveyPart());
// assertEquals(createdCruise.getMultirigNumber(), reloadedCruise.getMultirigNumber());
- //TODO-tc, are we forced to do such things ?
assertEquals(1, reloadedCruise.getMultirigNumber(), 0);
assertNull(reloadedCruise.getHeadOfMission());
assertNotNull(reloadedCruise.getVessel());
@@ -205,6 +213,7 @@
// Name :
cruise.setName("Unit-test-" + System.currentTimeMillis());
+ cruise.setSurveyPart("SurveryPart" + cruise.getName());
// Remove gear, then add another gear
Gear previousGear = cruise.getGear(0);
@@ -226,6 +235,7 @@
assertEquals(cruise.getId(), reloadedCruise.getId());
assertEquals(cruise.getName(), reloadedCruise.getName());
assertEquals(cruise.getComment(), reloadedCruise.getComment());
+ assertEquals(cruise.getSurveyPart(), reloadedCruise.getSurveyPart());
assertNotNull(reloadedCruise.getGear());
assertEquals(cruise.getGear().size(), reloadedCruise.getGear().size());
assertEquals(cruise.getGear(0).getId(), reloadedCruise.getGear(0).getId());
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java 2013-03-02 16:44:34 UTC (rev 517)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java 2013-03-03 07:20:40 UTC (rev 518)
@@ -35,7 +35,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
/**
@@ -72,6 +71,7 @@
name = name.substring(0, 39);
}
program.setName(name);
+ program.setComment("Comment-" + name);
program.setZone(zones.get(0));
@@ -79,14 +79,16 @@
Program createdProgram = service.createProgram(program);
assertNotNull(createdProgram);
assertNotNull(createdProgram.getId());
- assertNull(createdProgram.getComment());
+ assertNotNull(createdProgram.getComment());
+ assertEquals(program.getName(), createdProgram.getName());
+ assertEquals(program.getComment(), createdProgram.getComment());
// Reload program and compare
Program reloadedProgram = service.getProgram(createdProgram.getId());
assertNotNull(reloadedProgram);
assertEquals(createdProgram.getId(), reloadedProgram.getId());
assertEquals(program.getName(), reloadedProgram.getName());
- assertNull(reloadedProgram.getComment());
+ assertEquals(program.getComment(), reloadedProgram.getComment());
assertNotNull(program.getZone());
assertEquals(program.getZone().getId(), reloadedProgram.getZone().getId());
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/421/changes>
Changes:
[Tony Chemit] move MainUI to content pckage
------------------------------------------
[...truncated 326 lines...]
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-service ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-service:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-service ---
[INFO] Copying tutti-service.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/genera…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-service:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-service ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-service ---
[INFO] Copying 2 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-service ---
[INFO] Compiling 26 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/classes>
[WARNING] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[27,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[28,22] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[40,51] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[53,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[58,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[59,19] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[32,34] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[51,20] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[55,30] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[62,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[27,34] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/main/java…>:[35,10] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
mojoSucceeded org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
mojoStarted org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti-service ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
[INFO] Executed tasks
mojoSucceeded org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-testResources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tutti-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-testResources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-testCompile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ tutti-service ---
[INFO] Compiling 2 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/test-c…>
mojoSucceeded org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-testCompile)[WARNING] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/java…>:[46,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/java…>:[256,8] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/java…>:[257,20] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
mojoStarted org.apache.maven.plugins:maven-surefire-plugin:2.13(default-test)
[INFO]
[INFO] --- maven-surefire-plugin:2.13:test (default-test) @ tutti-service ---
[INFO] Surefire report directory: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportServiceTest
2013-03-02 07:33:42,735 0 [main] INFO fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService - Will export species to file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:42,762 27 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol - fr.ifremer.tutti.service.protocol.SpeciesRow > [null] , will create a new default one.
2013-03-02 07:33:43,050 315 [main] INFO fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService - Will export all caracteristics to file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,065 330 [main] INFO fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService - Will import protocol [null] species from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,076 341 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.service.protocol.SpeciesRow - fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol > [null] , will create a new default one.
2013-03-02 07:33:43,139 404 [main] INFO fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService - Will export all caracteristics to file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,143 408 [main] INFO fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService - Will import protocol caracteristic from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.755 sec
Running fr.ifremer.tutti.service.referential.TuttiReferentialImportExportServiceTest
2013-03-02 07:33:43,205 470 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@5f664de3
2013-03-02 07:33:43,207 472 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@18ba689b
2013-03-02 07:33:43,209 474 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@5e92db2
2013-03-02 07:33:43,212 477 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@591e356b
2013-03-02 07:33:43,332 597 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,337 602 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,349 614 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,352 617 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,353 618 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import persons from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,354 619 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Person - fr.ifremer.tutti.persistence.entities.referential.Person > [null] , will create a new default one.
2013-03-02 07:33:43,361 626 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,365 630 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,365 630 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import vessels from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,390 655 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Vessel - fr.ifremer.tutti.persistence.entities.referential.Vessel > [null] , will create a new default one.
2013-03-02 07:33:43,396 661 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,399 664 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,407 672 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,410 675 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,418 683 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,422 687 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,431 696 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,434 699 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,434 699 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import species from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,436 701 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Species - fr.ifremer.tutti.persistence.entities.referential.Species > [null] , will create a new default one.
2013-03-02 07:33:43,443 708 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-02 07:33:43,446 711 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-02 07:33:43,447 712 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import gears from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-02 07:33:43,453 718 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Gear - fr.ifremer.tutti.persistence.entities.referential.Gear > [null] , will create a new default one.
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.284 sec
Results :
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0
mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.13(default-test)
[JENKINS] Recording test results
mojoStarted org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tutti-service ---
[INFO] Building jar: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…>
mojoSucceeded org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
mojoStarted org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ tutti-service ---
mojoSucceeded org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
mojoStarted org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/1.0.2-SNAPSHOT/tutti-service-1.0.2-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tutti-service ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/1.0.2-SNAPSHOT/tutti-service-1.0.2-SNAPSHOT.pom
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer.tutti:tutti-service:1.0.2-SNAPSHOT
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 48.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 35.2 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.11-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 16.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.11-… (808 B at 15.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (2 KB at 50.7 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 49.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 46.7 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 26.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 27.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 23.7 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 39.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 31.9 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.11-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 52.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 39.0 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 28 modified jaxx file(s).
[ERROR] JAXX detects 1 error :
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:133
: Invalid XML: The markup in the document following the root element must be well-formed.
mojoFailed org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [26.547s]
[INFO] Tutti :: Persistence .............................. SUCCESS [36.484s]
[INFO] Tutti :: Service .................................. SUCCESS [4.400s]
[INFO] Tutti :: UI ....................................... FAILURE [18.803s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:30.825s
[INFO] Finished at: Sat Mar 02 07:34:02 CET 2013
[INFO] Final Memory: 41M/140M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml]>
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-02_07-32-20/archive/fr.ifremer.tutti/tutti-service/1.0.2-SNAPSHOT/tutti-service-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-02_07-32-20/archive/fr.ifremer.tutti/tutti-service/1.0.2-SNAPSHOT/tutti-service-1.0.2-SNAPSHOT.jar
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-02_07-32-20/archive/fr.ifremer.tutti/tutti-ui-swing/1.0.2-SNAPSHOT/tutti-ui-swing-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-02_07-32-20/archive/fr.ifremer/tutti/1.0.2-SNAPSHOT/tutti-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.0.2-SNAPSHOT…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-02_07-32-20/archive/fr.ifremer/tutti/1.0.2-SNAPSHOT/tutti-1.0.2-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-02_07-32-20/archive/fr.ifremer.tutti/tutti-persistence/1.0.2-SNAPSHOT/tutti-persistence-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-02_07-32-20/archive/fr.ifremer.tutti/tutti-persistence/1.0.2-SNAPSHOT/tutti-persistence-1.0.2-SNAPSHOT.jar
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT:generate (default) on project tutti-ui-swing: Aborting due to errors reported by jaxxc
cause : Aborting due to errors reported by jaxxc
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT:generate (default) on project tutti-ui-swing: Aborting due to errors reported by jaxxc
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.maven.plugin.MojoExecutionException: Aborting due to errors reported by jaxxc
at org.nuiton.jaxx.plugin.GenerateMojo.doAction(GenerateMojo.java:517)
at org.nuiton.plugin.AbstractPlugin.execute(AbstractPlugin.java:132)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit(a)codelutin.com
channel stopped
1
4