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
March 2013
- 5 participants
- 242 discussions
04 Mar '13
Author: tchemit
Date: 2013-03-04 16:26:13 +0100 (Mon, 04 Mar 2013)
New Revision: 526
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/526
Log:
refs #1963: [CAPTURE] - Global - Ajouter pi?\195?\168ce jointe sur tous les onglets (obtenir depuis le service le sur lot)
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.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/BatchPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.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/operation/catches/species/SpeciesBatchUIHandler.java
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-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -26,6 +26,7 @@
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -261,7 +262,6 @@
/**
* 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}.
*/
@@ -424,15 +424,16 @@
//------------------------------------------------------------------------//
/**
- * Get all root {@link SpeciesBatch} for the given fishing operation.
+ * Get the batch parent of all root {@link SpeciesBatch} for the given
+ * fishing operation.
* <p/>
* <strong>Note:</strong> All childs of the batch should be loaded here.
*
* @param fishingOperationId if of the fishing operation to seek
* @return the list of root {@link SpeciesBatch}
- * @since 1.0
+ * @since 1.0.2
*/
- List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId);
+ BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId);
@Transactional(readOnly = false)
SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId);
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-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -29,6 +29,7 @@
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.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -514,8 +515,8 @@
//------------------------------------------------------------------------//
@Override
- public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) {
- return batchService.getAllRootSpeciesBatch(fishingOperationId);
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) {
+ return batchService.getRootSpeciesBatch(fishingOperationId);
}
@Override
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-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -26,6 +26,7 @@
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -334,7 +335,7 @@
}
@Override
- public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) {
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) {
throw new RuntimeException("method not implemented");
}
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -0,0 +1,49 @@
+package fr.ifremer.tutti.persistence.entities.data;
+
+/*
+ * #%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.Lists;
+
+import java.util.List;
+
+/**
+ * Container of batches.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public class BatchContainer<B extends AbstractBatch> extends AbstractTuttiDataEntity {
+ private static final long serialVersionUID = 1L;
+
+ protected final List<B> children = Lists.newArrayList();
+
+ public List<B> getChildren() {
+ return children;
+ }
+
+ public void addChildren(B batch) {
+ children.add(batch);
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.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/BatchPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceService.java 2013-03-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceService.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -28,6 +28,7 @@
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
@@ -103,15 +104,16 @@
//------------------------------------------------------------------------//
/**
- * Get all root {@link SpeciesBatch} for the given fishing operation.
+ * Get the batch parent of all root {@link SpeciesBatch} for the given
+ * fishing operation.
* <p/>
* <strong>Note:</strong> All childs of the batch should be loaded here.
*
* @param fishingOperationId if of the fishing operation to seek
* @return the list of root {@link SpeciesBatch}
- * @since 1.0
+ * @since 1.0.2
*/
- List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId);
+ BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId);
@Transactional(readOnly = false)
SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -42,6 +42,7 @@
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
@@ -279,18 +280,22 @@
//------------------------------------------------------------------------//
@Override
- public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) {
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) {
// Load batch tree
Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId));
fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = catchBatchDao.loadFullTree(catchBatchId);
- List<SpeciesBatch> result = new ArrayList<SpeciesBatch>();
-
// Vrac / Species
SortingBatch vracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(),
"pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
"pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+
+ // container of speciesBatch is arbitraty put on vrac type (there is
+ // no common ancestor for all species batch).
+ BatchContainer result = new BatchContainer<SpeciesBatch>();
+ result.setId(String.valueOf(vracSpeciesBatch.getId()));
+
for (Batch batch1 : vracSpeciesBatch.getChildBatchs()) {
SortingBatch source = (SortingBatch) batch1;
@@ -301,7 +306,7 @@
SpeciesBatch target = new SpeciesBatch();
entityToBean(source, target);
- result.add(target);
+ result.addChildren(target);
}
}
@@ -316,12 +321,57 @@
SpeciesBatch target = new SpeciesBatch();
entityToBean(source, target);
- result.add(target);
+ result.addChildren(target);
}
}
+
return result;
}
+// @Override
+// public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) {
+//
+// // Load batch tree
+// Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId));
+// fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = catchBatchDao.loadFullTree(catchBatchId);
+//
+// List<SpeciesBatch> result = new ArrayList<SpeciesBatch>();
+//
+// // Vrac / Species
+// SortingBatch vracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(),
+// "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
+// "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+// for (Batch batch1 : vracSpeciesBatch.getChildBatchs()) {
+// SortingBatch source = (SortingBatch) batch1;
+//
+// // evict some special batches : Life (or Biota) and Inert
+// if (source.getReferenceTaxon() != null
+// && !enumeration.REFERENCE_TAXON_ID_LIFE.equals(source.getReferenceTaxon().getId())
+// && !enumeration.REFERENCE_TAXON_ID_INERT.equals(source.getReferenceTaxon().getId())) {
+// SpeciesBatch target = new SpeciesBatch();
+//
+// entityToBean(source, target);
+// result.add(target);
+// }
+// }
+//
+// // Hors-Vrac / Species
+// SortingBatch horsVracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(),
+// "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
+// "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+// if (horsVracSpeciesBatch != null) {
+// for (Batch batch : horsVracSpeciesBatch.getChildBatchs()) {
+// SortingBatch source = (SortingBatch) batch;
+//
+// SpeciesBatch target = new SpeciesBatch();
+//
+// entityToBean(source, target);
+// result.add(target);
+// }
+// }
+// return result;
+// }
+
@Override
public SpeciesBatch createSpeciesBatch(SpeciesBatch bean,
String parentBatchId) {
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -121,6 +121,7 @@
}
}
+ //FIXME - make this work with data to repair :(
// Vrac > Benthos
SortingBatch benthosBatch = catchBatchDao.getSortingBatch(vracBatch.getChildBatchs(),
"pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
@@ -160,6 +161,7 @@
addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
}
+ //FIXME - make this work with data to repair :(
// Hors Vrac > Benthos
SortingBatch benthosBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(),
"pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-03-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -25,14 +25,12 @@
*/
import fr.ifremer.tutti.persistence.DatabaseResource;
-import fr.ifremer.tutti.persistence.TuttiRunner;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
-import org.junit.runner.RunWith;
import java.io.File;
import java.util.List;
@@ -43,7 +41,6 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0.2
*/
-(a)RunWith(TuttiRunner.class)
public class AttachmentPersistenceServiceWriteTest {
@ClassRule
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-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -32,6 +32,7 @@
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.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -535,8 +536,8 @@
//------------------------------------------------------------------------//
@Override
- public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) {
- return driver.getAllRootSpeciesBatch(fishingOperationId);
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) {
+ return driver.getRootSpeciesBatch(fishingOperationId);
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-04 09:10:58 UTC (rev 525)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-04 15:26:13 UTC (rev 526)
@@ -31,6 +31,7 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
@@ -209,9 +210,20 @@
if (!TuttiEntities.isNew(bean)) {
// get all batch species root (says the one with only a species sample category)
- List<SpeciesBatch> catches =
- persistenceService.getAllRootSpeciesBatch(bean.getId());
+ BatchContainer<SpeciesBatch> rootSpeciesBatch =
+ persistenceService.getRootSpeciesBatch(bean.getId());
+ model.setRootBatchId(rootSpeciesBatch.getId());
+
+ if (log.isInfoEnabled()) {
+ log.info("species root batch id: " + model.getRootBatchId());
+ }
+
+ List<SpeciesBatch> catches = rootSpeciesBatch.getChildren();
+
+// List<SpeciesBatch> catches =
+// persistenceService.getAllRootSpeciesBatch(bean.getId());
+//
for (SpeciesBatch aBatch : catches) {
// root batch sample categroy is species
@@ -609,7 +621,7 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellComponent.newEditor(ui.getAttachmentEditor()),
+ AttachmentCellComponent.newEditor(ui),
AttachmentCellComponent.newRender(
getDecorator(Attachment.class, null),
n_("tutti.tooltip.attachment.none")),
1
0
04 Mar '13
Author: tchemit
Date: 2013-03-04 10:10:58 +0100 (Mon, 04 Mar 2013)
New Revision: 525
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/525
Log:
fixes #2073: [TECH] Mise en place de la persistence des pi?\195?\168ces-jointes
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunner.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.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/AttachmentPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
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/DatabaseResource.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
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-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -261,10 +261,11 @@
/**
* 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);
+ List<Attachment> getAllAttachments(Integer objectId);
/**
* Get the file of the given {@code attachmentId}.
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-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -348,7 +348,7 @@
//------------------------------------------------------------------------//
@Override
- public List<Attachment> getAllAttachments(String objectId) {
+ public List<Attachment> getAllAttachments(Integer objectId) {
return attachmentService.getAllAttachments(objectId);
}
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-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -489,7 +489,7 @@
}
@Override
- public List<Attachment> getAllAttachments(String objectId) {
+ public List<Attachment> getAllAttachments(Integer objectId) {
throw new RuntimeException("method not implemented");
}
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -0,0 +1,86 @@
+package fr.ifremer.tutti.persistence.entities.data;
+
+/*
+ * #%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 fr.ifremer.adagio.core.dao.referential.ObjectType;
+import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
+
+/**
+ * Define all usable {@link ObjectType} in {@link Attachment}.
+ *
+ * <strong>Note: </strong>This enumeration implements {@link TuttiEnumerationFile.TuttiEnumerable},
+ * so all values must be synched to the enumeration file and before usage we
+ * must be invoke the {@link TuttiEnumerationFile#init()} method.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @see Attachment#getObjectType()
+ * @since 1.0.2
+ */
+public enum AttachementObjectTypeEnum implements TuttiEnumerationFile.TuttiEnumerable<String> {
+
+ SCIENTIFIC_CRUISE("OBJECT_TYPE_SCIENTIFIC_CRUISE"),
+ OPERATION("OBJECT_TYPE_OPERATION"),
+ CATCH_BATCH("OBJECT_TYPE_CATCH_BATCH"),
+ SAMPLE("OBJECT_TYPE_SAMPLE");
+
+ private final String fieldName;
+
+ private String fieldValue;
+
+ private boolean init;
+
+ AttachementObjectTypeEnum(String fieldName) {
+ this.fieldName = fieldName;
+ }
+
+ @Override
+ public String getFieldName() {
+ return fieldName;
+ }
+
+ @Override
+ public String getFieldValue() {
+ Preconditions.checkState(
+ isInit(),
+ "Enumeration " + getClass() + " was not init!");
+ return fieldValue;
+ }
+
+ @Override
+ public void setFieldValue(Object fieldValue) {
+ this.fieldValue = String.valueOf(fieldValue);
+ }
+
+ @Override
+ public boolean isInit() {
+ return init;
+ }
+
+ @Override
+ public void setInit(boolean init) {
+ this.init = init;
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.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/AttachmentPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-03-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -46,7 +46,7 @@
* @param objectId id of the object
* @return list of all attachments for the given {@code objectId}.
*/
- List<Attachment> getAllAttachments(String objectId);
+ List<Attachment> getAllAttachments(Integer objectId);
/**
* Get the file of the given {@code attachmentId}.
Modified: 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 2013-03-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -32,12 +32,12 @@
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.AttachementObjectTypeEnum;
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;
@@ -62,7 +62,7 @@
LogFactory.getLog(AttachmentPersistenceServiceImpl.class);
protected static final String ATTACHMENT_PATH_FORMAT =
- "%1$s/OBJ-%2$s/%1$s-%2$s-%3$s.%4$s";
+ "%1$s/OBJ%2$s/%1$s-OBJ%2$s-%3$s.%4$s";
@Autowired
protected ReferentialPersistenceService referentialService;
@@ -87,10 +87,11 @@
//------------------------------------------------------------------------//
@Override
- public List<Attachment> getAllAttachments(String objectId) {
+ public List<Attachment> getAllAttachments(Integer objectId) {
Iterator<Object[]> list = queryList(
"allAttachment",
- "objectId", StringType.INSTANCE, objectId);
+ "objectId", IntegerType.INSTANCE, objectId,
+ "pmfmId", IntegerType.INSTANCE, enumeration.PMFM_ID_MEASUREMENT_FILE);
List<Attachment> result = Lists.newArrayList();
while (list.hasNext()) {
@@ -106,7 +107,7 @@
public File getAttachmentFile(String attachmentId) {
Object[] source = queryUnique(
"attachment",
- "attachmetId", IntegerType.INSTANCE, Integer.valueOf(attachmentId));
+ "attachmentId", IntegerType.INSTANCE, Integer.valueOf(attachmentId));
if (source == null) {
throw new DataRetrievalFailureException(
@@ -123,15 +124,12 @@
public Attachment createAttachment(Attachment attachment, File file) {
Preconditions.checkNotNull(attachment);
Preconditions.checkNotNull(attachment.getObjectType());
- Preconditions.checkNotNull(attachment.getObjectType().getId());
+ Preconditions.checkNotNull(attachment.getObjectId());
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();
@@ -142,8 +140,14 @@
measurementFile.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
// set objectType
- measurementFile.setObjectType(load(ObjectTypeImpl.class, attachment.getObjectType().getId()));
+ measurementFile.setObjectType(load(ObjectTypeImpl.class, attachment.getObjectType().getFieldValue()));
+ // set objectId
+ measurementFile.setObjectId(attachment.getObjectId());
+
+ // Use first a fake filePath (we don't know the id of attachment entity)
+ measurementFile.setPath("FAKE-" + System.nanoTime());
+
// copy our property
attachmentToEntity(attachment, measurementFile);
measurementFileDao.create(measurementFile);
@@ -177,15 +181,17 @@
file, targetFile,
"Could not copy attachment file " + file + " to " + targetFile);
- return null;
+ return attachment;
}
@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.");
+ Preconditions.checkNotNull(attachment.getObjectId());
+ 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) {
@@ -193,13 +199,21 @@
}
// can't change the objectType
- if (ObjectUtils.notEqual(attachment.getObjectType().getId(),
- measurementFile.getObjectType().getCode())) {
+ String oldObjectTypeCode = measurementFile.getObjectType().getCode();
+ if (ObjectUtils.notEqual(attachment.getObjectType().getFieldValue(),
+ oldObjectTypeCode)) {
throw new InvalidDataAccessResourceUsageException(
- "Can't change objectId, was before " +
- measurementFile.getObjectType().getCode());
+ "Can't change objectType, was before " + oldObjectTypeCode);
}
+ // can't change either objectId
+ Integer oldObjectId = measurementFile.getObjectId();
+ if (ObjectUtils.notEqual(attachment.getObjectId(),
+ oldObjectId)) {
+ throw new InvalidDataAccessResourceUsageException(
+ "Can't change objectId, was before " + oldObjectId);
+ }
+
attachmentToEntity(attachment, measurementFile);
measurementFileDao.update(measurementFile);
return attachment;
@@ -210,7 +224,7 @@
Integer id = Integer.valueOf(attachmentId);
Object[] source = queryUnique(
"attachment",
- "attachmetId", IntegerType.INSTANCE, id);
+ "attachmentId", IntegerType.INSTANCE, id);
if (source == null) {
throw new DataRetrievalFailureException(
@@ -234,10 +248,12 @@
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]);
+ target.setObjectType(AttachementObjectTypeEnum.valueOf((String) source[0]));
+ target.setObjectId((Integer) source[1]);
+ target.setId(String.valueOf(source[2]));
+ target.setPath((String) source[3]);
+ target.setName((String) source[4]);
+ target.setComment((String) source[5]);
}
protected void attachmentToEntity(Attachment attachment,
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-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -25,10 +25,13 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
+import java.util.Map;
/**
* Contains all constants usable via the enumeration file.
@@ -189,9 +192,8 @@
public final Integer PMFM_ID_SURVEY_PART = null;
@Value("${PmfmId.MEASUREMENT_FILE}")
- public final Integer PMFM_ID_MEASUREMENT_FILE= null;
+ public final Integer PMFM_ID_MEASUREMENT_FILE = null;
-
@Value("${ProgramCode.SCIENTIFIC_CRUISE_PREFIX}")
public final String PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX = null;
@@ -204,8 +206,45 @@
@Value("${ReferenceTaxonId.INERT}")
public final Integer REFERENCE_TAXON_ID_INERT = null;
+ @Value("${ObjectTypeCode.SCIENTIFIC_CRUISE}")
+ public final String OBJECT_TYPE_SCIENTIFIC_CRUISE = null;
+
+ @Value("${ObjectTypeCode.CATCH_BATCH}")
+ public final String OBJECT_TYPE_CATCH_BATCH = null;
+
+ @Value("${ObjectTypeCode.OPERATION}")
+ public final String OBJECT_TYPE_OPERATION = null;
+
+ @Value("${ObjectTypeCode.SAMPLE}")
+ public final String OBJECT_TYPE_SAMPLE = null;
+
+
+ /**
+ * Contract to place on enumeration that must be synched to field inside this class.
+ * <p/>
+ * {@link #getFieldValue()} will be filled when {@link #init()} method is
+ * invoked and then the {@link #isInit()} will return true.
+ *
+ * @param <O> type of fieldValue
+ * @since 1.0.2
+ */
+ public interface TuttiEnumerable<O> {
+
+ String getFieldName();
+
+ O getFieldValue();
+
+ void setFieldValue(Object fieldValue);
+
+ boolean isInit();
+
+ void setInit(boolean init);
+ }
+
public void init() {
+ Map<String, Object> annotatedFieldValues = Maps.newTreeMap();
+
Field[] declaredFields = getClass().getDeclaredFields();
for (Field declaredField : declaredFields) {
Value annotation = declaredField.getAnnotation(Value.class);
@@ -213,11 +252,33 @@
// check on that field that his value is here
Object fieldValue = ReflectionUtils.getField(declaredField, this);
+ String fieldName = declaredField.getName();
Preconditions.checkNotNull(
fieldValue,
annotation.value() + " constant not found (field " +
- declaredField.getName() + ")");
+ fieldName + ")");
+ annotatedFieldValues.put(fieldName, fieldValue);
}
}
+
+ // init enums
+ initEnum(AttachementObjectTypeEnum.class, annotatedFieldValues);
}
+
+ protected <O, E extends Enum<E> & TuttiEnumerable<O>> void initEnum(
+ Class<E> enumType,
+ Map<String, Object> annotatedFieldValues) {
+ for (E e : enumType.getEnumConstants()) {
+ if (!e.isInit()) {
+ String fieldName = e.getFieldName();
+ Object field = annotatedFieldValues.get(fieldName);
+ Preconditions.checkNotNull(
+ field,
+ "Could not find field " + fieldName + ")");
+ e.setFieldValue(field);
+ e.setInit(true);
+ }
+
+ }
+ }
}
Modified: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-03-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-03-04 09:10:58 UTC (rev 525)
@@ -358,6 +358,8 @@
<query name="allAttachment">
<![CDATA[
SELECT
+ m.objectType.code as attachmentObjectType,
+ m.objectId AS attachmentObjectId,
m.id AS attachmentId,
m.path AS attachmentPath,
m.name AS attachmentName,
@@ -376,6 +378,8 @@
<query name="attachment">
<![CDATA[
SELECT
+ m.objectType.code as attachmentObjectType,
+ m.objectId AS attachmentObjectId,
m.id AS attachmentId,
m.path AS attachmentPath,
m.name AS attachmentName,
@@ -383,9 +387,9 @@
FROM
MeasurementFileImpl m
WHERE
- m.id = :id
+ m.id = :attachmentId
]]>
- <query-param name="id" type="java.lang.Integer"/>
+ <query-param name="attachmentId" type="java.lang.Integer"/>
</query>
<!-- ===================================================================== -->
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-04 09:10:58 UTC (rev 525)
@@ -391,4 +391,10 @@
ReferenceTaxonId.LIFE=7637
#Reference taxon correspondant à "Non Biota" (ou "Non Vie" - matière inerte)
# TODO : a creer dans la base harmonie et achanger !
-ReferenceTaxonId.INERT=1
\ No newline at end of file
+ReferenceTaxonId.INERT=1
+
+# TODO : A Creer (dans les énumerations Allegro)
+ObjectTypeCode.SCIENTIFIC_CRUISE=SCIENTIFIC_CRUISE
+ObjectTypeCode.OPERATION=OPERATION
+ObjectTypeCode.CATCH_BATCH=CATCH_BATCH
+ObjectTypeCode.SAMPLE=SAMPLE
\ No newline at end of file
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
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-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -200,6 +200,8 @@
copyDb(config.getDbDirectory(), !writeDb, null);
}
+ toDetroy.add(config.getDbAttachmentDirectory());
+
// load db config
File dbConfig = new File(config.getDbDirectory(), config.getDbName() + ".properties");
Properties p = new Properties();
Added: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunner.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunner.java (rev 0)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunner.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -0,0 +1,64 @@
+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 org.junit.runner.notification.RunNotifier;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+
+/**
+ * To use {@link TuttiRunListener}.
+ * <p/>
+ * Add this on top of your test (when run in IDE, otherise maven already add
+ * the listener for you, so no need of the runner).
+ * <pre>
+ * \(a)RunWith(TuttiRunner.class)
+ * </pre>
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+
+public class TuttiRunner extends BlockJUnit4ClassRunner {
+
+ public static final TuttiRunListener TUTTI_RUN_LISTENER = new TuttiRunListener();
+
+ /**
+ * Creates a BlockJUnit4ClassRunner to run {@code klass}
+ *
+ * @throws InitializationError if the test class is malformed.
+ */
+ public TuttiRunner(Class<?> klass) throws InitializationError {
+ super(klass);
+ }
+
+ @Override
+ protected void runChild(FrameworkMethod method, RunNotifier notifier) {
+ notifier.removeListener(TUTTI_RUN_LISTENER);
+ notifier.addListener(TUTTI_RUN_LISTENER);
+ super.runChild(method, notifier);
+ }
+}
Property changes on: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/TuttiRunner.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java (rev 0)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -0,0 +1,144 @@
+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.DatabaseResource;
+import fr.ifremer.tutti.persistence.TuttiRunner;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * To test {@link AttachmentPersistenceService} for write operation.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+(a)RunWith(TuttiRunner.class)
+public class AttachmentPersistenceServiceWriteTest {
+
+ @ClassRule
+ public static final DatabaseResource dbResource = DatabaseResource.writeDb();
+
+ protected AttachmentPersistenceService service;
+
+ @Before
+ public void setUp() throws Exception {
+ service = TuttiPersistenceServiceLocator.getAttachmentPersistenceService();
+ }
+
+ @Test
+ public void createAndSaveAttachment() {
+
+ List<Attachment> allAttachments;
+
+ Integer cruiseId = Integer.valueOf(dbResource.getFixtures().cruiseId());
+
+ allAttachments = service.getAllAttachments(cruiseId);
+ Assert.assertTrue(allAttachments.isEmpty());
+
+ //
+ // create attachment
+ //
+
+ Attachment attachment = new Attachment();
+ attachment.setObjectType(AttachementObjectTypeEnum.SCIENTIFIC_CRUISE);
+ attachment.setObjectId(cruiseId);
+ long buildTime = System.nanoTime();
+ attachment.setName("AttachmentName-" + buildTime);
+ attachment.setComment("AttachmentComment-" + buildTime);
+ File fileToAttach = dbResource.getConfig().getDbConfigurationPath();
+ Attachment savedAttachment = service.createAttachment(attachment, fileToAttach);
+ assertAttachment(attachment, savedAttachment);
+
+ //
+ // get Attachment file
+ //
+
+ File attachmentFile = service.getAttachmentFile(attachment.getId());
+ Assert.assertNotNull(attachmentFile);
+ Assert.assertTrue(attachmentFile.exists());
+ Assert.assertEquals(fileToAttach.length(), attachmentFile.length());
+
+ //
+ // reload it
+ //
+
+ allAttachments = service.getAllAttachments(cruiseId);
+ Assert.assertFalse(allAttachments.isEmpty());
+ Assert.assertEquals(1, allAttachments.size());
+
+ Attachment reloadedAttachment = allAttachments.get(0);
+ assertAttachment(attachment, reloadedAttachment);
+
+ //
+ // modifiy it and save it
+ //
+
+ attachment.setName(attachment.getName() + "-2");
+ attachment.setComment(attachment.getComment() + "-2");
+
+ savedAttachment = service.saveAttachment(attachment);
+ assertAttachment(attachment, savedAttachment);
+
+ //
+ // reload it
+ //
+
+ allAttachments = service.getAllAttachments(cruiseId);
+ Assert.assertFalse(allAttachments.isEmpty());
+ Assert.assertEquals(1, allAttachments.size());
+
+ reloadedAttachment = allAttachments.get(0);
+ assertAttachment(attachment, reloadedAttachment);
+
+ //
+ // delete it
+ //
+
+ service.deleteAttachment(attachment.getId());
+ allAttachments = service.getAllAttachments(cruiseId);
+ Assert.assertTrue(allAttachments.isEmpty());
+ Assert.assertFalse(attachmentFile.exists());
+ }
+
+ protected void assertAttachment(Attachment expected, Attachment actual) {
+ Assert.assertNotNull(expected);
+ Assert.assertNotNull(actual);
+ Assert.assertEquals(expected.getId(), actual.getId());
+ Assert.assertEquals(expected.getPath(), actual.getPath());
+ Assert.assertEquals(expected.getName(), actual.getName());
+ Assert.assertEquals(expected.getComment(), actual.getComment());
+ Assert.assertEquals(expected.getObjectType(), actual.getObjectType());
+ Assert.assertEquals(expected.getObjectId(), actual.getObjectId());
+ }
+}
Property changes on: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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-04 08:45:29 UTC (rev 524)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-04 09:10:58 UTC (rev 525)
@@ -373,7 +373,7 @@
//------------------------------------------------------------------------//
@Override
- public List<Attachment> getAllAttachments(String objectId) {
+ public List<Attachment> getAllAttachments(Integer objectId) {
return driver.getAllAttachments(objectId);
}
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/428/changes>
Changes:
[Tony Chemit] use new Applicationconfig and Applicationupdater API
------------------------------------------
[...truncated 29 lines...]
At revision 519
Parsing POMs
Modules changed, recalculating dependency graph
[trunk] $ /opt/jdk/bin/java -Xmx256m -XX:-UseGCOverheadLimit -cp /var/local/jenkins/data/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.2.jar:/opt/maven3/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /opt/maven3 /opt/repo/apache-tomcat-7.0.34/webapps/jenkins/WEB-INF/lib/remoting-2.20.jar /var/local/jenkins/data/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.2.jar 57005
<===[JENKINS REMOTING CAPACITY]===> channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
Executing Maven: -B -f <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> -U -e clean install
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Tutti
[INFO] Tutti :: Persistence
[INFO] Tutti :: Service
[INFO] Tutti :: UI
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]>
projectStarted fr.ifremer:tutti:1.0.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/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 ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
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 ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/surefire-workdir>
[INFO] Executed tasks
mojoSucceeded org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
mojoStarted org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ tutti ---
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]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tutti ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/1.0.2-SNAPSHOT/tutti-1.0.2-SNAPSHOT.pom
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.0.2-SNAPSHOT…> to /var/local/maven/data/repository/fr/ifremer/tutti/1.0.2-SNAPSHOT/tutti-1.0.2-SNAPSHOT-site_fr.xml
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer:tutti:1.0.2-SNAPSHOT
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/ws/trunk/tutti-persistence/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-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/ws/trunk/tutti-persistence/src/main/…>
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…> to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[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/ws/trunk/tutti-persistence/target/ge…> for 1 file(s).
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…> to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[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/ws/trunk/tutti-persistence/target/ge…>
[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/ws/trunk/tutti-persistence/target/ge…>
[INFO] Add resource root :Resource {targetPath: null, filtering: false, FileSet {directory: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…,> 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/ws/trunk/tutti-persistence/target/ge…>
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/ws/trunk/tutti-persistence/target/cl…>
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/ws/trunk/tutti-persistence/target/su…>
[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/ws/trunk/tutti-persistence/target/te…>
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[53,51] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[190,8] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[190,50] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[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/ws/trunk/tutti-persistence/src/test/…>:[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
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [19.618s]
[INFO] Tutti :: Persistence .............................. FAILURE [26.471s]
[INFO] Tutti :: Service .................................. SKIPPED
[INFO] Tutti :: UI ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 49.299s
[INFO] Finished at: Sun Mar 03 17:03:07 CET 2013
[INFO] Final Memory: 32M/128M
[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-03_17-02-09/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-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-03_17-02-09/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-03_17-02-09/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-03_17-02-09/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-03_17-02-09/archive/fr.ifremer.tutti/tutti-persistence/1.0.2-SNAPSHOT/tutti-persistence-1.0.2-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project tutti-persistence: Compilation failure
cause : Compilation failure
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project tutti-persistence: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
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.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.TestCompilerMojo.execute(TestCompilerMojo.java:161)
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
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit(a)codelutin.com
channel stopped
1
5
04 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-service/429/>
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-service:1.0.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Service 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
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-csv/2…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 43.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-csv/2… (2 KB at 32.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-csv/2…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-csv/2… (6 KB at 150.4 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-csv/2…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-csv/2… (72 KB at 1248.8 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-service ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-service/ws/ta…>
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-service ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[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/fr.ifremer.tutti$tutti-service/ws/ta…>
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]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[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 24 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-service/ws/ta…>
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/fr.ifremer.tutti$tutti-service/ws/ta…>
[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/fr.ifremer.tutti$tutti-service/ws/ta…>
[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-service/ws/sr…>:[46,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-service/ws/sr…>:[256,8] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-service/ws/sr…>:[257,20] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-service/ws/sr…>:[258,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-service/ws/sr…>:[271,16] error: constructor TuttiServiceConfig in class TuttiServiceConfig 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-service:1.0.2-SNAPSHOT
1
4
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