Wao-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
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- 2352 discussions
r1988 - trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer
by bleny@users.forge.codelutin.com 03 Jun '14
by bleny@users.forge.codelutin.com 03 Jun '14
03 Jun '14
Author: bleny
Date: 2014-06-03 19:05:18 +0200 (Tue, 03 Jun 2014)
New Revision: 1988
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1988
Log:
refs #4490 too many shipowners, ask user to type 3 caracters before searching
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-06-03 16:41:50 UTC (rev 1987)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-06-03 17:05:18 UTC (rev 1988)
@@ -62,7 +62,8 @@
{
filterName: 'shipOwnerIds',
filterLabel: "<s:text name="wao.ui.field.Boat.shipOwner"/>",
- filterValuesField: 'shipOwners'
+ filterValuesField: 'shipOwners',
+ minimumInputLength: 3
},
{
filterName: 'portOfRegistryIds',
1
0
r1987 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/java/fr/ifremer/wao/web
by bleny@users.forge.codelutin.com 03 Jun '14
by bleny@users.forge.codelutin.com 03 Jun '14
03 Jun '14
Author: bleny
Date: 2014-06-03 18:41:50 +0200 (Tue, 03 Jun 2014)
New Revision: 1987
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1987
Log:
fixes #4483 cache for sampling plan
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java 2014-06-03 15:11:41 UTC (rev 1986)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java 2014-06-03 16:41:50 UTC (rev 1987)
@@ -229,7 +229,14 @@
@Override
public int hashCode() {
int hashCode = Objects.hashCode(obsProgram);
+ if (periodFrom != null) {
+ hashCode = 31 * hashCode + periodFrom.hashCode();
+ }
+ if (periodTo != null) {
+ hashCode = 31 * hashCode + periodTo.hashCode();
+ }
hashCode = 31 * hashCode + WaoUtils.collectionHashcode(sampleRowIds);
+ hashCode = 31 * hashCode + WaoUtils.collectionHashcode(sampleRowIds);
hashCode = 31 * hashCode + WaoUtils.collectionHashcode(fishingZoneFacadeNames);
hashCode = 31 * hashCode + WaoUtils.collectionHashcode(fishingZoneSectorNames);
hashCode = 31 * hashCode + WaoUtils.collectionHashcode(sampleRowCodes);
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java 2014-06-03 15:11:41 UTC (rev 1986)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java 2014-06-03 16:41:50 UTC (rev 1987)
@@ -122,4 +122,9 @@
public String getEmailToUpdateAllegroWallets() {
return applicationConfig.getOption(WaoApplicationConfigOption.EMAIL_TO_UPDATE_ALLEGRO_WALLETS.key);
}
+
+ public boolean isCachingEnabled() {
+ boolean isCachingEnabled = applicationConfig.getOptionAsBoolean(WaoApplicationConfigOption.CACHING_ENABLED.key);
+ return isCachingEnabled;
+ }
}
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java 2014-06-03 15:11:41 UTC (rev 1986)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java 2014-06-03 16:41:50 UTC (rev 1987)
@@ -55,6 +55,11 @@
"Mode développement, court-circuite l'envoi de mail",
"true", Boolean.class),
+ CACHING_ENABLED(
+ "wao.cachingEnabled",
+ "Active les caches métiers",
+ "true", Boolean.class),
+
LOG_CONFIGURATION_FILE(
"logConfigurationFile",
"Chemin vers le fichier de configuration des journaux",
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-06-03 15:11:41 UTC (rev 1986)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-06-03 16:41:50 UTC (rev 1987)
@@ -364,8 +364,28 @@
}
commit();
+ if (updateSampleRowCommand.isCreation()) {
+ invalidateCachesForAllSampleRows();
+ } else {
+ invalidateCachesForSampleRow(sampleRow);
+ }
+
}
+ protected void invalidateCachesForAllSampleRows() {
+ serviceContext.getSamplingPlansCache().invalidateAll();
+ }
+
+ protected void invalidateCachesForSampleRow(SampleRow sampleRow) {
+ Set<SamplingPlanCacheKey> toInvalidate = new HashSet<>();
+ Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> samplingPlansCache = serviceContext.getSamplingPlansCache();
+ for (Map.Entry<SamplingPlanCacheKey, ObsMerSamplingPlan> entry : samplingPlansCache.asMap().entrySet()) {
+ entry.getValue().getFilterValues().getSampleRowCodes().contains(sampleRow.getCode());
+ toInvalidate.add(entry.getKey());
+ }
+ samplingPlansCache.invalidateAll();
+ }
+
public SampleRow getSampleRow(String sampleRowId) {
SampleRow sampleRow = getSampleRowDao().findByTopiaId(sampleRowId);
@@ -387,6 +407,8 @@
commit();
+ invalidateCachesForSampleRow(sampleRow);
+
}
public List<SampleRow> getSamplingPlanRows(SampleRowsFilter sampleRowsFilter) {
@@ -550,6 +572,8 @@
commit();
+ invalidateCachesForAllSampleRows();
+
}
protected ImportModel<SampleRow> newSamplingPlanImportModel(AuthenticatedWaoUser authenticatedWaoUser) {
@@ -797,6 +821,9 @@
month.setEstimatedTidesValue(month.getEstimatedTidesValue() + 1);
}
}
+
+ invalidateCachesForSampleRow(sampleRow);
+
}
public List<SampleRow> getUnfinishedSampleRows(AuthenticatedWaoUser authenticatedWaoUser, String companyId) {
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-03 15:11:41 UTC (rev 1986)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-03 16:41:50 UTC (rev 1987)
@@ -23,6 +23,7 @@
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheStats;
import com.opensymphony.xwork2.util.LocalizedTextUtil;
import fr.ifremer.wao.WaoApplicationConfig;
import fr.ifremer.wao.WaoTopiaApplicationContext;
@@ -47,6 +48,7 @@
import java.util.Locale;
import java.util.Random;
import java.util.UUID;
+import java.util.concurrent.TimeUnit;
public class DefaultWaoApplicationContext implements WaoApplicationContext {
@@ -109,11 +111,20 @@
@Override
public Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> getSamplingPlansCache() {
if (samplingPlansCache == null) {
- samplingPlansCache = CacheBuilder.newBuilder().build();
+ samplingPlansCache = newCacheBuilder(100).expireAfterAccess(30, TimeUnit.DAYS).build();
}
return samplingPlansCache;
}
+ protected <K, V> CacheBuilder<K, V> newCacheBuilder(int expectedMaximumCacheSize) {
+ int maximumCacheSize = applicationConfig.isCachingEnabled() ? expectedMaximumCacheSize : 0;
+ CacheBuilder<K, V> cacheBuilder = (CacheBuilder<K, V>) CacheBuilder.newBuilder().maximumSize(maximumCacheSize);
+ if (log.isInfoEnabled()) {
+ cacheBuilder.recordStats();
+ }
+ return cacheBuilder;
+ }
+
@Override
public WaoTopiaPersistenceContext newPersistenceContext() {
@@ -136,6 +147,11 @@
@Override
public void close() {
+ if (log.isInfoEnabled()) {
+ CacheStats cacheStats = samplingPlansCache.stats();
+ log.info("samplingPlansCache stats: " + cacheStats.toString());
+ }
+
if (topiaApplicationContext != null) {
topiaApplicationContext.closeContext();
1
0
r1986 - in trunk: . wao-services/src/main/java/fr/ifremer/wao/services wao-services/src/main/java/fr/ifremer/wao/services/service wao-services/src/test/java/fr/ifremer/wao/services wao-services/src/test/java/fr/ifremer/wao/services/service wao-web wao-web/src/main/java/fr/ifremer/wao/web
by bleny@users.forge.codelutin.com 03 Jun '14
by bleny@users.forge.codelutin.com 03 Jun '14
03 Jun '14
Author: bleny
Date: 2014-06-03 17:11:41 +0200 (Tue, 03 Jun 2014)
New Revision: 1986
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1986
Log:
refactor to allow caching
Added:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanCacheKey.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java
Removed:
trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationContext.java
Modified:
trunk/pom.xml
trunk/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/AbstractWaoServiceTest.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java
trunk/wao-web/pom.xml
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationListener.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/pom.xml 2014-06-03 15:11:41 UTC (rev 1986)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>5.0.7</version>
+ <version>5.0.8</version>
</parent>
<groupId>fr.ifremer</groupId>
@@ -111,6 +111,7 @@
<commonsEmailVersion>1.3.2</commonsEmailVersion>
<mustacheVersion>0.8.15</mustacheVersion>
<commonsCodecVersion>1.9</commonsCodecVersion>
+ <ehCacheVersion>2.6.9</ehCacheVersion>
<nuitonWebVersion>1.16</nuitonWebVersion>
<nuitonI18nVersion>3.1</nuitonI18nVersion>
@@ -370,6 +371,12 @@
<version>${jsoupVersion}</version>
</dependency>
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache-core</artifactId>
+ <version>${ehCacheVersion}</version>
+ </dependency>
+
</dependencies>
</dependencyManagement>
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -21,47 +21,43 @@
* #L%
*/
+import com.google.common.cache.Cache;
import fr.ifremer.wao.WaoApplicationConfig;
import fr.ifremer.wao.WaoTechnicalException;
import fr.ifremer.wao.WaoTopiaPersistenceContext;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlan;
+import fr.ifremer.wao.services.service.SamplingPlanCacheKey;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.Locale;
import java.util.Random;
-import java.util.UUID;
public class DefaultWaoServiceContext implements WaoServiceContext {
- protected WaoApplicationConfig applicationConfig;
+ protected WaoApplicationContext waoApplicationContext;
protected WaoTopiaPersistenceContext persistenceContext;
- protected WaoWebApplicationContext webApplicationContext;
-
- protected Random random;
-
protected Locale locale;
+ public DefaultWaoServiceContext(WaoApplicationContext waoApplicationContext, WaoTopiaPersistenceContext persistenceContext, Locale locale) {
+ this.waoApplicationContext = waoApplicationContext;
+ this.persistenceContext = persistenceContext;
+ this.locale = locale;
+ }
+
@Override
public WaoApplicationConfig getApplicationConfig() {
- return applicationConfig;
+ return waoApplicationContext.getApplicationConfig();
}
- public void setPersistenceContext(WaoTopiaPersistenceContext persistenceContext) {
- this.persistenceContext = persistenceContext;
- }
-
@Override
public WaoTopiaPersistenceContext getPersistenceContext() {
return persistenceContext;
}
- public void setApplicationConfig(WaoApplicationConfig applicationConfig) {
- this.applicationConfig = applicationConfig;
- }
-
@Override
public <E extends WaoService> E newService(Class<E> serviceClass) {
@@ -99,38 +95,32 @@
@Override
public Random getRandom() {
- if (random == null) {
- random = new Random();
- }
- return random;
+ return waoApplicationContext.getRandom();
}
@Override
public Date getNow() {
- Date now = new Date();
- return now;
+ return waoApplicationContext.getNow();
}
@Override
public WaoWebApplicationContext getWebApplicationContext() {
- return webApplicationContext;
+ return waoApplicationContext.getWebApplicationContext();
}
- public void setWebApplicationContext(WaoWebApplicationContext webApplicationContext) {
- this.webApplicationContext = webApplicationContext;
- }
-
+ @Override
public Locale getLocale() {
return locale;
}
- public void setLocale(Locale locale) {
- this.locale = locale;
+ @Override
+ public String newUuid() {
+ return waoApplicationContext.newUuid();
}
@Override
- public String newUuid() {
- return UUID.randomUUID().toString();
+ public Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> getSamplingPlansCache() {
+ return waoApplicationContext.getSamplingPlansCache();
}
}
Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java (rev 0)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -0,0 +1,36 @@
+package fr.ifremer.wao.services;
+
+import com.google.common.cache.Cache;
+import fr.ifremer.wao.WaoApplicationConfig;
+import fr.ifremer.wao.WaoTopiaPersistenceContext;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlan;
+import fr.ifremer.wao.services.service.SamplingPlanCacheKey;
+
+import java.util.Date;
+import java.util.Locale;
+import java.util.Random;
+
+/**
+ * @author bleny
+ */
+public interface WaoApplicationContext {
+
+ WaoApplicationConfig getApplicationConfig();
+
+ String newUuid();
+
+ Date getNow();
+
+ Random getRandom();
+
+ WaoTopiaPersistenceContext newPersistenceContext();
+
+ WaoServiceContext newServiceContext(WaoTopiaPersistenceContext persistenceContext, Locale locale);
+
+ WaoWebApplicationContext getWebApplicationContext();
+
+ Cache<SamplingPlanCacheKey,ObsMerSamplingPlan> getSamplingPlansCache();
+
+ void close();
+
+}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -21,8 +21,11 @@
* #L%
*/
+import com.google.common.cache.Cache;
import fr.ifremer.wao.WaoApplicationConfig;
import fr.ifremer.wao.WaoTopiaPersistenceContext;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlan;
+import fr.ifremer.wao.services.service.SamplingPlanCacheKey;
import java.util.Date;
import java.util.Locale;
@@ -37,6 +40,8 @@
WaoTopiaPersistenceContext getPersistenceContext();
+ Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> getSamplingPlansCache();
+
Date getNow();
<E extends WaoService> E newService(Class<E> serviceClass);
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -24,6 +24,7 @@
import com.google.common.base.Charsets;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import com.google.common.cache.Cache;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
@@ -400,46 +401,65 @@
AuthenticatedWaoUser authenticatedWaoUser,
SampleRowsFilter sampleRowsFilter) {
- SampleRowTopiaDao dao = getSampleRowDao();
-
- // recuperation des lignes du plan
- List<SampleRow> sampleRows = dao.findAll(sampleRowsFilter);
-
- // creation du plan d'echantillonnage
Optional<String> optionalCompanyId = Optional.absent();
if (authenticatedWaoUser.isCoordinatorOrObserver()) {
optionalCompanyId = Optional.of(authenticatedWaoUser.getCompany().getTopiaId());
}
- ObsMerSamplingPlanBuilder builder = new ObsMerSamplingPlanBuilder(serviceContext.getLocale(),
- optionalCompanyId,
- sampleRowsFilter);
- // begin of month
- Date periodFrom = sampleRowsFilter.getPeriodFrom();
- // end of month
- Date periodTo = WaoUtils.getEndOfMonth(sampleRowsFilter.getPeriodTo());
+ SamplingPlanCacheKey samplingPlanCacheKey =
+ new SamplingPlanCacheKey(
+ serviceContext.getLocale(),
+ optionalCompanyId,
+ sampleRowsFilter);
- for (SampleRow sampleRow : sampleRows) {
+ Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> samplingPlansCache =
+ serviceContext.getSamplingPlansCache();
- // calcul effort plannifie
- Double observationTimesInDaysExpected =
- getObservationTimesInDayExpected(periodFrom,
- periodTo,
- sampleRow);
+ ObsMerSamplingPlan result = samplingPlansCache.getIfPresent(samplingPlanCacheKey);
- Pair<Long, Long> realAndEstimated =
- getSampleRowObservationTimesInDayRealAndEstimated(
- sampleRow.getTopiaId(), periodFrom, periodTo);
- Long observationTimesInDaysReal = realAndEstimated.getLeft();
- Long observationTimesInDaysEstimated = realAndEstimated.getRight();
+ if (result == null) {
- // ajout de la ligne au build de plan
- builder.addSampleRow(sampleRow,
- observationTimesInDaysExpected,
- observationTimesInDaysReal,
- observationTimesInDaysEstimated);
+ SampleRowTopiaDao dao = getSampleRowDao();
+
+ // recuperation des lignes du plan
+ List<SampleRow> sampleRows = dao.findAll(sampleRowsFilter);
+
+ // creation du plan d'echantillonnage
+ ObsMerSamplingPlanBuilder builder = new ObsMerSamplingPlanBuilder(
+ serviceContext.getLocale(),
+ optionalCompanyId,
+ sampleRowsFilter);
+
+ // begin of month
+ Date periodFrom = sampleRowsFilter.getPeriodFrom();
+ // end of month
+ Date periodTo = WaoUtils.getEndOfMonth(sampleRowsFilter.getPeriodTo());
+
+ for (SampleRow sampleRow : sampleRows) {
+
+ // calcul effort plannifie
+ Double observationTimesInDaysExpected =
+ getObservationTimesInDayExpected(periodFrom,
+ periodTo,
+ sampleRow);
+
+ Pair<Long, Long> realAndEstimated =
+ getSampleRowObservationTimesInDayRealAndEstimated(
+ sampleRow.getTopiaId(), periodFrom, periodTo);
+ Long observationTimesInDaysReal = realAndEstimated.getLeft();
+ Long observationTimesInDaysEstimated = realAndEstimated.getRight();
+
+ // ajout de la ligne au build de plan
+ builder.addSampleRow(sampleRow,
+ observationTimesInDaysExpected,
+ observationTimesInDaysReal,
+ observationTimesInDaysEstimated);
+ }
+ result = builder.toPlan();
+
+ samplingPlansCache.put(samplingPlanCacheKey, result);
+
}
- ObsMerSamplingPlan result = builder.toPlan();
return result;
Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanCacheKey.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanCacheKey.java (rev 0)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanCacheKey.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -0,0 +1,40 @@
+package fr.ifremer.wao.services.service;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Optional;
+import fr.ifremer.wao.SampleRowsFilter;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+public class SamplingPlanCacheKey implements Serializable {
+
+ protected Locale locale;
+
+ protected Optional<String> optionalCompanyId;
+
+ protected SampleRowsFilter sampleRowsFilter;
+
+ public SamplingPlanCacheKey(Locale locale, Optional<String> optionalCompanyId, SampleRowsFilter sampleRowsFilter) {
+ this.locale = locale;
+ this.optionalCompanyId = optionalCompanyId;
+ this.sampleRowsFilter = sampleRowsFilter;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ SamplingPlanCacheKey that = (SamplingPlanCacheKey) o;
+ boolean equals = Objects.equal(locale, that.locale)
+ && Objects.equal(optionalCompanyId, that.optionalCompanyId)
+ && Objects.equal(sampleRowsFilter, that.sampleRowsFilter);
+ return equals;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(locale, optionalCompanyId, sampleRowsFilter);
+ }
+
+}
Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/AbstractWaoServiceTest.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/AbstractWaoServiceTest.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/AbstractWaoServiceTest.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -21,189 +21,44 @@
* #L%
*/
-import fr.ifremer.wao.WaoApplicationConfig;
-import fr.ifremer.wao.WaoTechnicalException;
-import fr.ifremer.wao.WaoTopiaApplicationContext;
import fr.ifremer.wao.WaoTopiaPersistenceContext;
-import fr.ifremer.wao.services.service.InitWaoService;
-import org.apache.commons.lang3.SystemUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.hibernate.cfg.Environment;
import org.junit.After;
-import org.nuiton.util.DateUtil;
-import org.nuiton.util.FileUtil;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.Locale;
import java.util.UUID;
public class AbstractWaoServiceTest {
private static final Log log = LogFactory.getLog(AbstractWaoServiceTest.class);
- protected static final double DELTA = 0.0001;
-
- protected static final String DATABASE_REF = "DataBaseRef";
-
- protected static WaoApplicationConfig applicationConfig;
-
protected FakeWaoServiceContext serviceContext;
- protected WaoTopiaApplicationContext applicationContext;
+ protected FakeWaoApplicationContext applicationContext;
- protected List<WaoTopiaPersistenceContext> openedTransactions = new LinkedList<>();
-
- protected WaoTopiaApplicationContext newApplicationContext(String dataBase) {
-
- Map<String, String> hibernateH2Config = new HashMap<>();
-
- hibernateH2Config.putAll(getApplicationConfig().getTopiaProperties());
-
- hibernateH2Config.put(Environment.DRIVER, org.h2.Driver.class.getName());
- hibernateH2Config.put(Environment.DIALECT, org.hibernate.dialect.H2Dialect.class.getName());
- hibernateH2Config.put(Environment.USER, "sa");
- hibernateH2Config.put(Environment.PASS, "");
-
- File tempDirFile = SystemUtils.getJavaIoTmpDir();
-
- File databaseFile = new File(tempDirFile, dataBase);
-
- String h2dataPath = databaseFile.getAbsolutePath() + File.separator + "h2data";
-
- String jdbcUrl = "jdbc:h2:file:" + h2dataPath;
-
- hibernateH2Config.put(Environment.URL, jdbcUrl);
-
- if (log.isTraceEnabled()) {
- log.trace("will store H2 data in " + h2dataPath);
- log.trace("allJpaParameters = " + hibernateH2Config);
- }
-
- if (log.isDebugEnabled()) {
- log.debug("jdbc url is\n" + jdbcUrl);
- }
-
- WaoTopiaApplicationContext applicationContext = new WaoTopiaApplicationContext(hibernateH2Config);
-
- if (log.isTraceEnabled()) {
- log.trace("created root context " + applicationContext);
- }
-
- return applicationContext;
- }
-
protected boolean isDatabaseWithReferential() {
return false;
}
- protected WaoTopiaApplicationContext getApplicationContext() {
+ protected FakeWaoApplicationContext getApplicationContext() {
- String databaseName = UUID.randomUUID().toString();
-
- if (isDatabaseWithReferential()) {
-
- File tempDirFile = SystemUtils.getJavaIoTmpDir();
-
- File databaseRefFile = new File(tempDirFile, DATABASE_REF);
-
- if (!databaseRefFile.exists()) {
-
- if (log.isTraceEnabled()) {
- log.trace("create referential data base");
- }
-
- WaoTopiaApplicationContext applicationContext = newApplicationContext(DATABASE_REF);
-
- WaoTopiaPersistenceContext persistenceContext;
-
- persistenceContext = applicationContext.newPersistenceContext();
-
- if (log.isTraceEnabled()) {
- log.trace("opened transaction " + persistenceContext);
- }
-
- FakeWaoServiceContext serviceContext = new FakeWaoServiceContext();
-
- serviceContext.setDate(DateUtil.createDate(1, 11, 2009));
-
- serviceContext.setApplicationConfig(getApplicationConfig());
-
- serviceContext.setPersistenceContext(persistenceContext);
-
- InitWaoService initWaoService = serviceContext.newService(InitWaoService.class);
-
- initWaoService.init();
-
- if (log.isTraceEnabled()) {
- log.trace("closing transaction " + persistenceContext);
- }
-
- persistenceContext.closeContext();
-
- if (log.isTraceEnabled()) {
- log.trace("closing transaction " + applicationContext);
- }
-
- applicationContext.closeContext();
-
- File lockFile = new File(databaseRefFile, "h2data.lock.db");
-
- while (lockFile.exists()) {
- if (log.isDebugEnabled()) {
- log.debug("referential database is still locked, will wait 5 more seconds");
- }
- try {
- Thread.sleep(5 * 1000);
- } catch (InterruptedException e) {
- throw new WaoTechnicalException("can't wait", e);
- }
- }
-
- }
-
- File databaseFile = new File(tempDirFile, databaseName);
-
- if (log.isTraceEnabled()) {
- log.trace("Copy referential database to " + databaseFile.getName());
- }
-
- try {
- FileUtil.copyAndRenameRecursively(databaseRefFile, databaseFile, false, null, null, false);
- } catch (IOException e) {
- throw new WaoTechnicalException("can't copy database Ref", e);
- }
-
- if (log.isTraceEnabled()) {
- log.trace("Copy referential database : Complete");
- }
+ if (applicationContext == null) {
+ applicationContext = new FakeWaoApplicationContext(UUID.randomUUID().toString(), isDatabaseWithReferential());
}
- return newApplicationContext(databaseName);
+ return applicationContext;
+
}
protected WaoTopiaPersistenceContext newPersistenceContext() {
- if (applicationContext == null) {
+ WaoTopiaPersistenceContext persistenceContext = getApplicationContext().newPersistenceContext();
- applicationContext = getApplicationContext();
-
- }
-
- WaoTopiaPersistenceContext persistenceContext;
-
- persistenceContext = applicationContext.newPersistenceContext();
-
if (log.isTraceEnabled()) {
log.trace("opened transaction " + persistenceContext);
}
- openedTransactions.add(persistenceContext);
-
return persistenceContext;
}
@@ -211,52 +66,24 @@
@After
public void tearDown() {
- for (WaoTopiaPersistenceContext openedTransaction : openedTransactions) {
-
- if (log.isTraceEnabled()) {
- log.trace("closing transaction " + openedTransaction);
- }
-
- openedTransaction.closeContext();
-
- }
-
if (applicationContext != null) {
if (log.isTraceEnabled()) {
log.trace("closing transaction " + applicationContext);
}
- applicationContext.closeContext();
+ applicationContext.close();
}
}
- protected static WaoApplicationConfig getApplicationConfig() {
-
- if (applicationConfig == null) {
-
- applicationConfig = new WaoApplicationConfig();
-
- }
-
- return applicationConfig;
-
- }
-
protected FakeWaoServiceContext newServiceContext() {
- FakeWaoServiceContext serviceContext = new FakeWaoServiceContext();
+ WaoTopiaPersistenceContext persistenceContext = getApplicationContext().newPersistenceContext();
- serviceContext.setApplicationConfig(getApplicationConfig());
+ serviceContext = getApplicationContext().newServiceContext(persistenceContext, Locale.FRANCE);
- WaoTopiaPersistenceContext persistenceContext = newPersistenceContext();
-
- serviceContext.setPersistenceContext(persistenceContext);
-
- serviceContext.setDate(DateUtil.createDate(2, 11, 2009));
-
return serviceContext;
}
Added: trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java (rev 0)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -0,0 +1,246 @@
+package fr.ifremer.wao.services;
+
+import com.google.common.base.Preconditions;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import fr.ifremer.wao.WaoApplicationConfig;
+import fr.ifremer.wao.WaoTechnicalException;
+import fr.ifremer.wao.WaoTopiaApplicationContext;
+import fr.ifremer.wao.WaoTopiaPersistenceContext;
+import fr.ifremer.wao.services.service.InitWaoService;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlan;
+import fr.ifremer.wao.services.service.SamplingPlanCacheKey;
+import org.apache.commons.lang3.SystemUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.cfg.Environment;
+import org.nuiton.util.DateUtil;
+import org.nuiton.util.FileUtil;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Random;
+import java.util.UUID;
+
+public class FakeWaoApplicationContext implements WaoApplicationContext {
+
+ private static final Log log = LogFactory.getLog(FakeWaoApplicationContext.class);
+
+ protected static final String DATABASE_REF = "DataBaseRef";
+
+ protected String context;
+
+ protected boolean initWithReferential;
+
+ protected WaoTopiaApplicationContext topiaApplicationContext;
+
+ protected WaoApplicationConfig applicationConfig;
+
+ protected Random random = new Random(540727613);
+
+ protected Date date = DateUtil.createDate(1, 11, 2009);
+
+ protected Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> samplingPlansCache;
+
+ public FakeWaoApplicationContext(String context, boolean initWithReferential) {
+ this.context = context;
+ this.initWithReferential = initWithReferential;
+ }
+
+ @Override
+ public WaoApplicationConfig getApplicationConfig() {
+ if (applicationConfig == null) {
+ applicationConfig = new WaoApplicationConfig();
+ }
+ return applicationConfig;
+ }
+
+ public WaoTopiaApplicationContext getTopiaApplicationContext() {
+
+ if (topiaApplicationContext == null) {
+
+ if (initWithReferential) {
+
+ File databaseRefFile = getDatabaseFile(DATABASE_REF);
+
+ if (!databaseRefFile.exists()) {
+
+ if (log.isTraceEnabled()) {
+ log.trace("create referential database");
+ }
+
+ WaoTopiaApplicationContext applicationContext = newWaoTopiaApplicationContext(DATABASE_REF);
+
+ WaoTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext();
+
+ if (log.isTraceEnabled()) {
+ log.trace("opened persistence context " + persistenceContext);
+ }
+
+ WaoServiceContext serviceContext = new DefaultWaoServiceContext(this, persistenceContext, Locale.FRANCE);
+
+ InitWaoService initWaoService = serviceContext.newService(InitWaoService.class);
+
+ initWaoService.init();
+
+ if (log.isTraceEnabled()) {
+ log.trace("closing persistence context " + persistenceContext);
+ }
+
+ persistenceContext.closeContext();
+
+ if (log.isTraceEnabled()) {
+ log.trace("closing application context " + applicationContext);
+ }
+
+ applicationContext.closeContext();
+
+ File lockFile = new File(databaseRefFile, "h2data.lock.db");
+
+ while (lockFile.exists()) {
+ if (log.isDebugEnabled()) {
+ log.debug("referential database is still locked, will wait 5 more seconds");
+ }
+ try {
+ Thread.sleep(5 * 1000);
+ } catch (InterruptedException e) {
+ throw new WaoTechnicalException("can't wait", e);
+ }
+ }
+
+ }
+
+ File databaseFile = getDatabaseFile(context);
+
+ if (log.isTraceEnabled()) {
+ log.trace("copy referential database from " + databaseRefFile.getAbsolutePath() + " to " + databaseFile.getAbsolutePath());
+ }
+
+ try {
+ FileUtil.copyAndRenameRecursively(databaseRefFile, databaseFile, false, null, null, false);
+ } catch (IOException e) {
+ throw new WaoTechnicalException("cannot copy database from " + databaseRefFile.getAbsolutePath() + " to " + databaseFile.getAbsolutePath(), e);
+ }
+
+ if (log.isTraceEnabled()) {
+ log.trace("copy referential database completed");
+ }
+ }
+
+ WaoTopiaApplicationContext applicationContext = newWaoTopiaApplicationContext(context);
+
+ if (log.isTraceEnabled()) {
+ log.trace("created application context " + applicationContext);
+ }
+
+ return applicationContext;
+ }
+
+ return topiaApplicationContext;
+
+ }
+
+ protected WaoTopiaApplicationContext newWaoTopiaApplicationContext(String context) {
+
+ Map<String, String> hibernateH2Config = new HashMap<>();
+
+ hibernateH2Config.putAll(getApplicationConfig().getTopiaProperties());
+
+ hibernateH2Config.put(Environment.DRIVER, org.h2.Driver.class.getName());
+ hibernateH2Config.put(Environment.DIALECT, org.hibernate.dialect.H2Dialect.class.getName());
+ hibernateH2Config.put(Environment.USER, "sa");
+ hibernateH2Config.put(Environment.PASS, "");
+
+ File databaseFile = getDatabaseFile(context);
+
+ String h2dataPath = databaseFile.getAbsolutePath() + File.separator + "h2data";
+
+ String jdbcUrl = "jdbc:h2:file:" + h2dataPath;
+
+ hibernateH2Config.put(Environment.URL, jdbcUrl);
+
+ if (log.isTraceEnabled()) {
+ log.trace("will store H2 data in " + h2dataPath);
+ log.trace("allJpaParameters = " + hibernateH2Config);
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("jdbc url is\n" + jdbcUrl);
+ }
+
+ return new WaoTopiaApplicationContext(hibernateH2Config);
+
+ }
+
+ protected File getDatabaseFile(String context) {
+ File tempDirFile = SystemUtils.getJavaIoTmpDir();
+ return new File(tempDirFile, context);
+ }
+
+ @Override
+ public Date getNow() {
+ Preconditions.checkState(date != null, "you must provide a date before running service test");
+ if (log.isTraceEnabled()) {
+ log.trace("injecting fake date in service: " + date);
+ }
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ @Override
+ public String newUuid() {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public WaoWebApplicationContext getWebApplicationContext() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Random getRandom() {
+ return random;
+ }
+
+ @Override
+ public Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> getSamplingPlansCache() {
+ if (samplingPlansCache == null) {
+ samplingPlansCache = CacheBuilder.newBuilder().build();
+ }
+ return samplingPlansCache;
+ }
+
+ @Override
+ public WaoTopiaPersistenceContext newPersistenceContext() {
+
+ WaoTopiaPersistenceContext persistenceContext = getTopiaApplicationContext().newPersistenceContext();
+
+ return persistenceContext;
+
+ }
+
+ @Override
+ public FakeWaoServiceContext newServiceContext(WaoTopiaPersistenceContext persistenceContext, Locale locale) {
+
+ FakeWaoServiceContext newServiceContext =
+ new FakeWaoServiceContext(this, persistenceContext, locale);
+
+ return newServiceContext;
+
+ }
+
+ @Override
+ public void close() {
+ if (topiaApplicationContext != null) {
+ topiaApplicationContext.closeContext();
+ }
+ }
+
+}
Deleted: trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -1,69 +0,0 @@
-package fr.ifremer.wao.services;
-
-/*
- * #%L
- * Wao :: Services
- * %%
- * Copyright (C) 2009 - 2014 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero 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 Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-import com.google.common.base.Preconditions;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.util.Date;
-import java.util.Locale;
-import java.util.Random;
-
-public class FakeWaoServiceContext extends DefaultWaoServiceContext {
-
- private static final Log log = LogFactory.getLog(FakeWaoServiceContext.class);
-
- protected Date date;
-
- public FakeWaoServiceContext() {
- // default locale
- setLocale(Locale.FRANCE);
- }
-
- @Override
- public Random getRandom() {
- if (random == null) {
- random = new Random(540727613);
- }
- return random;
- }
-
- @Override
- public Date getNow() {
- Preconditions.checkState(date != null, "you must provide a date before running service test");
- if (log.isTraceEnabled()) {
- log.trace("injecting fake date in service: " + date);
- }
- return date;
- }
-
- public void setDate(Date date) {
- this.date = date;
- }
-
-// @Override
-// public Locale getLocale() {
-// return Locale.FRANCE;
-// }
-
-}
Added: trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java (rev 0)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoServiceContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -0,0 +1,17 @@
+package fr.ifremer.wao.services;
+
+import fr.ifremer.wao.WaoTopiaPersistenceContext;
+
+import java.util.Locale;
+
+public class FakeWaoServiceContext extends DefaultWaoServiceContext {
+
+ public FakeWaoServiceContext(WaoApplicationContext waoApplicationContext, WaoTopiaPersistenceContext persistenceContext, Locale locale) {
+ super(waoApplicationContext, persistenceContext, locale);
+ }
+
+ public void setLocale(Locale locale) {
+ this.locale = locale;
+ }
+
+}
Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -79,7 +79,7 @@
fixtures.navires();
// today must be after the observation end date
- serviceContext.setDate(DateUtil.createDate(1, 2, 2011));
+ applicationContext.setDate(DateUtil.createDate(1, 2, 2011));
InputStream input = null;
try {
Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -88,7 +88,7 @@
fixtures.samplingPlan();
- serviceContext.setDate(DateUtil.createDate(15, 5, 2010));
+ applicationContext.setDate(DateUtil.createDate(15, 5, 2010));
SampleRowsFilter filter = service.newSampleRowsFilter(fixtures.admin());
ObsMerSamplingPlan samplingPlan = service.getSamplingPlan(fixtures.admin(), filter);
@@ -129,7 +129,7 @@
fixtures.samplingPlan();
- serviceContext.setDate(DateUtil.createDate(15, 5, 2010));
+ applicationContext.setDate(DateUtil.createDate(15, 5, 2010));
SampleRowsFilter filter = service.newSampleRowsFilter(fixtures.admin());
@@ -164,7 +164,7 @@
FakeWaoServiceContext serviceContext = newServiceContext();
// today must be after the observation end date (for contacts import)
- serviceContext.setDate(DateUtil.createDate(1, 2, 2011));
+ applicationContext.setDate(DateUtil.createDate(1, 2, 2011));
fixtures = new ObsMerFixtures(serviceContext);
fixtures.contacts();
Modified: trunk/wao-web/pom.xml
===================================================================
--- trunk/wao-web/pom.xml 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-web/pom.xml 2014-06-03 15:11:41 UTC (rev 1986)
@@ -163,6 +163,11 @@
<artifactId>jsoup</artifactId>
</dependency>
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache-core</artifactId>
+ </dependency>
+
</dependencies>
<build>
Copied: trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java (from rev 1985, trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationContext.java)
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -0,0 +1,200 @@
+package fr.ifremer.wao.web;
+
+/*
+ * #%L
+ * Wao :: Web
+ * %%
+ * Copyright (C) 2009 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import com.opensymphony.xwork2.util.LocalizedTextUtil;
+import fr.ifremer.wao.WaoApplicationConfig;
+import fr.ifremer.wao.WaoTopiaApplicationContext;
+import fr.ifremer.wao.WaoTopiaPersistenceContext;
+import fr.ifremer.wao.services.DefaultWaoServiceContext;
+import fr.ifremer.wao.services.WaoApplicationContext;
+import fr.ifremer.wao.services.WaoServiceContext;
+import fr.ifremer.wao.services.WaoWebApplicationContext;
+import fr.ifremer.wao.services.service.InitWaoService;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlan;
+import fr.ifremer.wao.services.service.SamplingPlanCacheKey;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.PropertyConfigurator;
+import org.nuiton.i18n.I18n;
+import org.nuiton.i18n.init.DefaultI18nInitializer;
+import org.nuiton.i18n.init.I18nInitializer;
+
+import java.io.File;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Random;
+import java.util.UUID;
+
+public class DefaultWaoApplicationContext implements WaoApplicationContext {
+
+ private static Log log = LogFactory.getLog(DefaultWaoApplicationContext.class);
+
+ public static final String APPLICATION_CONTEXT_PARAMETER = "WaoApplicationContext";
+
+ protected WaoTopiaApplicationContext topiaApplicationContext;
+
+ protected WaoApplicationConfig applicationConfig;
+
+ protected WaoWebApplicationContext webApplicationContext;
+
+ protected Random random;
+
+ protected Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> samplingPlansCache;
+
+ @Override
+ public WaoApplicationConfig getApplicationConfig() {
+ if (applicationConfig == null) {
+ applicationConfig = new WaoApplicationConfig();
+ }
+ return applicationConfig;
+ }
+
+ public WaoTopiaApplicationContext getTopiaApplicationContext() {
+ if (topiaApplicationContext == null) {
+ topiaApplicationContext = new WaoTopiaApplicationContext(getApplicationConfig().getTopiaProperties());
+ }
+ return topiaApplicationContext;
+ }
+
+ @Override
+ public String newUuid() {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public WaoWebApplicationContext getWebApplicationContext() {
+ if (webApplicationContext == null) {
+ webApplicationContext = new DefaultWaoWebApplicationContext(getApplicationConfig().getInstanceUrl());
+ }
+ return webApplicationContext;
+ }
+
+ @Override
+ public Date getNow() {
+ Date now = new Date();
+ return now;
+ }
+
+ @Override
+ public Random getRandom() {
+ if (random == null) {
+ random = new Random();
+ }
+ return random;
+ }
+
+ @Override
+ public Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> getSamplingPlansCache() {
+ if (samplingPlansCache == null) {
+ samplingPlansCache = CacheBuilder.newBuilder().build();
+ }
+ return samplingPlansCache;
+ }
+
+ @Override
+ public WaoTopiaPersistenceContext newPersistenceContext() {
+
+ WaoTopiaPersistenceContext persistenceContext = getTopiaApplicationContext().newPersistenceContext();
+
+ return persistenceContext;
+
+ }
+
+ @Override
+ public WaoServiceContext newServiceContext(WaoTopiaPersistenceContext persistenceContext, Locale locale) {
+
+ DefaultWaoServiceContext newServiceContext =
+ new DefaultWaoServiceContext(this, persistenceContext, locale);
+
+ return newServiceContext;
+
+ }
+
+ @Override
+ public void close() {
+
+ if (topiaApplicationContext != null) {
+
+ topiaApplicationContext.closeContext();
+
+ }
+
+ }
+
+ public void init() {
+
+ if (getApplicationConfig().isLogConfigurationProvided()) {
+
+ File log4jConfigurationFile = getApplicationConfig().getLogConfigurationFile();
+
+ String log4jConfigurationFileAbsolutePath = log4jConfigurationFile.getAbsolutePath();
+
+ if (log4jConfigurationFile.exists()) {
+
+ if (log.isInfoEnabled()) {
+ log.info("will use logging configuration " + log4jConfigurationFileAbsolutePath);
+ }
+
+ // reset logger configuration
+ LogManager.resetConfiguration();
+
+ // use generate log config file
+ PropertyConfigurator.configure(log4jConfigurationFileAbsolutePath);
+
+ log = LogFactory.getLog(DefaultWaoApplicationContext.class);
+
+ } else {
+ if (log.isWarnEnabled()) {
+ log.warn("there is no file " + log4jConfigurationFileAbsolutePath + ". Default logging configuration will be used.");
+ }
+ }
+
+ } else {
+ log.info("will use default logging configuration");
+ }
+
+ I18nInitializer initializer = new DefaultI18nInitializer("wao");
+ // to show none translated sentences
+ initializer.setMissingKeyReturnNull(true);
+
+ I18n.init(initializer, Locale.FRANCE);
+
+ LocalizedTextUtil.addDefaultResourceBundle("i18n.wao-web");
+
+ WaoTopiaPersistenceContext persistenceContext = newPersistenceContext();
+
+ WaoServiceContext serviceContext = newServiceContext(persistenceContext, Locale.FRANCE);
+
+ InitWaoService initWaoService =
+ serviceContext.newService(InitWaoService.class);
+
+ initWaoService.init();
+
+ persistenceContext.closeContext();
+
+ }
+
+}
Deleted: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationContext.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationContext.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationContext.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -1,160 +0,0 @@
-package fr.ifremer.wao.web;
-
-/*
- * #%L
- * Wao :: Web
- * %%
- * Copyright (C) 2009 - 2014 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero 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 Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import fr.ifremer.wao.WaoApplicationConfig;
-import fr.ifremer.wao.WaoTopiaApplicationContext;
-import fr.ifremer.wao.WaoTopiaPersistenceContext;
-import fr.ifremer.wao.services.DefaultWaoServiceContext;
-import fr.ifremer.wao.services.WaoServiceContext;
-import fr.ifremer.wao.services.WaoWebApplicationContext;
-import fr.ifremer.wao.services.service.InitWaoService;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.PropertyConfigurator;
-import org.nuiton.i18n.I18n;
-import org.nuiton.i18n.init.DefaultI18nInitializer;
-import org.nuiton.i18n.init.I18nInitializer;
-
-import java.io.File;
-import java.util.Locale;
-
-public class WaoApplicationContext {
-
- private static Log log = LogFactory.getLog(WaoApplicationContext.class);
-
- public static final String APPLICATION_CONTEXT_PARAMETER = "WaoApplicationContext";
-
- protected static WaoTopiaApplicationContext topiaApplicationContext;
-
- protected static WaoApplicationConfig applicationConfig;
-
- public static WaoApplicationConfig getApplicationConfig() {
- if (applicationConfig == null) {
- applicationConfig = new WaoApplicationConfig();
- }
- return applicationConfig;
- }
-
- public static WaoTopiaApplicationContext getTopiaApplicationContext() {
- if (topiaApplicationContext == null) {
- topiaApplicationContext = new WaoTopiaApplicationContext(getApplicationConfig().getTopiaProperties());
- }
- return topiaApplicationContext;
- }
-
- public WaoTopiaPersistenceContext newPersistenceContext() {
-
- WaoTopiaPersistenceContext persistenceContext = getTopiaApplicationContext().newPersistenceContext();
-
- return persistenceContext;
-
- }
-
- public WaoServiceContext newServiceContext(WaoTopiaPersistenceContext persistenceContext, Locale locale) {
-
- DefaultWaoServiceContext newServiceContext =
- new DefaultWaoServiceContext();
-
- WaoApplicationConfig applicationConfig = getApplicationConfig();
-
- newServiceContext.setApplicationConfig(applicationConfig);
-
- newServiceContext.setPersistenceContext(persistenceContext);
-
- WaoWebApplicationContext webApplicationContext =
- new DefaultWaoWebApplicationContext(applicationConfig.getInstanceUrl());
-
- newServiceContext.setWebApplicationContext(webApplicationContext);
-
- newServiceContext.setLocale(locale);
-
- return newServiceContext;
-
- }
-
- public void close() {
-
- if (topiaApplicationContext != null) {
-
- topiaApplicationContext.closeContext();
-
- }
-
- }
-
- public void init() {
-
- if (getApplicationConfig().isLogConfigurationProvided()) {
-
- File log4jConfigurationFile = getApplicationConfig().getLogConfigurationFile();
-
- String log4jConfigurationFileAbsolutePath = log4jConfigurationFile.getAbsolutePath();
-
- if (log4jConfigurationFile.exists()) {
-
- if (log.isInfoEnabled()) {
- log.info("will use logging configuration " + log4jConfigurationFileAbsolutePath);
- }
-
- // reset logger configuration
- LogManager.resetConfiguration();
-
- // use generate log config file
- PropertyConfigurator.configure(log4jConfigurationFileAbsolutePath);
-
- log = LogFactory.getLog(WaoApplicationContext.class);
-
- } else {
- if (log.isWarnEnabled()) {
- log.warn("there is no file " + log4jConfigurationFileAbsolutePath + ". Default logging configuration will be used.");
- }
- }
-
- } else {
- log.info("will use default logging configuration");
- }
-
- I18nInitializer initializer = new DefaultI18nInitializer("wao");
- // to show none translated sentences
- initializer.setMissingKeyReturnNull(true);
-
- I18n.init(initializer, Locale.FRANCE);
-
- LocalizedTextUtil.addDefaultResourceBundle("i18n.wao-web");
-
- WaoTopiaPersistenceContext persistenceContext = newPersistenceContext();
-
- WaoServiceContext serviceContext = newServiceContext(persistenceContext, Locale.FRANCE);
-
- InitWaoService initWaoService =
- serviceContext.newService(InitWaoService.class);
-
- initWaoService.init();
-
- persistenceContext.closeContext();
-
- }
-
-}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationListener.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationListener.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoApplicationListener.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -31,7 +31,7 @@
private static final Log log = LogFactory.getLog(WaoApplicationListener.class);
- protected WaoApplicationContext applicationContext;
+ protected DefaultWaoApplicationContext applicationContext;
@Override
public void contextInitialized(ServletContextEvent sce) {
@@ -40,12 +40,12 @@
log.info("init WAO");
}
- applicationContext = new WaoApplicationContext();
+ applicationContext = new DefaultWaoApplicationContext();
applicationContext.init();
sce.getServletContext().setAttribute(
- WaoApplicationContext.APPLICATION_CONTEXT_PARAMETER,
+ DefaultWaoApplicationContext.APPLICATION_CONTEXT_PARAMETER,
applicationContext);
}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-05-27 15:31:39 UTC (rev 1985)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-06-03 15:11:41 UTC (rev 1986)
@@ -33,6 +33,7 @@
import fr.ifremer.wao.entity.UserRole;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.services.AuthenticatedWaoUser;
+import fr.ifremer.wao.services.WaoApplicationContext;
import fr.ifremer.wao.services.WaoService;
import fr.ifremer.wao.services.WaoServiceContext;
import fr.ifremer.wao.web.action.authentication.LoginAction;
@@ -198,11 +199,11 @@
protected WaoApplicationContext getWaoApplicationContext(ActionInvocation invocation) {
- WaoApplicationContext applicationContext =
- (WaoApplicationContext) invocation
+ DefaultWaoApplicationContext applicationContext =
+ (DefaultWaoApplicationContext) invocation
.getInvocationContext()
.getApplication()
- .get(WaoApplicationContext.APPLICATION_CONTEXT_PARAMETER);
+ .get(DefaultWaoApplicationContext.APPLICATION_CONTEXT_PARAMETER);
Preconditions.checkNotNull(applicationContext,
"application context must be initialized before calling an action");
1
0
27 May '14
Build failed in Jenkins: wao-nightly » Wao :: Services #53
by admin+ci-codelutin.com@codelutin.com 27 May '14
by admin+ci-codelutin.com@codelutin.com 27 May '14
27 May '14
See <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/53/…>
Changes:
[bleny] refs #4493 start first bar chart
------------------------------------------
[...truncated 363 lines...]
2014/05/24 12:09:45 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@4151b7fd
2014/05/24 12:09:45 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@4151b7fd
2014/05/24 12:09:45 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@75748283
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.912 sec - in fr.ifremer.wao.services.service.mail.EmailServiceTest
Running fr.ifremer.wao.services.service.administration.WaoUsersServiceTest
2014/05/24 12:09:45 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:45 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:09:45 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:45 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@2608acc1
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@233ac9ea
2014/05/24 12:09:46 DEBUG (WaoUsersServiceTest.java:47) testNewPassword 5dUlNuJG
2014/05/24 12:09:46 DEBUG (WaoUsersServiceTest.java:48) testNewPassword Bu8GkJlu
2014/05/24 12:09:46 DEBUG (WaoUsersServiceTest.java:49) testNewPassword mOzbanc9
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@233ac9ea
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@2608acc1
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.631 sec - in fr.ifremer.wao.services.service.administration.WaoUsersServiceTest
Running fr.ifremer.wao.services.service.administration.ReferentialServiceTest
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:09:46 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@315b3807
2014/05/24 12:09:46 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@5cff08bf
2014/05/24 12:09:48 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:09:48 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:09:48 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:09:48 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:09:50 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:09:50 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@5cff08bf
2014/05/24 12:09:50 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@315b3807
2014/05/24 12:09:50 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:50 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:09:50 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:52 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@6a315701
2014/05/24 12:09:52 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@37161fe
2014/05/24 12:09:54 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:09:54 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:09:54 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:09:54 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:09:54 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:09:54 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:09:54 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@37161fe
2014/05/24 12:09:54 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@6a315701
2014/05/24 12:09:54 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:54 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:09:54 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:55 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@6c6f3a15
2014/05/24 12:09:55 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@14037d2f
2014/05/24 12:09:55 INFO (ReferentialService.java:673) initialDCF5CodesImport no DCF in database, mass import
2014/05/24 12:09:55 INFO (ReferentialService.java:741) initialDCF5CodesImport 54 dcf codes in database
2014/05/24 12:09:55 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@14037d2f
2014/05/24 12:09:55 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@6c6f3a15
2014/05/24 12:09:55 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:55 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:09:55 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:09:57 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@4f68f28
2014/05/24 12:09:57 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@74891d79
2014/05/24 12:09:59 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:09:59 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:09:59 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:09:59 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:09:59 DEBUG (ReferentialService.java:490) importTerrestrialDivisions 1181 ports, 18 regions
2014/05/24 12:10:01 DEBUG (ReferentialService.java:544) importTerrestrialDivisions 649 terrestrial divisions in database
2014/05/24 12:10:01 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:01 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@74891d79
2014/05/24 12:10:01 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@4f68f28
2014/05/24 12:10:01 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:01 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:01 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:02 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@18e8fe76
2014/05/24 12:10:02 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@5deb485b
2014/05/24 12:10:04 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:10:04 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:10:04 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:10:04 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:04 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:04 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@5deb485b
2014/05/24 12:10:04 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@18e8fe76
2014/05/24 12:10:04 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:04 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:04 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:05 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@6b456f66
2014/05/24 12:10:05 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@72f3e28b
2014/05/24 12:10:06 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:10:06 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:10:06 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:10:06 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:06 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@72f3e28b
2014/05/24 12:10:06 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@6b456f66
2014/05/24 12:10:06 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:06 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:06 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@40f67ee2
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@6ca346ac
2014/05/24 12:10:09 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@6ca346ac
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@40f67ee2
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:09 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@1bcfc212
2014/05/24 12:10:09 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@f9ad5f9
2014/05/24 12:10:11 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:10:11 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:10:11 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:10:11 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:11 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:11 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@f9ad5f9
2014/05/24 12:10:11 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@1bcfc212
2014/05/24 12:10:11 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:11 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:11 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:12 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@778c9e3a
2014/05/24 12:10:12 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@425294fd
2014/05/24 12:10:13 INFO (ReferentialService.java:375) importTerrestrialLocations 1248 terrestrial locations added, 0 updated
2014/05/24 12:10:13 INFO (ReferentialService.java:376) importTerrestrialLocations 50 terrestrial district added, 0 updated
2014/05/24 12:10:13 INFO (ReferentialService.java:377) importTerrestrialLocations 18 terrestrial region added, 28 updated
2014/05/24 12:10:13 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:13 TRACE (FakeWaoServiceContext.java:55) getNow injecting fake date in service: Mon Nov 02 00:00:00 CET 2009
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@425294fd
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@778c9e3a
Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 27.425 sec - in fr.ifremer.wao.services.service.administration.ReferentialServiceTest
Running fr.ifremer.wao.services.service.ObsMerBoatsServiceTest
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:172) getApplicationContext Copy referential database to 4725db23-9e80-4c07-8398-5117b51b39de
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:182) getApplicationContext Copy referential database : Complete
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:13 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@3c455c6f
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@38910738
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@378eaf9d
2014/05/24 12:10:13 TRACE (BoatTopiaDao.java:137) toBoatHqlAndParametersBuilder query to filter boats for fr.ifremer.wao.BoatsFilter@4f68c919[elligibleForSampleRowsFilter=fr.ifremer.wao.SampleRowsFilter@686ab109[obsProgram=<null>,sampleRowIds=<null>,periodFrom=<null>,periodTo=<null>,fishingZoneFacadeNames=<null>,fishingZoneSectorNames=<null>,sampleRowCodes=<null>,programNames=<null>,fishingGearDcfIds=<null>,targetSpeciesDcfIds=<null>,samplingStrategies=<null>,terrestrialDistrictIds=<null>,companyIds=<null>,orderByArguments=<null>],boatName=<null>,registrationCode=<null>,boatNameOrRegistrationCode=<null>,boatIds=<null>,shipOwnerIds=<null>,districtIds=<null>,portOfRegistryIds=<null>,fleetIds=<null>] is from fr.ifremer.wao.entity.Boat b {}
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@38910738
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@378eaf9d
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@3c455c6f
2014/05/24 12:10:13 TRACE (AbstractWaoServiceTest.java:172) getApplicationContext Copy referential database to 0cdbae5c-2a52-4d8c-9658-5464d71988ff
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:182) getApplicationContext Copy referential database : Complete
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:14 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@71c9871f
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@3ba2944d
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@588df376
2014/05/24 12:10:14 TRACE (BoatTopiaDao.java:137) toBoatHqlAndParametersBuilder query to filter boats for fr.ifremer.wao.BoatsFilter@4a107705[elligibleForSampleRowsFilter=fr.ifremer.wao.SampleRowsFilter@7ef60f3f[obsProgram=<null>,sampleRowIds=<null>,periodFrom=<null>,periodTo=<null>,fishingZoneFacadeNames=<null>,fishingZoneSectorNames=<null>,sampleRowCodes=<null>,programNames=<null>,fishingGearDcfIds=<null>,targetSpeciesDcfIds=<null>,samplingStrategies=<null>,terrestrialDistrictIds=<null>,companyIds=<null>,orderByArguments=<null>],boatName=<null>,registrationCode=<null>,boatNameOrRegistrationCode=<null>,boatIds=<null>,shipOwnerIds=<null>,districtIds=<null>,portOfRegistryIds=<null>,fleetIds=<null>] is from fr.ifremer.wao.entity.Boat b {}
2014/05/24 12:10:14 TRACE (BoatTopiaDao.java:137) toBoatHqlAndParametersBuilder query to filter boats for fr.ifremer.wao.BoatsFilter@4a107705[elligibleForSampleRowsFilter=fr.ifremer.wao.SampleRowsFilter@7ef60f3f[obsProgram=<null>,sampleRowIds=<null>,periodFrom=<null>,periodTo=<null>,fishingZoneFacadeNames=<null>,fishingZoneSectorNames=<null>,sampleRowCodes=<null>,programNames=<null>,fishingGearDcfIds=<null>,targetSpeciesDcfIds=<null>,samplingStrategies=<null>,terrestrialDistrictIds=<null>,companyIds=<null>,orderByArguments=<null>],boatName=<null>,registrationCode=<null>,boatNameOrRegistrationCode=<null>,boatIds=<null>,shipOwnerIds=<null>,districtIds=<null>,portOfRegistryIds=<null>,fleetIds=<null>] is from fr.ifremer.wao.entity.Boat b {}
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@3ba2944d
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@588df376
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@71c9871f
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.902 sec - in fr.ifremer.wao.services.service.ObsMerBoatsServiceTest
Running fr.ifremer.wao.services.service.InitWaoServiceTest
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:83) newApplicationContext will store H2 data in <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:84) newApplicationContext allJpaParameters = {hibernate.c3p0.max_statements=50, hibernate.c3p0.max_size=20, topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl, hibernate.c3p0.timeout=1800, hibernate.c3p0.min_size=5, hibernate.connection.url=jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…,> hibernate.connection.driver_class=org.h2.Driver, hibernate.format_sql=true, hibernate.connection.username=sa, hibernate.connection.password=, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.show_sql=false, topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory, hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy, topia.service.migration.flyway.initVersion=3.4.1}
2014/05/24 12:10:14 DEBUG (AbstractWaoServiceTest.java:88) newApplicationContext jdbc url is
jdbc:h2:<http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:94) newApplicationContext created root context fr.ifremer.wao.WaoTopiaApplicationContext@4b0220ad
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:202) newPersistenceContext opened transaction fr.ifremer.wao.WaoTopiaPersistenceContext@696ea7f6
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:217) tearDown closing transaction fr.ifremer.wao.WaoTopiaPersistenceContext@696ea7f6
2014/05/24 12:10:14 TRACE (AbstractWaoServiceTest.java:227) tearDown closing transaction fr.ifremer.wao.WaoTopiaApplicationContext@4b0220ad
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.554 sec - in fr.ifremer.wao.services.service.InitWaoServiceTest
Results :
Tests in error:
ObsMerContactsServiceTest.testImportContacts:89 » NullPointer
ObsMerSamplingPlanServiceTest.testRecomputeSampleRowEstimatedAndRealTides:170 » NullPointer
Tests run: 23, Failures: 0, Errors: 2, Skipped: 0
[ERROR] There are test failures.
Please refer to <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…> for the individual test results.
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ wao-services ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
[INFO]
[INFO] >>> maven-source-plugin:2.2.1:jar (attach-sources) @ wao-services >>>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ wao-services ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ wao-services ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ wao-services ---
[INFO] Skipping goal (runOnce flag is on and goal was already executed).
[WARNING] Failed to getClass for org.apache.maven.plugin.source.SourceJarMojo
[INFO]
[INFO] <<< maven-source-plugin:2.2.1:jar (attach-sources) @ wao-services <<<
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ wao-services ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
[INFO]
[INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ wao-services ---
[INFO]
1 warning
[WARNING] Javadoc Warnings
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>:572: warning - @returns is an unknown tag.
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-services/ws/…>
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ wao-services ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-pgp-passphrase) @ wao-services ---
[INFO] Exporting server [gpg-signer] username in ${gpg.keyname}
[INFO] Exporting server [gpg-signer] password in ${gpg.passphrase}
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-artifacts) @ wao-services ---
[INFO] Loaded /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect-artifacts.txt
[INFO] Copying wao-services-4.0-SNAPSHOT.jar to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-services/wao-services-4.0-SNAPSHOT.jar
[INFO] Copying THIRD-PARTY.properties to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-services/THIRD-PARTY.properties
[INFO] Copying wao-services-4.0-SNAPSHOT-sources.jar to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-services/wao-services-4.0-SNAPSHOT-sources.jar
[INFO] Copying wao-services-4.0-SNAPSHOT-javadoc.jar to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-services/wao-services-4.0-SNAPSHOT-javadoc.jar
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-attachements) @ wao-services ---
[WARNING] Skipping goal (No file to collect).
[INFO]
[INFO] --- maven-gpg-plugin:1.5:sign (sign-artifacts) @ wao-services ---
[INFO]
[INFO] --- maven-dependency-plugin:2.8:analyze-only (analyze) @ wao-services ---
[INFO] Used declared dependencies found:
[INFO] org.nuiton:nuiton-csv:jar:3.0-alpha-3:compile
[INFO] org.nuiton.i18n:nuiton-i18n:jar:3.0:compile
[INFO] org.nuiton:nuiton-utils:jar:3.0-SNAPSHOT:compile
[INFO] com.github.spullara.mustache.java:compiler:jar:0.8.13:compile
[INFO] org.apache.commons:commons-email:jar:1.3.2:compile
[INFO] com.h2database:h2:jar:1.3.175:test
[INFO] fr.ifremer:wao-persistence:jar:4.0-SNAPSHOT:compile
[INFO] org.nuiton.topia:topia-persistence:jar:3.0-beta-4:compile
[INFO] org.hibernate:hibernate-core:jar:4.3.5.Final:compile
[INFO] org.apache.commons:commons-lang3:jar:3.3.2:compile
[INFO] commons-logging:commons-logging:jar:1.1.3:compile
[INFO] com.google.guava:guava:jar:16.0.1:compile
[INFO] org.apache.commons:commons-collections4:jar:4.0:compile
[INFO] commons-io:commons-io:jar:2.4:compile
[INFO] junit:junit:jar:4.11:test
[INFO] org.apache.struts.xwork:xwork-core:jar:2.3.16.1:compile
[INFO] org.mockito:mockito-core:jar:1.9.5:test
[WARNING] Used undeclared dependencies found:
[WARNING] commons-beanutils:commons-beanutils:jar:1.9.1:compile
[JENKINS] Archiving disabled
1
2
r1985 - trunk/wao-services/src/main/java/fr/ifremer/wao/services/service
by bleny@users.forge.codelutin.com 27 May '14
by bleny@users.forge.codelutin.com 27 May '14
27 May '14
Author: bleny
Date: 2014-05-27 17:31:39 +0200 (Tue, 27 May 2014)
New Revision: 1985
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1985
Log:
change Service to Sector
Modified:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java 2014-05-27 14:17:54 UTC (rev 1984)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java 2014-05-27 15:31:39 UTC (rev 1985)
@@ -171,7 +171,7 @@
String sectors = sampleRow.getSectors();
// get sector context
- ServiceContext sectorPart = facadeContext.getOrAddSectorContext(sectors);
+ SectorContext sectorPart = facadeContext.getOrAddSectorContext(sectors);
// compute nb tides per month
Map<Date, ObsMerSamplingPlan.ObsMerSamplingPlanStatistics> nbTidesPerMonth = computeNbTidesPerMonth(sampleRow);
@@ -280,19 +280,19 @@
protected String facade;
- protected Map<String, ServiceContext> sectorMap;
+ protected Map<String, SectorContext> sectorMap;
protected FacadeContext(String facade) {
this.facade = facade;
this.sectorMap = new TreeMap<>();
}
- protected ServiceContext getOrAddSectorContext(String sectors) {
- ServiceContext sectorPart = sectorMap.get(sectors);
+ protected SectorContext getOrAddSectorContext(String sectors) {
+ SectorContext sectorPart = sectorMap.get(sectors);
if (sectorPart == null) {
// register a new sector
- sectorPart = new ServiceContext(sectors);
+ sectorPart = new SectorContext(sectors);
sectorMap.put(sectors, sectorPart);
}
return sectorPart;
@@ -302,8 +302,8 @@
// get sector parts
Collection<ObsMerSamplingPlan.ObsMerSamplingPlanSectorPart> sectorParts = new ArrayList<>();
- for (ServiceContext serviceContext : sectorMap.values()) {
- ObsMerSamplingPlan.ObsMerSamplingPlanSectorPart sectorPart = serviceContext.toBean();
+ for (SectorContext sectorContext : sectorMap.values()) {
+ ObsMerSamplingPlan.ObsMerSamplingPlanSectorPart sectorPart = sectorContext.toBean();
sectorParts.add(sectorPart);
}
// sort them
@@ -318,13 +318,13 @@
}
}
- protected static class ServiceContext {
+ protected static class SectorContext {
protected String sectors;
protected Collection<ObsMerSamplingPlan.ObsMerSamplingPlanSampleRowPart> rows;
- protected ServiceContext(String sectors) {
+ protected SectorContext(String sectors) {
this.sectors = sectors;
this.rows = new ArrayList<>();
}
1
0
r1984 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao/entity wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/webapp/WEB-INF/content/obsmer
by bleny@users.forge.codelutin.com 27 May '14
by bleny@users.forge.codelutin.com 27 May '14
27 May '14
Author: bleny
Date: 2014-05-27 16:17:54 +0200 (Tue, 27 May 2014)
New Revision: 1984
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1984
Log:
refs #4487 add compliance boarding
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-05-27 13:00:46 UTC (rev 1983)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-05-27 14:17:54 UTC (rev 1984)
@@ -318,4 +318,52 @@
return data;
}
+
+ protected Map<String, Long> countByCompany(HqlAndParametersBuilder<Contact> hqlAndParametersBuilder) {
+
+ String hql = hqlAndParametersBuilder.getHql();
+
+ hql = "select c.sampleRow.company.name, count(c.topiaId) " + hql + " group by c.sampleRow.company.name order by c.sampleRow.company.name";
+
+ if (log.isDebugEnabled()) {
+ log.debug("query count by company" + hql);
+ }
+
+ List<Object[]> findAll = findAll(hql, hqlAndParametersBuilder.getHqlParameters());
+
+ Map<String, Long> countByCompany = new LinkedHashMap<>();
+ for (Object[] row : findAll) {
+ countByCompany.put((String) row[0], (long) row[1]);
+ }
+
+ return countByCompany;
+ }
+
+ public Map<String, Double> getComplianceBoardingIndicator(ContactsFilter filter) {
+
+ HqlAndParametersBuilder<Contact> hqlAndParametersBuilder = toContactHqlAndParametersBuilder(filter);
+
+ Map<String, Long> countContactsByCompany = countByCompany(hqlAndParametersBuilder);
+
+ hqlAndParametersBuilder.addWhereClause("c." + Contact.PROPERTY_NB_OBSERVANTS + " >= c.sampleRow." + SampleRow.PROPERTY_NB_OBSERVANTS);
+
+ Map<String, Long> countContactsWithComplianceByCompany = countByCompany(hqlAndParametersBuilder);
+
+ Map<String, Double> complianceBoardingIndicator = new LinkedHashMap<>();
+ for (Map.Entry<String, Long> entry : countContactsByCompany.entrySet()) {
+
+ String companyName = entry.getKey();
+ Long contactsCount = entry.getValue();
+
+ Long contactsWithComplianceCount = countContactsWithComplianceByCompany.get(companyName);
+ if (contactsWithComplianceCount == null) {
+ contactsWithComplianceCount = 0l;
+ }
+
+ Double ratio = contactsWithComplianceCount.doubleValue() / contactsCount.doubleValue();
+ complianceBoardingIndicator.put(companyName, ratio);
+ }
+
+ return complianceBoardingIndicator;
+ }
}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java 2014-05-27 13:00:46 UTC (rev 1983)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java 2014-05-27 14:17:54 UTC (rev 1984)
@@ -3,6 +3,8 @@
import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.services.utils.BarChartData;
+import java.util.Map;
+
public class ObsMerSynthesis {
protected BarChartData expectedVsActualObservationsByMonthsBarChartData;
@@ -19,6 +21,8 @@
protected int validBoardingsCount;
+ protected Map<String, Double> complianceBoardingIndicator;
+
public BarChartData getExpectedVsActualObservationsByMonthsBarChartData() {
return expectedVsActualObservationsByMonthsBarChartData;
}
@@ -74,4 +78,12 @@
public void setValidBoardingsCount(int validBoardingsCount) {
this.validBoardingsCount = validBoardingsCount;
}
+
+ public void setComplianceBoardingIndicator(Map<String, Double> complianceBoardingIndicator) {
+ this.complianceBoardingIndicator = complianceBoardingIndicator;
+ }
+
+ public Map<String, Double> getComplianceBoardingIndicator() {
+ return complianceBoardingIndicator;
+ }
}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java 2014-05-27 13:00:46 UTC (rev 1983)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java 2014-05-27 14:17:54 UTC (rev 1984)
@@ -45,10 +45,22 @@
setBoardingBoatsData(obsMerSynthesis, filter);
+ setComplianceBoardingIndicator(obsMerSynthesis, filter);
+
return obsMerSynthesis;
}
+ protected void setComplianceBoardingIndicator(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) {
+
+ ContactTopiaDao dao = getContactDao();
+
+ Map<String, Double> complianceBoardingIndicator = dao.getComplianceBoardingIndicator(filter);
+
+ obsMerSynthesis.setComplianceBoardingIndicator(complianceBoardingIndicator);
+
+ }
+
/**
* Un graphique avec, pour chaque mois, deux barres qui représentent l'effort demandé
* vs l'effort réalisé.
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-05-27 13:00:46 UTC (rev 1983)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-05-27 14:17:54 UTC (rev 1984)
@@ -101,6 +101,34 @@
<s:text name="SynthesisId.IND_COMPLIANCE_BOARDING"/>
</h2>
+ <table class="table">
+ <thead>
+ <tr>
+ <th>
+ <s:text name="wao.ui.entity.Company"/>
+ </th>
+ <th>
+ <s:text name="wao.ui.synthesis.complianceBoarding.description"/>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <s:iterator value="synthesis.complianceBoardingIndicator">
+ <tr>
+ <td>
+ <s:property value="key"/>
+ </td>
+ <td>
+ <s:property value="value * 100"/> %
+ </td>
+ </tr>
+ </s:iterator>
+ </tbody>
+ </table>
+
+ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies">
+ </s:if>
+
</article>
<article>
1
0
r1983 - in trunk/wao-web/src/main: resources/fr/ifremer/wao/web/action/obsmer webapp/WEB-INF/content/obsmer
by bleny@users.forge.codelutin.com 27 May '14
by bleny@users.forge.codelutin.com 27 May '14
27 May '14
Author: bleny
Date: 2014-05-27 15:00:46 +0200 (Tue, 27 May 2014)
New Revision: 1983
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1983
Log:
refs #4487 refs #4493 extract a component for contacts filter and use it in contacts and synthesis
Added:
trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts-filter.jsp
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp
Copied: trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties (from rev 1982, trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/ContactsAction-conversion.properties)
===================================================================
--- trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties (rev 0)
+++ trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties 2014-05-27 13:00:46 UTC (rev 1983)
@@ -0,0 +1 @@
+filter=org.nuiton.web.struts2.converters.JsonConverter
Added: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts-filter.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts-filter.jsp (rev 0)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts-filter.jsp 2014-05-27 13:00:46 UTC (rev 1983)
@@ -0,0 +1,163 @@
+<head>
+ <script>
+
+ $(document).ready(function () {
+
+ var contactsFilterMappings = [
+ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies">
+ {
+ filterName: 'sampleRowFilter.companyIds',
+ filterLabel: "<s:text name="wao.ui.entity.Company"/>",
+ filterValuesField: 'sampleRowsFilterValues.companies',
+ },
+ </s:if>
+ {
+ filterName: 'sampleRowFilter.sampleRowCodes',
+ filterLabel: "<s:text name="wao.ui.field.SampleRow.code"/>",
+ filterValuesField: 'sampleRowsFilterValues.sampleRowCodes',
+ },
+ {
+ filterName: 'sampleRowFilter.programNames',
+ filterLabel: "<s:text name="wao.ui.field.SampleRow.programName"/>",
+ filterValuesField: 'sampleRowsFilterValues.programNames',
+ },
+ {
+ filterName: 'sampleRowFilter.fishingZoneFacadeNames',
+ filterLabel: "<s:text name="wao.ui.field.FishingZone.facadeName"/>",
+ filterValuesField: 'sampleRowsFilterValues.fishingZoneFacadeNames',
+ },
+ {
+ filterName: 'sampleRowFilter.fishingZoneSectorNames',
+ filterLabel: "<s:text name="wao.ui.field.FishingZone.sectorName"/>",
+ filterValuesField: 'sampleRowsFilterValues.fishingZoneSectorNames',
+ },
+ {
+ filterName: 'sampleRowFilter.fishingGearDcfIds',
+ filterLabel: "<s:text name="wao.ui.entity.fishingGearDCF"/>",
+ filterValuesField: 'sampleRowsFilterValues.fishingGearDcfs',
+ },
+ {
+ filterName: 'sampleRowFilter.targetSpeciesDcfIds',
+ filterLabel: "<s:text name="wao.ui.entity.targetSpeciesDCF"/>",
+ filterValuesField: 'sampleRowsFilterValues.targetSpeciesDcfs',
+ },
+ {
+ filterName: 'boatFilter.boatIds',
+ filterLabel: "<s:text name="wao.ui.entity.Boat"/>",
+ filterValuesField: 'boatsFilterValues.boats',
+ minimumInputLength: 3
+ },
+ {
+ filterName: 'boatFilter.districtIds',
+ filterLabel: "<s:text name="wao.ui.field.Boat.district"/>",
+ filterValuesField: 'boatsFilterValues.districts'
+ },
+ {
+ filterName: 'observerIds',
+ filterLabel: "<s:text name="wao.ui.misc.observer"/>",
+ filterValuesField: 'observers'
+ },
+ {
+ filterName: 'contactStates',
+ filterLabel: "<s:text name="wao.ui.field.Contact.contactState"/>",
+ filterValuesField: 'contactStates'
+ },
+ {
+ filterName: 'companyAcceptations',
+ filterLabel: "<s:text name="wao.ui.field.Contact.validationCompany"/>",
+ filterValuesField: 'companyAcceptations'
+ },
+ {
+ filterName: 'programAcceptations',
+ filterLabel: "<s:text name="wao.ui.field.Contact.validationProgram"/>",
+ filterValuesField: 'programAcceptations'
+ },
+ {
+ filterName: 'observedDataControls',
+ filterLabel: "<s:text name="wao.ui.field.Contact.observedDataControl"/>",
+ filterValuesField: 'observedDataControls'
+ },
+ {
+ filterName: 'dataReliabilities',
+ filterLabel: "<s:text name="wao.ui.field.Contact.dataReliability"/>",
+ filterValuesField: 'dataReliabilities'
+ }
+ ];
+
+ filter = <s:property value="filter" escapeHtml="false"/>;
+
+ contactsFilterController2 = new FilterController2(contactsFilterMappings, filter, WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#contacts-filters-form fieldset.extra-filters'));
+ contactsFilterController2.init();
+
+ });
+
+ </script>
+</head>
+
+
+<s:form method="GET" id="contacts-filters-form" cssClass="filters-form">
+
+ <fieldset>
+
+ <s:textfield name="filter.periodFrom"
+ label="%{getText('wao.ui.form.periodFrom')}"
+ placeholder="%{getFilterPeriodFromPlaceholder()}"
+ cssClass="input-small"/>
+
+ <s:textfield name="filter.periodTo"
+ label="%{getText('wao.ui.form.period.to')}"
+ placeholder="%{getFilterPeriodToPlaceholder()}"
+ cssClass="input-small"/>
+
+ <s:checkbox name="filter.filterOnObservationBeginDate"
+ label="%{getText('wao.ui.form.filterOnObservationBeginDate')}"/>
+
+ </fieldset>
+
+ <fieldset class="extra-filters">
+
+ </fieldset>
+
+ <fieldset>
+
+ <s:checkbox name="filter.mammalsObservationOnly"
+ label="%{getText('wao.ui.misc.observations')}"/>
+
+ <s:checkbox name="filter.mammalsCaptureOnly"
+ label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/>
+
+ <s:checkbox name="filter.commentDefinedOnly"
+ label="%{getText('wao.ui.field.Contact.comment')}"/>
+
+ <s:checkbox name="filter.commentCompanyDefinedOnly"
+ label="%{getText('wao.ui.field.Contact.commentCompany')}"/>
+
+ <s:checkbox name="filter.commentAdminDefinedOnly"
+ label="%{getText('wao.ui.field.Contact.commentAdmin')}"/>
+
+ </fieldset>
+
+ <fieldset>
+
+ <s:checkbox name="filter.sortedByBoardingDate"
+ label="%{getText('wao.ui.form.sortByTideBegin')}"/>
+
+ </fieldset>
+
+ <div class="form-actions">
+
+ <s:submit type="button" cssClass="btn btn-primary">
+ <i class="icon-filter"></i> <s:text name="wao.ui.action.filter"/>
+ </s:submit>
+
+ <s:submit action="reset-contacts-filter" type="button" cssClass="btn">
+ <i class="icon-reset"></i> <s:text name="wao.ui.action.reset"/>
+ </s:submit>
+
+ <s:submit action="export-contacts" type="button" cssClass="btn">
+ <i class="icon-download"></i> <s:text name="wao.ui.action.csvExport"/>
+ </s:submit>
+
+ </div>
+
+</s:form>
\ No newline at end of file
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-05-27 12:49:58 UTC (rev 1982)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-05-27 13:00:46 UTC (rev 1983)
@@ -32,95 +32,6 @@
$(document).ready(function () {
-// var contactsFilterController = new FilterController(WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#contacts-filters-form'));
-// contactsFilterController.init();
-
- var contactsFilterMappings = [
- <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies">
- {
- filterName: 'sampleRowFilter.companyIds',
- filterLabel: "<s:text name="wao.ui.entity.Company"/>",
- filterValuesField: 'sampleRowsFilterValues.companies',
- },
- </s:if>
- {
- filterName: 'sampleRowFilter.sampleRowCodes',
- filterLabel: "<s:text name="wao.ui.field.SampleRow.code"/>",
- filterValuesField: 'sampleRowsFilterValues.sampleRowCodes',
- },
- {
- filterName: 'sampleRowFilter.programNames',
- filterLabel: "<s:text name="wao.ui.field.SampleRow.programName"/>",
- filterValuesField: 'sampleRowsFilterValues.programNames',
- },
- {
- filterName: 'sampleRowFilter.fishingZoneFacadeNames',
- filterLabel: "<s:text name="wao.ui.field.FishingZone.facadeName"/>",
- filterValuesField: 'sampleRowsFilterValues.fishingZoneFacadeNames',
- },
- {
- filterName: 'sampleRowFilter.fishingZoneSectorNames',
- filterLabel: "<s:text name="wao.ui.field.FishingZone.sectorName"/>",
- filterValuesField: 'sampleRowsFilterValues.fishingZoneSectorNames',
- },
- {
- filterName: 'sampleRowFilter.fishingGearDcfIds',
- filterLabel: "<s:text name="wao.ui.entity.fishingGearDCF"/>",
- filterValuesField: 'sampleRowsFilterValues.fishingGearDcfs',
- },
- {
- filterName: 'sampleRowFilter.targetSpeciesDcfIds',
- filterLabel: "<s:text name="wao.ui.entity.targetSpeciesDCF"/>",
- filterValuesField: 'sampleRowsFilterValues.targetSpeciesDcfs',
- },
- {
- filterName: 'boatFilter.boatIds',
- filterLabel: "<s:text name="wao.ui.entity.Boat"/>",
- filterValuesField: 'boatsFilterValues.boats',
- minimumInputLength: 3
- },
- {
- filterName: 'boatFilter.districtIds',
- filterLabel: "<s:text name="wao.ui.field.Boat.district"/>",
- filterValuesField: 'boatsFilterValues.districts'
- },
- {
- filterName: 'observerIds',
- filterLabel: "<s:text name="wao.ui.misc.observer"/>",
- filterValuesField: 'observers'
- },
- {
- filterName: 'contactStates',
- filterLabel: "<s:text name="wao.ui.field.Contact.contactState"/>",
- filterValuesField: 'contactStates'
- },
- {
- filterName: 'companyAcceptations',
- filterLabel: "<s:text name="wao.ui.field.Contact.validationCompany"/>",
- filterValuesField: 'companyAcceptations'
- },
- {
- filterName: 'programAcceptations',
- filterLabel: "<s:text name="wao.ui.field.Contact.validationProgram"/>",
- filterValuesField: 'programAcceptations'
- },
- {
- filterName: 'observedDataControls',
- filterLabel: "<s:text name="wao.ui.field.Contact.observedDataControl"/>",
- filterValuesField: 'observedDataControls'
- },
- {
- filterName: 'dataReliabilities',
- filterLabel: "<s:text name="wao.ui.field.Contact.dataReliability"/>",
- filterValuesField: 'dataReliabilities'
- }
- ];
-
- filter = <s:property value="filter" escapeHtml="false"/>;
-
- contactsFilterController2 = new FilterController2(contactsFilterMappings, filter, WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#contacts-filters-form fieldset.extra-filters'));
- contactsFilterController2.init();
-
$('#switch-compact-full-view').click(function () {
$('#switch-compact-full-view').toggleClass('full-view').toggleClass('compact-view');
$('table.contacts-list').toggleClass('full-view').toggleClass('compact-view');
@@ -155,73 +66,8 @@
<content tag="mainClass">large</content>
<content tag="contactsMenuItemClass">active</content>
-<s:form method="GET" id="contacts-filters-form" cssClass="filters-form">
+<%@include file="contacts-filter.jsp"%>
- <fieldset>
-
- <s:textfield name="filter.periodFrom"
- label="%{getText('wao.ui.form.periodFrom')}"
- placeholder="%{getFilterPeriodFromPlaceholder()}"
- cssClass="input-small"/>
-
- <s:textfield name="filter.periodTo"
- label="%{getText('wao.ui.form.period.to')}"
- placeholder="%{getFilterPeriodToPlaceholder()}"
- cssClass="input-small"/>
-
- <s:checkbox name="filter.filterOnObservationBeginDate"
- label="%{getText('wao.ui.form.filterOnObservationBeginDate')}"/>
-
- </fieldset>
-
- <fieldset class="extra-filters">
-
- </fieldset>
-
- <fieldset>
-
- <s:checkbox name="filter.mammalsObservationOnly"
- label="%{getText('wao.ui.misc.observations')}"/>
-
- <s:checkbox name="filter.mammalsCaptureOnly"
- label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/>
-
- <s:checkbox name="filter.commentDefinedOnly"
- label="%{getText('wao.ui.field.Contact.comment')}"/>
-
- <s:checkbox name="filter.commentCompanyDefinedOnly"
- label="%{getText('wao.ui.field.Contact.commentCompany')}"/>
-
- <s:checkbox name="filter.commentAdminDefinedOnly"
- label="%{getText('wao.ui.field.Contact.commentAdmin')}"/>
-
- </fieldset>
-
- <fieldset>
-
- <s:checkbox name="filter.sortedByBoardingDate"
- label="%{getText('wao.ui.form.sortByTideBegin')}"/>
-
- </fieldset>
-
- <div class="form-actions">
-
- <s:submit type="button" cssClass="btn btn-primary">
- <i class="icon-filter"></i> <s:text name="wao.ui.action.filter"/>
- </s:submit>
-
- <s:submit action="reset-contacts-filter" type="button" cssClass="btn">
- <i class="icon-reset"></i> <s:text name="wao.ui.action.reset"/>
- </s:submit>
-
- <s:submit action="export-contacts" type="button" cssClass="btn">
- <i class="icon-download"></i> <s:text name="wao.ui.action.csvExport"/>
- </s:submit>
-
- </div>
-
-</s:form>
-
<h3>
<s:text name="wao.ui.contacts.title">
<s:param value="%{pagination.nbRecords}"/>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-05-27 12:49:58 UTC (rev 1982)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-05-27 13:00:46 UTC (rev 1983)
@@ -55,6 +55,8 @@
<content tag="mainClass"></content>
+ <%@include file="contacts-filter.jsp"%>
+
<article>
<h2>
<s:text name="SynthesisId.GRAPH_SAMPLING"/>
1
0
r1982 - in trunk/wao-web/src/main: resources/fr/ifremer/wao/web/action/obsmer webapp/WEB-INF/content/obsmer
by bleny@users.forge.codelutin.com 27 May '14
by bleny@users.forge.codelutin.com 27 May '14
27 May '14
Author: bleny
Date: 2014-05-27 14:49:58 +0200 (Tue, 27 May 2014)
New Revision: 1982
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1982
Log:
refs #4487 use new filters in contacts
Added:
trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/ContactsAction-conversion.properties
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
Copied: trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/ContactsAction-conversion.properties (from rev 1977, trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/BoatsAction-conversion.properties)
===================================================================
--- trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/ContactsAction-conversion.properties (rev 0)
+++ trunk/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/ContactsAction-conversion.properties 2014-05-27 12:49:58 UTC (rev 1982)
@@ -0,0 +1 @@
+filter=org.nuiton.web.struts2.converters.JsonConverter
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-05-27 09:34:43 UTC (rev 1981)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-05-27 12:49:58 UTC (rev 1982)
@@ -32,9 +32,95 @@
$(document).ready(function () {
- var contactsFilterController = new FilterController(WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#contacts-filters-form'));
- contactsFilterController.init();
+// var contactsFilterController = new FilterController(WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#contacts-filters-form'));
+// contactsFilterController.init();
+ var contactsFilterMappings = [
+ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies">
+ {
+ filterName: 'sampleRowFilter.companyIds',
+ filterLabel: "<s:text name="wao.ui.entity.Company"/>",
+ filterValuesField: 'sampleRowsFilterValues.companies',
+ },
+ </s:if>
+ {
+ filterName: 'sampleRowFilter.sampleRowCodes',
+ filterLabel: "<s:text name="wao.ui.field.SampleRow.code"/>",
+ filterValuesField: 'sampleRowsFilterValues.sampleRowCodes',
+ },
+ {
+ filterName: 'sampleRowFilter.programNames',
+ filterLabel: "<s:text name="wao.ui.field.SampleRow.programName"/>",
+ filterValuesField: 'sampleRowsFilterValues.programNames',
+ },
+ {
+ filterName: 'sampleRowFilter.fishingZoneFacadeNames',
+ filterLabel: "<s:text name="wao.ui.field.FishingZone.facadeName"/>",
+ filterValuesField: 'sampleRowsFilterValues.fishingZoneFacadeNames',
+ },
+ {
+ filterName: 'sampleRowFilter.fishingZoneSectorNames',
+ filterLabel: "<s:text name="wao.ui.field.FishingZone.sectorName"/>",
+ filterValuesField: 'sampleRowsFilterValues.fishingZoneSectorNames',
+ },
+ {
+ filterName: 'sampleRowFilter.fishingGearDcfIds',
+ filterLabel: "<s:text name="wao.ui.entity.fishingGearDCF"/>",
+ filterValuesField: 'sampleRowsFilterValues.fishingGearDcfs',
+ },
+ {
+ filterName: 'sampleRowFilter.targetSpeciesDcfIds',
+ filterLabel: "<s:text name="wao.ui.entity.targetSpeciesDCF"/>",
+ filterValuesField: 'sampleRowsFilterValues.targetSpeciesDcfs',
+ },
+ {
+ filterName: 'boatFilter.boatIds',
+ filterLabel: "<s:text name="wao.ui.entity.Boat"/>",
+ filterValuesField: 'boatsFilterValues.boats',
+ minimumInputLength: 3
+ },
+ {
+ filterName: 'boatFilter.districtIds',
+ filterLabel: "<s:text name="wao.ui.field.Boat.district"/>",
+ filterValuesField: 'boatsFilterValues.districts'
+ },
+ {
+ filterName: 'observerIds',
+ filterLabel: "<s:text name="wao.ui.misc.observer"/>",
+ filterValuesField: 'observers'
+ },
+ {
+ filterName: 'contactStates',
+ filterLabel: "<s:text name="wao.ui.field.Contact.contactState"/>",
+ filterValuesField: 'contactStates'
+ },
+ {
+ filterName: 'companyAcceptations',
+ filterLabel: "<s:text name="wao.ui.field.Contact.validationCompany"/>",
+ filterValuesField: 'companyAcceptations'
+ },
+ {
+ filterName: 'programAcceptations',
+ filterLabel: "<s:text name="wao.ui.field.Contact.validationProgram"/>",
+ filterValuesField: 'programAcceptations'
+ },
+ {
+ filterName: 'observedDataControls',
+ filterLabel: "<s:text name="wao.ui.field.Contact.observedDataControl"/>",
+ filterValuesField: 'observedDataControls'
+ },
+ {
+ filterName: 'dataReliabilities',
+ filterLabel: "<s:text name="wao.ui.field.Contact.dataReliability"/>",
+ filterValuesField: 'dataReliabilities'
+ }
+ ];
+
+ filter = <s:property value="filter" escapeHtml="false"/>;
+
+ contactsFilterController2 = new FilterController2(contactsFilterMappings, filter, WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#contacts-filters-form fieldset.extra-filters'));
+ contactsFilterController2.init();
+
$('#switch-compact-full-view').click(function () {
$('#switch-compact-full-view').toggleClass('full-view').toggleClass('compact-view');
$('table.contacts-list').toggleClass('full-view').toggleClass('compact-view');
@@ -88,127 +174,12 @@
</fieldset>
- <fieldset>
+ <fieldset class="extra-filters">
- <s:select name="filter.sampleRowFilter.sampleRowCodes"
- label="%{getText('wao.ui.field.SampleRow.code')}"
- list="filterValues.sampleRowsFilterValues.sampleRowCodes"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="sampleRowsFilterValues.sampleRowCodes"/>
-
- <s:select name="filter.sampleRowFilter.programNames"
- label="%{getText('wao.ui.field.SampleRow.programName')}"
- list="filterValues.sampleRowsFilterValues.programNames"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="sampleRowsFilterValues.programNames"/>
-
- <s:select name="filter.sampleRowFilter.fishingZoneFacadeNames"
- label="%{getText('wao.ui.field.FishingZone.facadeName')}"
- list="filterValues.sampleRowsFilterValues.fishingZoneFacadeNames"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="sampleRowsFilterValues.fishingZoneFacadeNames"/>
-
- <s:select name="filter.sampleRowFilter.fishingZoneSectorNames"
- label="%{getText('wao.ui.field.FishingZone.sectorName')}"
- list="filterValues.sampleRowsFilterValues.fishingZoneSectorNames"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="sampleRowsFilterValues.fishingZoneSectorNames"/>
-
</fieldset>
<fieldset>
- <s:select name="filter.boatFilter.registrationCode"
- label="%{getText('wao.ui.field.Contact.boat')}"
- list="filterValues.boatRegistrationCodes"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="boatRegistrationCodes"/>
-
- <s:select name="filter.boatFilter.districtIds"
- label="%{getText('wao.ui.field.Boat.district')}"
- list="filterValues.boatsFilterValues.districts"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="boatsFilterValues.districts"/>
-
- </fieldset>
-
- <fieldset>
-
- <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies">
-
- <s:select name="filter.sampleRowFilter.companyIds"
- label="%{getText('wao.ui.entity.Company')}"
- list="filterValues.sampleRowsFilterValues.companies"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="sampleRowsFilterValues.companies"/>
-
- </s:if>
-
- <s:select name="filter.observerIds"
- label="%{getText('wao.ui.misc.observer')}"
- list="filterValues.observers"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="observers"/>
-
- <s:select name="filter.contactStates"
- label="%{getText('wao.ui.field.Contact.contactState')}"
- list="filterValues.contactStates"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="contactStates"/>
-
- <s:select name="filter.companyAcceptations"
- label="%{getText('wao.ui.field.Contact.validationCompany')}"
- list="filterValues.companyAcceptations"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="companyAcceptations"/>
-
- <s:select name="filter.programAcceptations"
- label="%{getText('wao.ui.field.Contact.validationProgram')}"
- list="filterValues.programAcceptations"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="programAcceptations"/>
- </fieldset>
-
- <fieldset>
-
- <s:select name="filter.observedDataControls"
- label="%{getText('wao.ui.field.Contact.observedDataControl')}"
- list="filterValues.observedDataControls"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="observedDataControls"/>
-
- <s:select name="filter.dataReliabilities"
- label="%{getText('wao.ui.field.Contact.dataReliability')}"
- list="filterValues.dataReliabilities"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="dataReliabilities"/>
-
<s:checkbox name="filter.mammalsObservationOnly"
label="%{getText('wao.ui.misc.observations')}"/>
@@ -223,6 +194,7 @@
<s:checkbox name="filter.commentAdminDefinedOnly"
label="%{getText('wao.ui.field.Contact.commentAdmin')}"/>
+
</fieldset>
<fieldset>
1
0
r1981 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao/entity wao-services/src/main/java/fr/ifremer/wao/services/service wao-services/src/main/resources/i18n wao-web/src/main/resources/fr/ifremer/wao/services/service wao-web/src/main/resources/i18n wao-web/src/main/webapp/WEB-INF/content/obsmer
by bleny@users.forge.codelutin.com 27 May '14
by bleny@users.forge.codelutin.com 27 May '14
27 May '14
Author: bleny
Date: 2014-05-27 11:34:43 +0200 (Tue, 27 May 2014)
New Revision: 1981
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1981
Log:
refs #4493 add boardings counts
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java
trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
trunk/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-05-27 09:34:43 UTC (rev 1981)
@@ -36,10 +36,15 @@
import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import org.nuiton.util.PagerBeanUtil;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
@@ -49,7 +54,7 @@
public List<Contact> findAll(ContactsFilter filter, boolean sort) {
- HqlAndParametersBuilder<Contact> query = toSampleRowHqlAndParametersBuilder(filter);
+ HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter);
if (sort) {
if (filter.isSortedByBoardingDate()) {
@@ -67,7 +72,7 @@
public List<Contact> find(ContactsFilter filter, TopiaPagerBean pager) {
- HqlAndParametersBuilder<Contact> query = toSampleRowHqlAndParametersBuilder(filter);
+ HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter);
// Note: pager alrady contains the sort
List<Contact> boats = find(query.getHql(), query.getHqlParameters(), pager);
@@ -76,7 +81,7 @@
public long count(ContactsFilter filter) {
- HqlAndParametersBuilder<Contact> query = toSampleRowHqlAndParametersBuilder(filter);
+ HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter);
long count = count("select count(topiaId) " + query.getHql(), query.getHqlParameters());
@@ -87,7 +92,7 @@
int pageSize,
int pageIndex) {
- HqlAndParametersBuilder<Contact> query = toSampleRowHqlAndParametersBuilder(filter);
+ HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter);
TopiaPagerBean pager = newPager(query.getHql(), query.getHqlParameters(), pageSize);
pager.setPageIndex(pageIndex);
@@ -102,7 +107,7 @@
return pager;
}
- protected HqlAndParametersBuilder<Contact> toSampleRowHqlAndParametersBuilder(ContactsFilter filter) {
+ protected HqlAndParametersBuilder<Contact> toContactHqlAndParametersBuilder(ContactsFilter filter) {
HqlAndParametersBuilder<Contact> query = newHqlAndParametersBuilder();
@@ -234,7 +239,7 @@
public SortedMap<Date, Integer> getActualObservationsByMonths(Date periodFromMonth, Date periodToMonth, ContactsFilter filter) {
- HqlAndParametersBuilder<Contact> query = toSampleRowHqlAndParametersBuilder(filter);
+ HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter);
query.addEquals(Contact.PROPERTY_STATE, ContactState.OBSERVATION_DONE.ordinal());
List<Contact> contacts = findAll(query.getHql(), query.getHqlParameters());
@@ -257,4 +262,60 @@
return actualObservationsMyMonths;
}
+
+ public Map<Boat, LinkedHashMap<String, List<Date>>> getBoardingBoats(ContactsFilter filter) {
+
+ HqlAndParametersBuilder<Contact> hqlAndParametersBuilder = toContactHqlAndParametersBuilder(filter);
+
+ hqlAndParametersBuilder.addEquals(Contact.PROPERTY_STATE, ContactState.OBSERVATION_DONE.ordinal());
+ hqlAndParametersBuilder.addLowerOrEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_AVERAGE_TIDE_TIME, 2.);
+ hqlAndParametersBuilder.setOrderByArguments("boat.name", "sampleRow.code", "observationBeginDate");
+
+ String hql = hqlAndParametersBuilder.getHql();
+
+ hql = "select c.boat, c.sampleRow.code, c.observationBeginDate " + hql;
+
+ List<Object[]> boardingsByBoat = findAll(hql, hqlAndParametersBuilder.getHqlParameters());
+
+ if (log.isDebugEnabled()) {
+ for (Object[] row : boardingsByBoat) {
+ log.debug("result in boardingsByBoat " + Arrays.toString(row));
+ }
+ }
+
+ // results like (first column is a boat entity)
+ // [AN TUAZ COZ, 2010_0043, 2009-11-19 00:00:00.0]
+ // [AN TUAZ COZ, 2010_0043, 2009-11-20 00:00:00.0]
+ // [APHRODITE, 2009_0185, 2009-09-24 00:00:00.0]
+ // [APHRODITE, 2009_0186, 2009-05-26 00:00:00.0]
+ // [APHRODITE, 2009_0186, 2009-06-23 00:00:00.0]
+ // [APHRODITE, 2009_0186, 2009-07-23 00:00:00.0]
+ // [ARC EN CIEL, 2009_0172, 2009-09-23 00:00:00.0]
+ // [ARC EN CIEL, 2009_0200, 2010-01-16 00:00:00.0]
+ // [ARC EN CIEL, 2009_0200, 2010-01-17 00:00:00.0]
+ // [ARC EN CIEL, 2009_0200, 2010-02-13 00:00:00.0]
+
+ Map<Boat, LinkedHashMap<String, List<Date>>> data = new HashMap<>();
+
+ for (Object[] row : boardingsByBoat) {
+ Boat boat = (Boat) row[0];
+ String sampleRowCode = (String) row[1];
+ Date tideBeginDate = (Date) row[2];
+
+ LinkedHashMap<String, List<Date>> value = data.get(boat);
+ if (value == null) {
+ value = new LinkedHashMap<>();
+ data.put(boat, value);
+ }
+
+ List<Date> dates = value.get(sampleRowCode);
+ if (dates == null) {
+ dates = new LinkedList<Date>();
+ value.put(sampleRowCode, dates);
+ }
+ dates.add(tideBeginDate);
+ }
+
+ return data;
+ }
}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java 2014-05-27 09:34:43 UTC (rev 1981)
@@ -1,16 +1,77 @@
package fr.ifremer.wao.services.service;
+import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.services.utils.BarChartData;
public class ObsMerSynthesis {
protected BarChartData expectedVsActualObservationsByMonthsBarChartData;
+ protected BarChartData boardingBoatsBarChartData;
+
+ protected int maxBoardingValue;
+
+ protected Boat maxBoardingBoat;
+
+ protected int boardingsCount;
+
+ protected int invalidBoardingsCount;
+
+ protected int validBoardingsCount;
+
+ public BarChartData getExpectedVsActualObservationsByMonthsBarChartData() {
+ return expectedVsActualObservationsByMonthsBarChartData;
+ }
+
public void setExpectedVsActualObservationsByMonthsBarChartData(BarChartData expectedVsActualObservationsByMonthsBarChartData) {
this.expectedVsActualObservationsByMonthsBarChartData = expectedVsActualObservationsByMonthsBarChartData;
}
- public BarChartData getExpectedVsActualObservationsByMonthsBarChartData() {
- return expectedVsActualObservationsByMonthsBarChartData;
+ public BarChartData getBoardingBoatsBarChartData() {
+ return boardingBoatsBarChartData;
}
+
+ public void setBoardingBoatsBarChartData(BarChartData boardingBoatsBarChartData) {
+ this.boardingBoatsBarChartData = boardingBoatsBarChartData;
+ }
+
+ public int getMaxBoardingValue() {
+ return maxBoardingValue;
+ }
+
+ public void setMaxBoardingValue(int maxBoardingValue) {
+ this.maxBoardingValue = maxBoardingValue;
+ }
+
+ public Boat getMaxBoardingBoat() {
+ return maxBoardingBoat;
+ }
+
+ public void setMaxBoardingBoat(Boat maxBoardingBoat) {
+ this.maxBoardingBoat = maxBoardingBoat;
+ }
+
+ public int getBoardingsCount() {
+ return boardingsCount;
+ }
+
+ public void setBoardingsCount(int boardingsCount) {
+ this.boardingsCount = boardingsCount;
+ }
+
+ public int getInvalidBoardingsCount() {
+ return invalidBoardingsCount;
+ }
+
+ public void setInvalidBoardingsCount(int invalidBoardingsCount) {
+ this.invalidBoardingsCount = invalidBoardingsCount;
+ }
+
+ public int getValidBoardingsCount() {
+ return validBoardingsCount;
+ }
+
+ public void setValidBoardingsCount(int validBoardingsCount) {
+ this.validBoardingsCount = validBoardingsCount;
+ }
}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java 2014-05-27 09:34:43 UTC (rev 1981)
@@ -2,8 +2,10 @@
import fr.ifremer.wao.ContactsFilter;
import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.ContactTopiaDao;
import fr.ifremer.wao.entity.SampleRowTopiaDao;
+import fr.ifremer.wao.entity.SynthesisId;
import fr.ifremer.wao.services.AuthenticatedWaoUser;
import fr.ifremer.wao.services.utils.BarChartData;
import fr.ifremer.wao.services.utils.ChartDataAxis;
@@ -11,9 +13,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.i18n.I18n;
+import org.nuiton.util.DateUtil;
import java.util.Calendar;
import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.SortedMap;
@@ -36,9 +41,10 @@
ObsMerSynthesis obsMerSynthesis = new ObsMerSynthesis();
- BarChartData expectedVsActualObservationsByMonthsBarChartData = getExpectedVsActualObservationsByMonthsBarChartData(filter);
- obsMerSynthesis.setExpectedVsActualObservationsByMonthsBarChartData(expectedVsActualObservationsByMonthsBarChartData);
+ setExpectedVsActualObservationsByMonthsBarChartData(obsMerSynthesis, filter);
+ setBoardingBoatsData(obsMerSynthesis, filter);
+
return obsMerSynthesis;
}
@@ -47,7 +53,7 @@
* Un graphique avec, pour chaque mois, deux barres qui représentent l'effort demandé
* vs l'effort réalisé.
*/
- protected BarChartData getExpectedVsActualObservationsByMonthsBarChartData(ContactsFilter filter) {
+ protected void setExpectedVsActualObservationsByMonthsBarChartData(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) {
Locale locale = serviceContext.getLocale();
@@ -94,7 +100,8 @@
actualObservationsMyMonthsBarChartDataSeries.addValue(tick, value);
}
- BarChartData expectedVsActualObservationsByMonthsBarChartData = new BarChartData("");
+ BarChartData expectedVsActualObservationsByMonthsBarChartData =
+ new BarChartData(I18n.l(locale, SynthesisId.GRAPH_SAMPLING.getI18nKey()));
ChartDataAxis yAxis = expectedVsActualObservationsByMonthsBarChartData.getYAxis();
yAxis.setLabel(I18n.l(locale, "wao.synthesis.observationsCount"));
@@ -103,7 +110,124 @@
expectedVsActualObservationsByMonthsBarChartData.addDotChartDataSeries(expectedObservationsByMonthsBarChartDataSeries);
expectedVsActualObservationsByMonthsBarChartData.addDotChartDataSeries(actualObservationsMyMonthsBarChartDataSeries);
- return expectedVsActualObservationsByMonthsBarChartData;
+ obsMerSynthesis.setExpectedVsActualObservationsByMonthsBarChartData(expectedVsActualObservationsByMonthsBarChartData);
}
+
+ /**
+ * We need to select the boats and for each one, the number of boardings
+ * done. The number of boardings is calculated with the number of contacts
+ * finished linked with each boat. The {@code fromDate} is used to filter
+ * results since this date. For observer view, only results for his
+ * company is needed.
+ *
+ * @return a BoardingResult which contains the number of boats for boardings
+ * and for invalid boardings from 1 to {@code MAX_BOARDINGS}, the boat with
+ * the max boarding and its value.
+ */
+ protected void setBoardingBoatsData(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) {
+
+ Locale locale = serviceContext.getLocale();
+
+ ContactTopiaDao dao = getContactDao();
+
+ Map<Boat, LinkedHashMap<String, List<Date>>> data = dao.getBoardingBoats(filter);
+
+ Map<String, Integer> mapBoarding = new LinkedHashMap<>();
+
+ // Prepare map which contains for each entry the number of boardings
+ // for the key and the number of boats for the value.
+
+ int maxBoardingCount = -1;
+ Boat maxBoardingBoat = null;
+
+ int invalidBoardingTotal = 0;
+ int boardingTotal = 0;
+
+ for (Map.Entry<Boat, LinkedHashMap<String, List<Date>>> entry : data.entrySet()) {
+ Boat boat = entry.getKey();
+ LinkedHashMap<String, List<Date>> codesAndTides = entry.getValue();
+
+ if (log.isDebugEnabled()) {
+ StringBuilder logMessage = new StringBuilder();
+ logMessage.append("in data, for boat ").append(boat.getName()).append(" tides are :");
+ for (Map.Entry<String, List<Date>> codeAndTides : codesAndTides.entrySet()) {
+ logMessage.append(codeAndTides.getKey()).append(" -> ").append(codeAndTides.getValue());
+ }
+ log.debug(logMessage.toString());
+ }
+
+ int boardingCount = 0;
+ int invalidBoardingCount = 0;
+
+ for (Map.Entry<String, List<Date>> codeAndTides : codesAndTides.entrySet()) {
+ List<Date> tides = codeAndTides.getValue();
+
+ boardingCount += tides.size();
+
+ Date lastTideBeginDate = null;
+ for (Date tideBeginDate : tides) {
+
+ if (lastTideBeginDate != null && // prevent NPE for first iteration
+ DateUtil.getDifferenceInMonths(lastTideBeginDate, tideBeginDate) <= 3) {
+
+ invalidBoardingCount += 1;
+ }
+
+ lastTideBeginDate = tideBeginDate;
+ }
+ }
+
+ invalidBoardingTotal += invalidBoardingCount;
+ boardingTotal += boardingCount;
+
+ // update max
+ if (boardingCount > maxBoardingCount) {
+ maxBoardingCount = boardingCount;
+ maxBoardingBoat = boat;
+ }
+
+ // update mapBoarding
+ String key = String.valueOf(boardingCount);
+
+ Integer oldValue = mapBoarding.get(key);
+ if (oldValue == null) {
+ oldValue = 0;
+ }
+ // add one more boat for "key" number of boardings
+ mapBoarding.put(key, oldValue + 1);
+
+ if (log.isTraceEnabled()) {
+ log.trace(boat + " made " + boardingCount + " boardings");
+ log.trace("boat " + boat.getName() + " did " + invalidBoardingCount
+ + " invalid boardings on " + boardingCount);
+ }
+ }
+
+ BarChartData.BarChartDataSeries numberOfBoatsWithBoardingsBarChartDataSeries =
+ new BarChartData.BarChartDataSeries();
+ numberOfBoatsWithBoardingsBarChartDataSeries.setLabel(I18n.l(locale, "wao.ui.chart.numberOfBoatsWithBoardings"));
+
+ for (Map.Entry<String, Integer> entry : mapBoarding.entrySet()) {
+ numberOfBoatsWithBoardingsBarChartDataSeries.addValue(entry.getKey(), entry.getValue());
+ }
+
+ BarChartData boardingBoatsBarChartData =
+ new BarChartData(I18n.l(locale, SynthesisId.GRAPH_BOARDING.getI18nKey()));
+
+ ChartDataAxis yAxis = boardingBoatsBarChartData.getYAxis();
+ yAxis.setLabel(I18n.l(locale, "wao.ui.chart.numberBoats"));
+ yAxis.setStep(10);
+
+ boardingBoatsBarChartData.addDotChartDataSeries(numberOfBoatsWithBoardingsBarChartDataSeries);
+
+ obsMerSynthesis.setMaxBoardingValue(maxBoardingCount);
+ obsMerSynthesis.setMaxBoardingBoat(maxBoardingBoat);
+ obsMerSynthesis.setBoardingsCount(boardingTotal);
+ obsMerSynthesis.setInvalidBoardingsCount(invalidBoardingTotal);
+ obsMerSynthesis.setValidBoardingsCount(boardingTotal - invalidBoardingTotal);
+
+ obsMerSynthesis.setBoardingBoatsBarChartData(boardingBoatsBarChartData);
+
+ }
}
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-05-27 09:34:43 UTC (rev 1981)
@@ -87,5 +87,7 @@
wao.synthesis.estimated=Estimated
wao.synthesis.observationsCount=Observations count
wao.synthesis.planned=Planned
+wao.ui.chart.numberBoats=Number of boats
+wao.ui.chart.numberOfBoatsWithBoardings=Number of boats with x boardings
wao.validation.sampleRow.conflictOnObserver=Observer %s cannot be associated to the line %s because he has to observer, on the same day, for row %s
wao.validation.sampleRow.observerNotInCompany=Observer %s doesn't work for company %s
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-05-27 09:34:43 UTC (rev 1981)
@@ -84,5 +84,7 @@
wao.synthesis.estimated=Estimé
wao.synthesis.observationsCount=Nombre d'observations
wao.synthesis.planned=Planifié
+wao.ui.chart.numberBoats=Nombre de navires
+wao.ui.chart.numberOfBoatsWithBoardings=Nombres de navires avec x embarquements
wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut être associé à la ligne %s car il doit observer, le même jour, pour la ligne %s
wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la société %s
Modified: trunk/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties
===================================================================
--- trunk/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties 2014-05-27 09:34:43 UTC (rev 1981)
@@ -1 +1,2 @@
expectedVsActualObservationsByMonthsBarChartData=fr.ifremer.wao.web.converter.BarChartDataConverter
+boardingBoatsBarChartData=fr.ifremer.wao.web.converter.BarChartDataConverter
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-05-27 09:34:43 UTC (rev 1981)
@@ -120,10 +120,6 @@
wao.ui.cartography.help=Click on the graphs to get the details.
wao.ui.cartography.title=Dispatching of the contacts among boat districts
wao.ui.cartography.title.company=Dispatching of the contacts among boat districts for company %s
-wao.ui.chart.boardingsSince=Queries since %s
-wao.ui.chart.numberBoats=No. boats
-wao.ui.chart.numberObservations=No. observations
-wao.ui.chart.numberOfBoatsWithBoardings=Number of boats with x observations
wao.ui.chooseUserProfile=Choose your user profile
wao.ui.contact.creation=Creation of a contact
wao.ui.contact.edition=Edition of contact
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-05-27 09:34:43 UTC (rev 1981)
@@ -120,10 +120,6 @@
wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le détail.
wao.ui.cartography.title=Répartition des contacts par quartier des navires
wao.ui.cartography.title.company=Répartition des contacts par quartier des navires pour la société %s
-wao.ui.chart.boardingsSince=Nombre de sollicitations depuis le %s
-wao.ui.chart.numberBoats=Nb navires
-wao.ui.chart.numberObservations=Nb observations
-wao.ui.chart.numberOfBoatsWithBoardings=Nombre de navires avec x embarquements
wao.ui.chooseUserProfile=Choisissez votre rôle
wao.ui.contact.creation=Création d'un contact
wao.ui.contact.edition=Modification du contact
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-05-27 08:04:11 UTC (rev 1980)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-05-27 09:34:43 UTC (rev 1981)
@@ -46,6 +46,7 @@
$(document).ready(function() {
$.jqplot('expected-vs-actual-observations-by-months-chart', <s:property value="synthesis.expectedVsActualObservationsByMonthsBarChartData" escapeHtml="false"/>);
+ $.jqplot('boarding-boats-chart', <s:property value="synthesis.boardingBoatsBarChartData" escapeHtml="false"/>);
});
@@ -62,5 +63,64 @@
<div id="expected-vs-actual-observations-by-months-chart" class="chart"></div>
</article>
+ <article>
+ <h2>
+ <s:text name="SynthesisId.GRAPH_BOARDING"/>
+ </h2>
+ <div id="boarding-boats-chart" class="chart"></div>
+
+ <p>
+ <s:text name="wao.ui.synthesis.boarding.description"/>
+ </p>
+
+ <p>
+ <s:text name="wao.ui.synthesis.boarding.mostUsedBoat">
+ <s:param value="%{synthesis.maxBoardingValue}"/>
+ <s:param value="%{synthesis.maxBoardingBoat.name}"/>
+ <s:param value="%{synthesis.maxBoardingBoat.immatriculation}"/>
+ </s:text>
+ </p>
+
+ <p>
+ <s:text name="wao.ui.synthesis.boarding.boardingCount">
+ <s:param value="%{synthesis.invalidBoardingsCount}"/>
+ <s:param value="%{synthesis.boardingsCount}"/>
+ <%--
+ <s:param value="%{synthesis.validBoardingsCount}"/>
+ --%>
+ </s:text>
+ </p>
+
+ </article>
+
+ <article>
+ <h2>
+ <s:text name="SynthesisId.IND_COMPLIANCE_BOARDING"/>
+ </h2>
+
+ </article>
+
+ <article>
+ <h2>
+ <s:text name="SynthesisId.IND_CONTACT_STATE"/>
+ </h2>
+
+ </article>
+
+ <article>
+ <h2>
+ <s:text name="SynthesisId.IND_ALLEGRO_REACTIVITY"/>
+ </h2>
+
+ </article>
+
+ <article>
+ <h2>
+ <s:text name="SynthesisId.IND_DATA_RELIABILITY"/>
+ </h2>
+
+ </article>
+
+
</html>
1
0