Coser-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
March 2014
- 4 participants
- 51 discussions
The Coser team is pleased to announce the coser-1.5-alpha-2 release!
Contrôle et Sélection RSufi
Documentation of the project can be found here:
http://doc.codelutin.com/coser
Changes
-------
Changes in this version include:
New features:
o Publier des résultats de type EchoBase et RSufi sur le site des indicateurs Issue: 4834. Thanks to Tony Chemit. Resolved by tchemit.
o Sélectionner les résultats echobase et les publier depuis le client Issue: 4833. Thanks to Tony Chemit. Resolved by tchemit.
Downloads
---------
For a manual installation, you can download files here:
https://forge.codelutin.com/projects/coser/files
* coser-1.5-alpha-2-bin.zip - https://forge.codelutin.com/attachments/download/1625
* coser-1.5-alpha-2.war - https://forge.codelutin.com/attachments/download/1626
Maven artifacts
---------------
Artifacts are deployed in nuiton maven repository
http://maven.nuiton.org/other-releases/
Have fun!
-Coser team
1
0
r1168 - in trunk: . coser-business coser-ui coser-web
by maven-release@users.forge.codelutin.com 26 Mar '14
by maven-release@users.forge.codelutin.com 26 Mar '14
26 Mar '14
Author: maven-release
Date: 2014-03-26 09:01:15 +0100 (Wed, 26 Mar 2014)
New Revision: 1168
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1168
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/coser-business/pom.xml
trunk/coser-ui/pom.xml
trunk/coser-web/pom.xml
trunk/pom.xml
Modified: trunk/coser-business/pom.xml
===================================================================
--- trunk/coser-business/pom.xml 2014-03-26 08:01:09 UTC (rev 1167)
+++ trunk/coser-business/pom.xml 2014-03-26 08:01:15 UTC (rev 1168)
@@ -5,7 +5,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-alpha-2</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/coser-ui/pom.xml
===================================================================
--- trunk/coser-ui/pom.xml 2014-03-26 08:01:09 UTC (rev 1167)
+++ trunk/coser-ui/pom.xml 2014-03-26 08:01:15 UTC (rev 1168)
@@ -5,7 +5,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-alpha-2</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/coser-web/pom.xml
===================================================================
--- trunk/coser-web/pom.xml 2014-03-26 08:01:09 UTC (rev 1167)
+++ trunk/coser-web/pom.xml 2014-03-26 08:01:15 UTC (rev 1168)
@@ -5,7 +5,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-alpha-2</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-03-26 08:01:09 UTC (rev 1167)
+++ trunk/pom.xml 2014-03-26 08:01:15 UTC (rev 1168)
@@ -10,7 +10,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-alpha-2</version>
+ <version>1.5-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Coser</name>
@@ -59,9 +59,9 @@
</modules>
<scm>
- <connection>scm:svn:https://svn.codelutin.com/coser/tags/coser-1.5-alpha-2</connection>
- <developerConnection>scm:svn:https://svn.codelutin.com/coser/tags/coser-1.5-alpha-2</developerConnection>
- <url>https://forge.codelutin.com/repositories/browse/coser/tags/coser-1.5-alpha-2</url>
+ <connection>scm:svn:https://svn.codelutin.com/coser/trunk</connection>
+ <developerConnection>scm:svn:https://svn.codelutin.com/coser/trunk</developerConnection>
+ <url>https://forge.codelutin.com/repositories/browse/coser/trunk</url>
</scm>
<distributionManagement>
<site>
1
0
Author: maven-release
Date: 2014-03-26 09:01:09 +0100 (Wed, 26 Mar 2014)
New Revision: 1167
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1167
Log:
[maven-release-plugin] copy for tag coser-1.5-alpha-2
Added:
tags/coser-1.5-alpha-2/
1
0
r1166 - in trunk: . coser-business coser-ui coser-web
by maven-release@users.forge.codelutin.com 26 Mar '14
by maven-release@users.forge.codelutin.com 26 Mar '14
26 Mar '14
Author: maven-release
Date: 2014-03-26 09:00:52 +0100 (Wed, 26 Mar 2014)
New Revision: 1166
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1166
Log:
[maven-release-plugin] prepare release coser-1.5-alpha-2
Modified:
trunk/coser-business/pom.xml
trunk/coser-ui/pom.xml
trunk/coser-web/pom.xml
trunk/pom.xml
Modified: trunk/coser-business/pom.xml
===================================================================
--- trunk/coser-business/pom.xml 2014-03-24 09:23:51 UTC (rev 1165)
+++ trunk/coser-business/pom.xml 2014-03-26 08:00:52 UTC (rev 1166)
@@ -5,7 +5,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5-alpha-2</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/coser-ui/pom.xml
===================================================================
--- trunk/coser-ui/pom.xml 2014-03-24 09:23:51 UTC (rev 1165)
+++ trunk/coser-ui/pom.xml 2014-03-26 08:00:52 UTC (rev 1166)
@@ -5,7 +5,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5-alpha-2</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/coser-web/pom.xml
===================================================================
--- trunk/coser-web/pom.xml 2014-03-24 09:23:51 UTC (rev 1165)
+++ trunk/coser-web/pom.xml 2014-03-26 08:00:52 UTC (rev 1166)
@@ -5,7 +5,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5-alpha-2</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-03-24 09:23:51 UTC (rev 1165)
+++ trunk/pom.xml 2014-03-26 08:00:52 UTC (rev 1166)
@@ -10,7 +10,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5-alpha-2</version>
<packaging>pom</packaging>
<name>Coser</name>
@@ -59,9 +59,9 @@
</modules>
<scm>
- <connection>scm:svn:https://svn.codelutin.com/coser/trunk</connection>
- <developerConnection>scm:svn:https://svn.codelutin.com/coser/trunk</developerConnection>
- <url>https://forge.codelutin.com/repositories/browse/coser/trunk</url>
+ <connection>scm:svn:https://svn.codelutin.com/coser/tags/coser-1.5-alpha-2</connection>
+ <developerConnection>scm:svn:https://svn.codelutin.com/coser/tags/coser-1.5-alpha-2</developerConnection>
+ <url>https://forge.codelutin.com/repositories/browse/coser/tags/coser-1.5-alpha-2</url>
</scm>
<distributionManagement>
<site>
1
0
r1165 - in trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase: . command
by tchemit@users.forge.codelutin.com 24 Mar '14
by tchemit@users.forge.codelutin.com 24 Mar '14
24 Mar '14
Author: tchemit
Date: 2014-03-24 10:23:51 +0100 (Mon, 24 Mar 2014)
New Revision: 1165
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1165
Log:
fix echobase requests
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBasePredicates.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetCommunityIndicatorResultDataCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesListForCommunityIndicatorResultCommand.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBasePredicates.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBasePredicates.java 2014-03-23 16:18:56 UTC (rev 1164)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBasePredicates.java 2014-03-24 09:23:51 UTC (rev 1165)
@@ -83,7 +83,7 @@
@Override
public boolean apply(String[] input) {
- String speciesCode = input[3];
+ String speciesCode = input[2];
boolean result = species.contains(speciesCode);
return result;
}
@@ -117,7 +117,7 @@
@Override
public boolean apply(String[] input) {
- String speciesCode = input[3];
+ String speciesCode = input[2];
boolean result = species.contains(speciesCode);
return result;
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java 2014-03-23 16:18:56 UTC (rev 1164)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java 2014-03-24 09:23:51 UTC (rev 1165)
@@ -195,15 +195,18 @@
public boolean matchExtractTypeList(CoserRequestExtractTypeListAware request) {
boolean result = false;
- if (isMapsResult()) {
- result = request.getExtractTypeList().contains(DataType.MAP);
- } else if (isIndicatorsResult()) {
- result = request.getExtractTypeList().contains(DataType.POPULATION) ||
- request.getExtractTypeList().contains(DataType.COMMUNITY);
+ List<DataType> extractTypeList = request.getExtractTypeList();
+ if (extractTypeList.contains(DataType.MAP)) {
+ result = isMapsResult();
}
- if (!result && isDataResult()) {
- result = request.getExtractTypeList().contains(DataType.SOURCE);
+
+ if (!result && (extractTypeList.contains(DataType.POPULATION) ||
+ extractTypeList.contains(DataType.COMMUNITY))) {
+ result = isIndicatorsResult();
}
+ if (!result && extractTypeList.contains(DataType.SOURCE)) {
+ result = isDataResult();
+ }
return result;
}
@@ -264,14 +267,14 @@
public DataStorage getPopulationIndicatorStorage() {
File file = project.getPopulationIndicatorsFile();
- // Campagne Indicateur Liste Espece Strate Annee Estimation EcartType CV
+ // Campagne;Indicateur;Espece;Strate;Annee;Estimation;EcartType;CV
DataStorage result = DataStorages.load(file);
return result;
}
public DataStorage getCommunityIndicatorStorage() {
File file = project.getCommunityIndicatorsFile();
- // Campagne Indicateur Liste Espece Strate Annee Estimation EcartType CV
+ // Campagne;Indicateur;Espece;Strate;Annee;Estimation;EcartType;CV
DataStorage result = DataStorages.load(file);
return result;
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java 2014-03-23 16:18:56 UTC (rev 1164)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java 2014-03-24 09:23:51 UTC (rev 1165)
@@ -118,7 +118,8 @@
return result;
}
- protected ExtractRawDataAndResultsResult newExtractRawDataAndResultsResult(MultiKeyMap<String, File> pdfMaps, MultiKeyMap<String, Pair<File, String>> pdfCharts) {
+ protected ExtractRawDataAndResultsResult newExtractRawDataAndResultsResult(MultiKeyMap<String, File> pdfMaps,
+ MultiKeyMap<String, Pair<File, String>> pdfCharts) {
ExtractRawDataAndResultsResult result = new ExtractRawDataAndResultsResult(
repository.getId(), pdfMaps, pdfCharts);
return result;
@@ -134,7 +135,7 @@
DataStorageWalker walker = new DataStorageWalker() {
@Override
public void onRow(String... tuple) {
- String speciesCode = tuple[3];
+ String speciesCode = tuple[2];
result.add(speciesCode);
}
};
@@ -148,7 +149,7 @@
DataStorageWalker walker = new DataStorageWalker() {
@Override
public void onRow(String... tuple) {
- String speciesCode = tuple[3];
+ String speciesCode = tuple[2];
speciesList.add(speciesCode);
}
};
@@ -163,7 +164,7 @@
DataStorageWalker walker = new DataStorageWalker() {
@Override
public void onRow(String... tuple) {
- String speciesCode = tuple[3];
+ String speciesCode = tuple[2];
speciesList.add(speciesCode);
}
};
@@ -172,6 +173,21 @@
return result;
}
+ protected Map<String, String> getCommunitySpeciesMap(String indicator) {
+ final Set<String> speciesList = Sets.newHashSet();
+
+ DataStorageWalker walker = new DataStorageWalker() {
+ @Override
+ public void onRow(String... tuple) {
+ String speciesCode = tuple[2];
+ speciesList.add(speciesCode);
+ }
+ };
+ walkOnCommunity(EchoBasePredicates.communityIndicatorPredicate(indicator),walker);
+ Map<String, String> result = repository.getSpeciesMap().getSpeciesSubMap(speciesList);
+ return result;
+ }
+
protected Map<String, String> getMapSpeciesMap() {
Map<String, String> result = repository.getMapSpecies();
return result;
@@ -300,6 +316,11 @@
Charts.ExtractGraphDataWalker walker = new Charts.ExtractGraphDataWalker() {
@Override
+ protected String getYearData(String... tuple) {
+ return tuple[4];
+ }
+
+ @Override
protected String getEstimationData(String... tuple) {
return tuple[5];
}
@@ -308,11 +329,6 @@
protected String getEcartData(String... tuple) {
return tuple[6];
}
-
- @Override
- protected String getYearData(String... tuple) {
- return tuple[4];
- }
};
walkOnCommunity(predicate, walker);
@@ -344,18 +360,18 @@
Charts.ExtractGraphDataWalker walker = new Charts.ExtractGraphDataWalker() {
@Override
- protected String getEstimationData(String... tuple) {
- return tuple[6];
+ protected String getYearData(String... tuple) {
+ return tuple[4];
}
@Override
- protected String getEcartData(String... tuple) {
- return tuple[7];
+ protected String getEstimationData(String... tuple) {
+ return tuple[5];
}
@Override
- protected String getYearData(String... tuple) {
- return tuple[5];
+ protected String getEcartData(String... tuple) {
+ return tuple[6];
}
};
walkOnPopulation(predicate, walker);
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetCommunityIndicatorResultDataCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetCommunityIndicatorResultDataCommand.java 2014-03-23 16:18:56 UTC (rev 1164)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetCommunityIndicatorResultDataCommand.java 2014-03-24 09:23:51 UTC (rev 1165)
@@ -85,21 +85,6 @@
FileUtils.copyFile(csvFile, csvFileCopied);
FileUtils.forceDelete(csvFile);
- //TODO See what to generate here (we don't have any selection in echobase results).
-// // ajout du fichier d'information sur les espèces incluses dans
-// // les calculs des indicateurs de communautés
-// // load project (without data to get reftax data)
-// Project project = path.getProject();
-// Selection selection = path.getSelection();
-// File metaFile = webService.generateMetaFilePDF(project,
-// selection,
-// resultDirectory,
-// rSufiResult,
-// indicator,
-// locale);
-// File metaFileCopied = new File(baseDir, "Information.pdf");
-// FileUtils.copyFile(metaFile, metaFileCopied);
-
// make zip
File result = File.createTempFile("coser-chart-community-indicator", ".zip");
result.deleteOnExit();
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesListForCommunityIndicatorResultCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesListForCommunityIndicatorResultCommand.java 2014-03-23 16:18:56 UTC (rev 1164)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesListForCommunityIndicatorResultCommand.java 2014-03-24 09:23:51 UTC (rev 1165)
@@ -53,7 +53,7 @@
@Override
public MapResult execute(GetSpeciesListForCommunityIndicatorResultRequest request) {
- Map<String, String> map = getCommunitySpeciesMap();
+ Map<String, String> map = getCommunitySpeciesMap(request.getIndicator());
MapResult result = newMapResult(map);
return result;
1
0
Author: tchemit
Date: 2014-03-23 17:18:56 +0100 (Sun, 23 Mar 2014)
New Revision: 1164
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1164
Log:
fix demo deploy
Modified:
trunk/coser-web/pom.xml
Modified: trunk/coser-web/pom.xml
===================================================================
--- trunk/coser-web/pom.xml 2014-03-23 13:53:47 UTC (rev 1163)
+++ trunk/coser-web/pom.xml 2014-03-23 16:18:56 UTC (rev 1164)
@@ -32,6 +32,9 @@
<!-- i18n configuration -->
<i18n.bundleOutputName>${coserI18nBundle}</i18n.bundleOutputName>
+ <!-- deploy configuration -->
+ <deployFiles>target/coser-${project.version}.war</deployFiles>
+
<!-- Post Release configuration -->
<skipPostRelease>false</skipPostRelease>
</properties>
1
0
r1163 - in trunk: coser-business/src/main/java/fr/ifremer/coser coser-business/src/main/java/fr/ifremer/coser/command coser-business/src/main/java/fr/ifremer/coser/services coser-ui/src/main/java/fr/ifremer/coser coser-ui/src/main/java/fr/ifremer/coser/ui/publication coser-ui/src/main/java/fr/ifremer/coser/ui/result coser-ui/src/main/java/fr/ifremer/coser/ui/util
by tchemit@users.forge.codelutin.com 23 Mar '14
by tchemit@users.forge.codelutin.com 23 Mar '14
23 Mar '14
Author: tchemit
Date: 2014-03-23 14:53:47 +0100 (Sun, 23 Mar 2014)
New Revision: 1163
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1163
Log:
fix build + usage of StringBuilder instead of StringBuffer
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java
trunk/coser-business/src/main/java/fr/ifremer/coser/command/MergeSpeciesCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/ErrorHelper.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -74,7 +74,7 @@
* @return string
*/
public static String convertBracketString(List<String> args) {
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
Iterator<String> itArgs = args.iterator();
while (itArgs.hasNext()) {
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/command/MergeSpeciesCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/command/MergeSpeciesCommand.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/command/MergeSpeciesCommand.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -134,7 +134,7 @@
if (specyFound) {
// compute key (attention a ne pas prendre en compte l'espece : elle change)
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int tupleIndex = 0 ; tupleIndex < tuple.length; ++tupleIndex) {
if (tupleIndex == Length.INDEX_SURVEY || tupleIndex == Length.INDEX_YEAR ||
tupleIndex == Length.INDEX_HAUL || tupleIndex == Length.INDEX_SEX ||
@@ -268,7 +268,7 @@
if (specyFound) {
// compute key (attention a ne pas prendre en compte l'espece : elle change)
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int tupleIndex = 0 ; tupleIndex < tuple.length; ++tupleIndex) {
if (tupleIndex == Catch.INDEX_SURVEY || tupleIndex == Catch.INDEX_YEAR ||
tupleIndex == Catch.INDEX_HAUL) {
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -516,7 +516,7 @@
}
// compute key
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int tupleIndex = 0 ; tupleIndex < tuple.length; ++tupleIndex) {
if (tupleIndex == Catch.INDEX_YEAR || tupleIndex == Catch.INDEX_HAUL) {
sb.append(tuple[tupleIndex]).append(';');
@@ -802,7 +802,7 @@
}
// compute key
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int tupleIndex = 0 ; tupleIndex < tuple.length; ++tupleIndex) {
if (tupleIndex == Length.INDEX_YEAR || tupleIndex == Length.INDEX_HAUL ||
tupleIndex == Length.INDEX_SPECIES) {
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -58,7 +58,7 @@
if (log.isErrorEnabled()) {
log.error("Global application exception", ex);
}
- ErrorHelper errorHelper = new ErrorHelper(Coser.coserConfig);
+ ErrorHelper errorHelper = new ErrorHelper();
errorHelper.showErrorDialog(null, ex.getMessage(), ex);
}
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -212,7 +212,7 @@
} catch (Exception ex) {
//throw new CoserException("Can't get upload status", ex);
// FIXME chatellier 20110126 le dispatch global marche pas ? :(
- ErrorHelper errorHelper = new ErrorHelper(view.getContextValue(CoserConfig.class));
+ ErrorHelper errorHelper = new ErrorHelper();
errorHelper.showErrorDialog(view, ex.getMessage(), ex);
} finally {
setDefaultCursor(view);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -208,7 +208,7 @@
catch (Exception ex) {
//throw new CoserException("Can't get upload status", ex);
// FIXME chatellier 20110126 le dispatch global marche pas ? :(
- ErrorHelper errorHelper = new ErrorHelper(view.getContextValue(CoserConfig.class));
+ ErrorHelper errorHelper = new ErrorHelper();
errorHelper.showErrorDialog(view, ex.getMessage(), ex);
}
finally {
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/ErrorHelper.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/ErrorHelper.java 2014-03-23 13:32:50 UTC (rev 1162)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/ErrorHelper.java 2014-03-23 13:53:47 UTC (rev 1163)
@@ -34,6 +34,7 @@
import javax.swing.JOptionPane;
+import fr.ifremer.coser.CoserUIApplicationContext;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -63,8 +64,8 @@
protected CoserConfig coserConfig;
- public ErrorHelper(CoserConfig coserConfig) {
- this.coserConfig = coserConfig;
+ public ErrorHelper() {
+ this.coserConfig = CoserUIApplicationContext.get().getConfig();
}
/**
@@ -126,7 +127,7 @@
email.addReplyTo("no-reply(a)forge.codelutin.com");
// message description
- StringBuffer message = new StringBuffer();
+ StringBuilder message = new StringBuilder();
message.append(formatMessage("Project", "Coser " + coserConfig.getApplicationVersion()));
message.append(formatMessage("Date", new Date().toString()));
message.append(formatMessage("Title", errorInfo.getTitle()));
@@ -139,7 +140,11 @@
for (String propertyName : propertiesNames) {
// security, don't send string containing password :
if (!propertyName.contains("pass")) {
- message.append("\t" + propertyName + " : " + coserConfig.getOptions().getProperty(propertyName) + "\n");
+ message.append("\t");
+ message.append(propertyName);
+ message.append(" : ");
+ message.append(coserConfig.getOptions().getProperty(propertyName));
+ message.append("\n");
}
}
1
0
23 Mar '14
Author: tchemit
Date: 2014-03-23 14:32:50 +0100 (Sun, 23 Mar 2014)
New Revision: 1162
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1162
Log:
- refs #4690 (s?\195?\169paration des projets rsufi - echobase pour le client)
- api json pour interroger la configuration (pour echobase)
- suppression des cast inutiles
- am?\195?\169lioration de la configuration de la partie (ajout package auth, plus de convention, ...)
Added:
trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserUIApplicationContext.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/package-info.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginInterceptor.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LogoutAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/PerformLoginAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/package-info.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserJspAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/AbstractCoserJsonAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetFacadesAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetIndicatorsAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetZonesForFacadeAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/package-info.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/interceptors/
trunk/coser-web/src/main/webapp/WEB-INF/content/auth/
trunk/coser-web/src/main/webapp/WEB-INF/content/auth/login.jsp
Removed:
trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceFactory.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginInterceptor.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/PerformLoginAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CoserAction.java
trunk/coser-web/src/main/webapp/WEB-INF/content/admin/login.jsp
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/IndicatorMap.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/CommonService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java
trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultTableModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultZoneRenderer.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/widgets/AccordionPane.java
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
trunk/coser-web/pom.xml
trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/DocumentsAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/DeleteProjectsAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/IndexAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ListProjectsAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ReloadProjectsAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/search/ExtractAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java
trunk/coser-web/src/main/resources/struts.xml
trunk/pom.xml
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -22,7 +22,9 @@
package fr.ifremer.coser;
-import static org.nuiton.i18n.I18n.t;
+import org.apache.commons.io.IOUtils;
+import org.nuiton.config.ApplicationConfig;
+import org.nuiton.config.ConfigOptionDef;
import java.io.File;
import java.io.FileInputStream;
@@ -36,18 +38,16 @@
import java.util.Locale;
import java.util.Properties;
-import org.apache.commons.io.IOUtils;
-import org.nuiton.config.ApplicationConfig;
-import org.nuiton.config.ConfigOptionDef;
+import static org.nuiton.i18n.I18n.n;
/**
* Coser business application config.
- *
+ *
* @author chatellier
* @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
*/
public class CoserBusinessConfig extends ApplicationConfig {
@@ -89,11 +89,29 @@
setOption(CoserBusinessOption.PROJECTS_DIRECTORY.key, projectDirectory);
}
+ public File getRSufiProjectsDirectory() {
+ File result = getOptionAsFile(CoserBusinessOption.RSUFI_PROJECTS_DIRECTORY.key);
+ return result;
+ }
+
+ public void setRSufiProjectsDirectory(String projectDirectory) {
+ setOption(CoserBusinessOption.RSUFI_PROJECTS_DIRECTORY.key, projectDirectory);
+ }
+
+ public File getEchoBaseProjectsDirectory() {
+ File result = getOptionAsFile(CoserBusinessOption.ECHOBASE_PROJECTS_DIRECTORY.key);
+ return result;
+ }
+
+ public void setEchoBaseProjectsDirectory(String projectDirectory) {
+ setOption(CoserBusinessOption.ECHOBASE_PROJECTS_DIRECTORY.key, projectDirectory);
+ }
+
public File getValidatorsDirectory() {
File result = getOptionAsFile(CoserBusinessOption.VALIDATOR_DIRECTORY.key);
return result;
}
-
+
public void setValidatorsDirectory(String validatorDirectory) {
setOption(CoserBusinessOption.VALIDATOR_DIRECTORY.key, validatorDirectory);
}
@@ -120,7 +138,7 @@
String result = getOption(CoserBusinessOption.REFERENCE_SPECIES.key);
return result;
}
-
+
public void setReferenceSpeciesPath(String referenceSpeciesPath) {
setOption(CoserBusinessOption.REFERENCE_SPECIES.key, referenceSpeciesPath);
}
@@ -129,7 +147,7 @@
String result = getOption(CoserBusinessOption.REFERENCE_TYPE_ESPECES.key);
return result;
}
-
+
public void setReferenceTypeEspecesPath(String referenceTypeEspecesPath) {
setOption(CoserBusinessOption.REFERENCE_TYPE_ESPECES.key, referenceTypeEspecesPath);
}
@@ -138,7 +156,7 @@
double result = getOptionAsDouble(CoserBusinessOption.CONTROL_NOBSMIN.key);
return result;
}
-
+
public void setControlNobsmin(double controlNobsmin) {
setOption(CoserBusinessOption.CONTROL_NOBSMIN.key, String.valueOf(controlNobsmin));
}
@@ -147,7 +165,7 @@
double result = getOptionAsDouble(CoserBusinessOption.CONTROL_DIFF_CATCH_LENGTH.key);
return result;
}
-
+
public void setControlDiffCatchLength(double controlDiffCatchLength) {
setOption(CoserBusinessOption.CONTROL_DIFF_CATCH_LENGTH.key, String.valueOf(controlDiffCatchLength));
}
@@ -156,7 +174,7 @@
String result = getOption(CoserBusinessOption.CONTROL_TYPE_FISH.key);
return result;
}
-
+
public void setControlTypeFish(String controlTypeFish) {
setOption(CoserBusinessOption.CONTROL_TYPE_FISH.key, controlTypeFish);
}
@@ -173,7 +191,7 @@
double result = getOptionAsDouble(CoserBusinessOption.SELECTION_FILTER_OCCURRENCE.key);
return result;
}
-
+
public void setSelectionOccurrenceFilter(double selectionOccurrenceFilter) {
setOption(CoserBusinessOption.SELECTION_FILTER_OCCURRENCE.key, String.valueOf(selectionOccurrenceFilter));
}
@@ -182,7 +200,7 @@
double result = getOptionAsDouble(CoserBusinessOption.SELECTION_FILTER_DENSITY.key);
return result;
}
-
+
public void setSelectionDensityFilter(double selectionDensityFilter) {
setOption(CoserBusinessOption.SELECTION_FILTER_DENSITY.key, String.valueOf(selectionDensityFilter));
}
@@ -225,7 +243,7 @@
File result = getOptionAsFile(CoserBusinessOption.WEB_INDICATORS.key);
return result;
}
-
+
public void setWebIndicatorsFile(String indicatorsFile) {
setOption(CoserBusinessOption.WEB_INDICATORS.key, indicatorsFile);
}
@@ -234,7 +252,7 @@
File result = getOptionAsFile(CoserBusinessOption.WEB_ZONES.key);
return result;
}
-
+
public void setWebZonesFile(String zoneFile) {
setOption(CoserBusinessOption.WEB_ZONES.key, zoneFile);
}
@@ -247,7 +265,7 @@
/**
* Retourne la date de dernière mise à jour des données du site web.
- *
+ * <p/>
* Retourne une date bidon, si pas de dernière mise à jour.
*
* @return last data update date
@@ -272,8 +290,7 @@
stream.close();
} catch (IOException ex) {
throw new CoserTechnicalException("Can't read properties file", ex);
- }
- finally {
+ } finally {
IOUtils.closeQuietly(stream);
}
}
@@ -316,39 +333,44 @@
public static enum CoserBusinessOption implements ConfigOptionDef {
- DATABASE_DIRECTORY("coser.database.directory", t("coser.config.database.directory.description"), File.class, "${user.home}" + File.separator + "coser"),
- PROJECTS_DIRECTORY("coser.projects.directory", t("coser.config.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "projects"),
- VALIDATOR_DIRECTORY("coser.validator.directory", t("coser.config.validator.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "validators"),
+ DATABASE_DIRECTORY("coser.database.directory", n("coser.config.database.directory.description"), File.class, "${user.home}" + File.separator + "coser"),
+ PROJECTS_DIRECTORY("coser.projects.directory", n("coser.config.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "projects"),
+ RSUFI_PROJECTS_DIRECTORY("coser.projects.rsufi.directory", n("coser.config.projects.rsufi.directory.description"), File.class, "${" + PROJECTS_DIRECTORY.key + "}" + File.separator + "rsufi"),
+ ECHOBASE_PROJECTS_DIRECTORY("coser.projects.echobase.directory", n("coser.config.projects.echobase.directory.description"), File.class, "${" + PROJECTS_DIRECTORY.key + "}" + File.separator + "echobase"),
+ VALIDATOR_DIRECTORY("coser.validator.directory", n("coser.config.validator.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "validators"),
- SMTP_HOST("coser.smtp.host", t("coser.config.smtp.host.description"),String.class , "smtp"),
- LOCALE("coser.locale", t("coser.config.locale.description"), Locale.class, Locale.FRANCE.toString()),
+ SMTP_HOST("coser.smtp.host", n("coser.config.smtp.host.description"), String.class, "smtp"),
+ LOCALE("coser.locale", n("coser.config.locale.description"), Locale.class, Locale.FRANCE.toString()),
- REFERENCE_SPECIES("coser.reference.species", t("coser.config.reference.species.description"), String.class, ""),
- REFERENCE_TYPE_ESPECES("coser.reference.typeSpecies", t("coser.config.reference.typeSpecies.description"), String.class, ""),
+ REFERENCE_SPECIES("coser.reference.species", n("coser.config.reference.species.description"), String.class, ""),
+ REFERENCE_TYPE_ESPECES("coser.reference.typeSpecies", n("coser.config.reference.typeSpecies.description"), String.class, ""),
- CONTROL_NOBSMIN("coser.control.nobsmin", t("coser.config.control.nobsmin.description"), Float.class, "1.0"),
- CONTROL_DIFF_CATCH_LENGTH("coser.control.diffcatchlength", t("coser.config.control.diffcatchlength.description"), Float.class, "5.0"),
- CONTROL_TYPE_FISH("coser.control.typeFish", t("coser.config.control.typeFish.description"), String.class, "Pisces + Agnatha"),
- CONTROL_STANDARD_DEVIATION_TO_AVERAGE("coser.control.standarddeviationtoaverage", t("coser.config.control.standarddeviationtoaverage.description"), Integer.class, "3"),
- SELECTION_FILTER_OCCURRENCE("coser.selection.occurrenceFilter", t("coser.config.selection.occurrenceFilter.description"),Float.class , "5.0"),
- SELECTION_FILTER_DENSITY("coser.selection.densityFilter", t("coser.config.selection.densityFilter.description"), Float.class, "5.0"),
+ CONTROL_NOBSMIN("coser.control.nobsmin", n("coser.config.control.nobsmin.description"), Float.class, "1.0"),
+ CONTROL_DIFF_CATCH_LENGTH("coser.control.diffcatchlength", n("coser.config.control.diffcatchlength.description"), Float.class, "5.0"),
+ CONTROL_TYPE_FISH("coser.control.typeFish", n("coser.config.control.typeFish.description"), String.class, "Pisces + Agnatha"),
+ CONTROL_STANDARD_DEVIATION_TO_AVERAGE("coser.control.standarddeviationtoaverage", n("coser.config.control.standarddeviationtoaverage.description"), Integer.class, "3"),
+ SELECTION_FILTER_OCCURRENCE("coser.selection.occurrenceFilter", n("coser.config.selection.occurrenceFilter.description"), Float.class, "5.0"),
+ SELECTION_FILTER_DENSITY("coser.selection.densityFilter", n("coser.config.selection.densityFilter.description"), Float.class, "5.0"),
/** Client side. */
- WEB_FRONT_END("coser.web.frontend", t("coser.config.web.frontend.description"), URL.class, "http://www.ifremer.fr/SIH-indices-campagnes"),
- WEB_UPLOAD_URL("coser.web.uploadurl", t("coser.config.web.uploadurl.description"), URL.class, "${" + WEB_FRONT_END.key + "}/upload-result.action"),
+ WEB_FRONT_END("coser.web.frontend", n("coser.config.web.frontend.description"), URL.class, "http://www.ifremer.fr/SIH-indices-campagnes"),
+ WEB_UPLOAD_URL("coser.web.uploadurl", n("coser.config.web.uploadurl.description"), URL.class, "${" + WEB_FRONT_END.key + "}/upload-result.action"),
/** Server side. */
- WEB_PROPERTIES_FILE("coser.web.properties.file", t("coser.config.web.properties.file.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "web.properties"),
- WEB_INDICATORS_PROJECTS_DIRECTORY("coser.web.indicators.projects.directory", t("coser.config.web.indicators.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicatorsprojects"),
- WEB_MAPS_PROJECTS_DIRECTORY("coser.web.maps.projects.directory", t("coser.config.web.maps.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webmapsprojects"),
- WEB_ECHOBASE_PROJECTS_DIRECTORY("coser.web.echobase.projects.directory", t("coser.config.web.echobase.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webechobaseprojects"),
- WEB_INDICATORS("coser.web.indicators.file", t("coser.config.web.indicators.file.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicators.csv"),
- WEB_ZONES("coser.web.zones.file", t("coser.config.web.zones.file.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webzones.csv"),
- WEB_PUBLICATION_EMAIL("coser.web.newresult.emails", t("coser.config.web.newresult.emails.description"), String.class, null);
+ WEB_PROPERTIES_FILE("coser.web.properties.file", n("coser.config.web.properties.file.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "web.properties"),
+ WEB_INDICATORS_PROJECTS_DIRECTORY("coser.web.indicators.projects.directory", n("coser.config.web.indicators.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicatorsprojects"),
+ WEB_MAPS_PROJECTS_DIRECTORY("coser.web.maps.projects.directory", n("coser.config.web.maps.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webmapsprojects"),
+ WEB_ECHOBASE_PROJECTS_DIRECTORY("coser.web.echobase.projects.directory", n("coser.config.web.echobase.projects.directory.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webechobaseprojects"),
+ WEB_INDICATORS("coser.web.indicators.file", n("coser.config.web.indicators.file.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicators.csv"),
+ WEB_ZONES("coser.web.zones.file", n("coser.config.web.zones.file.description"), File.class, "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webzones.csv"),
+ WEB_PUBLICATION_EMAIL("coser.web.newresult.emails", n("coser.config.web.newresult.emails.description"), String.class, null);
private final String key;
+
private final String description;
+
private final String defaultValue;
+
private final Class<?> type;
private CoserBusinessOption(String key, String description, Class<?> type, String defaultValue) {
@@ -399,7 +421,5 @@
public Class<?> getType() {
return type;
}
-
-
}
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/IndicatorMap.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/IndicatorMap.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/IndicatorMap.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -88,6 +88,11 @@
*/
protected final MultiKeyMap<String, String> map;
+ /**
+ * Set of indicator ids.
+ */
+ protected final Set<String> ids;
+
public IndicatorMap(File indicatorsFile) {
Preconditions.checkNotNull(indicatorsFile);
Preconditions.checkArgument(indicatorsFile.exists(), "Indicator file: " + indicatorsFile + " does not exist.");
@@ -96,20 +101,27 @@
log.info("Loading Indicator file: " + indicatorsFile);
}
this.map = new MultiKeyMap<String, String>();
+ final Set<String> indicatorIs = Sets.newHashSet();
DataStorage storage = DataStorages.load(indicatorsFile);
DataStorages.walk(storage, new DataStorageWalker() {
@Override
public void onRow(String... row) {
String indicatorCode = row[0];
+ indicatorIs.add(indicatorCode);
map.put(indicatorCode, KEY_FRENCH, row[1]);
map.put(indicatorCode, KEY_ENGLISH, row[2]);
map.put(indicatorCode, KEY_SPANISH, row[3]);
map.put(indicatorCode, KEY_UNIT, row[4]);
}
});
+ this.ids = Collections.unmodifiableSet(indicatorIs);
}
+ public Set<String> getIds() {
+ return ids;
+ }
+
public String getIndicatorValue(Locale locale, String indicator) {
Preconditions.checkNotNull(locale);
Preconditions.checkNotNull(indicator);
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -111,30 +111,33 @@
boolean onlyPubliableResult) throws CoserBusinessException {
List<GlobalResult> results = Lists.newArrayList();
- // loop on projets
- File projectsDirectory = config.getProjectsDirectory();
- File[] projects = projectsDirectory.listFiles();
- if (projects != null) {
- for (File existingProject : projects) {
+ File rsufiProjectsDirectory = config.getRSufiProjectsDirectory();
+ File[] rsufiProjects = rsufiProjectsDirectory.listFiles();
+ if (rsufiProjects != null) {
+ for (File existingProject : rsufiProjects) {
if (existingProject.isDirectory()) {
- if (GlobalResult.isEchobaseProject(existingProject)) {
+ Collection<GlobalResult> rsufiResults =
+ getRsufiResults(existingProject,
+ beginDate,
+ endDate,
+ onlyPubliableResult);
+ results.addAll(rsufiResults);
+ }
+ }
+ }
- Collection<GlobalResult> echoBaseResults =
- getEchoBaseResults(existingProject,
- beginDate,
- endDate,
- onlyPubliableResult);
- results.addAll(echoBaseResults);
- } else {
-
- Collection<GlobalResult> rsufiResults =
- getRsufiResults(existingProject,
- beginDate,
- endDate,
- onlyPubliableResult);
- results.addAll(rsufiResults);
- }
+ File echoBaseProjectsDirectory = config.getEchoBaseProjectsDirectory();
+ File[] echoBaseProjects = echoBaseProjectsDirectory.listFiles();
+ if (echoBaseProjects != null) {
+ for (File existingProject : echoBaseProjects) {
+ if (existingProject.isDirectory()) {
+ Collection<GlobalResult> echoBaseResults =
+ getEchoBaseResults(existingProject,
+ beginDate,
+ endDate,
+ onlyPubliableResult);
+ results.addAll(echoBaseResults);
}
}
}
@@ -382,7 +385,7 @@
Selection selection = selectedResult.getSelection();
RSufiResult rsufiResult = selectedResult.getRsufiResult();
- File projectDirectory = new File(config.getProjectsDirectory(), project.getName());
+ File projectDirectory = new File(config.getRSufiProjectsDirectory(), project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
File resultsDirectory = new File(selectionDirectory, CoserConstants.STORAGE_RESULTS_DIRECTORY);
@@ -506,7 +509,7 @@
Preconditions.checkNotNull(extractDirectory);
try {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File rsufiDirectory = new File(extractDirectory, LegacyResultRepositoryType.ID);
FileUtils.forceMkdir(rsufiDirectory);
@@ -521,7 +524,7 @@
project = projectService.openProject(project.getName());
OneRSufiResultFileFilter oneRFF = new OneRSufiResultFileFilter(
- config.getProjectsDirectory(),
+ projectsDirectory,
project,
path.getSelection(),
path.getRsufiResult(),
@@ -561,7 +564,7 @@
Preconditions.checkNotNull(extractDirectory);
try {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getEchoBaseProjectsDirectory();
File echobaseDirectory = new File(extractDirectory, EchoBaseResultRepositoryType.ID);
FileUtils.forceMkdir(echobaseDirectory);
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/CommonService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/CommonService.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/CommonService.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -501,7 +501,7 @@
return new HashMap<String, String[]>();
}
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File originalDirectory = new File(projectDirectory, CoserConstants.STORAGE_ORIGINAL_DIRECTORY);
String storageFileName = getDataStorageFileName(project, category, null);
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -132,7 +132,7 @@
* @return projects list
*/
public List<String> getProjectNames() {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
List<String> result = new ArrayList<String>();
File[] projects = projectsDirectory.listFiles();
if (projects != null) {
@@ -165,7 +165,7 @@
* @throws CoserBusinessException if project can't be created
*/
public Project createProject(Project project, Map<Category, File> categoriesAndFiles, List<File> maps, ProgressMonitor progress) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
if (!projectsDirectory.isDirectory()) {
projectsDirectory.mkdirs();
}
@@ -278,7 +278,7 @@
* @throws CoserBusinessException
*/
public void saveProject(Project project, List<File> maps) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
String projectName = project.getName();
File projectDirectory = new File(projectsDirectory, projectName);
@@ -394,7 +394,7 @@
// check project existence
File projectsDirectory = parentDirectory;
if (projectsDirectory == null) {
- projectsDirectory = config.getProjectsDirectory();
+ projectsDirectory = config.getRSufiProjectsDirectory();
}
File projectDirectory = new File(projectsDirectory, projectName);
if (!projectDirectory.isDirectory()) {
@@ -604,7 +604,7 @@
*/
public Project loadControlData(Project project) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
// first free memory, clear all data
@@ -717,7 +717,7 @@
* @throws CoserBusinessException
*/
public Project loadSelectionData(Project project, Selection selection) throws CoserBusinessException {
- return loadSelectionData(config.getProjectsDirectory(), project, selection);
+ return loadSelectionData(config.getRSufiProjectsDirectory(), project, selection);
}
/**
@@ -791,7 +791,7 @@
public void saveProjectControl(Project project) throws CoserBusinessException {
// tout ce qui suit doit exister à ce stade
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
String projectName = project.getName();
File projectDirectory = new File(projectsDirectory, projectName);
@@ -865,7 +865,7 @@
saveProjectControl(project);
// generate control file as pdf
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File controlDirectory = new File(projectDirectory, CoserConstants.STORAGE_CONTROL_DIRECTORY);
File controlReportPdf = new File(controlDirectory, "control.pdf");
@@ -889,7 +889,7 @@
saveProjectSelection(project, selection);
// generate control file as pdf
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
@@ -1010,7 +1010,7 @@
public void createProjectSelection(Project project, Selection selection) throws CoserBusinessException {
// tout ce qui suit doit exister à ce stade
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
// creation du dossier de selections (peut deja exister)
@@ -1039,7 +1039,7 @@
public void saveProjectSelection(Project project, Selection selection) throws CoserBusinessException {
// tout ce qui suit doit exister à ce stade
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
// creation du dossier de selections (peut deja exister)
@@ -1107,7 +1107,7 @@
public void saveRsufiResults(Project project, Selection selection,
RSufiResult rsufiResult, List<File> othersFiles) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
@@ -1189,7 +1189,7 @@
*/
public void editRsufiResults(Project project, Selection selection, RSufiResult rsufiResult, List<File> othersFile) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
@@ -1274,7 +1274,7 @@
public void deleteRSufiResult(Project project, Selection selection, RSufiResult rsufiResult) throws CoserBusinessException {
try {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
@@ -2895,7 +2895,7 @@
out.println(t("coser.business.extract.creationdate") + dateFormat.format(project.getCreationDate()));
// add selection additional files
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
@@ -3044,7 +3044,7 @@
SortedMap<String, List<String>> selectionByProject = new TreeMap<String, List<String>>();
// parcours des resultats disponibles
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File[] projectFiles = projectsDirectory.listFiles();
if (projectFiles != null) {
for (File projectFile : projectFiles) {
@@ -3086,7 +3086,7 @@
* @since 1.2
*/
public Selection openSelection(String projectName, String selectionName) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, projectName);
if (!projectDirectory.isDirectory()) {
throw new CoserBusinessException(t("Project %s doesn't exists !", projectName));
@@ -3220,7 +3220,7 @@
*/
public void editSelectionOptions(Project project, Selection selection, List<File> othersFile) throws CoserBusinessException {
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -276,7 +276,7 @@
List<RSufiResultPath> results = new ArrayList<RSufiResultPath>();
// loop on projets
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
File[] projects = projectsDirectory.listFiles();
if (projects != null) {
for (File existingProject : projects) {
@@ -379,13 +379,13 @@
Project project = path.getProject();
project = projectService.openProject(project.getName());
- OneResultFileFilter oneRFF = new OneResultFileFilter(config.getProjectsDirectory(),
+ OneResultFileFilter oneRFF = new OneResultFileFilter(config.getRSufiProjectsDirectory(),
project, path.getSelection(), path.getRsufiResult(), publishDataResults.contains(path));
mFileFilters.add(oneRFF);
}
// create zip temp file
- File projectsDirectory = config.getProjectsDirectory();
+ File projectsDirectory = config.getRSufiProjectsDirectory();
//ZipUtil.compress(prepareZip, projectsDirectory, mFileFilters);
// compress les projets à la racines de l'archive
@@ -533,7 +533,7 @@
Selection selection = selectedResult.getSelection();
RSufiResult rsufiResult = selectedResult.getRsufiResult();
- File projectDirectory = new File(config.getProjectsDirectory(), project.getName());
+ File projectDirectory = new File(config.getRSufiProjectsDirectory(), project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
File selectionDirectory = new File(selectionsDirectory, selection.getName());
File resultsDirectory = new File(selectionDirectory, CoserConstants.STORAGE_RESULTS_DIRECTORY);
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2014-03-23 13:32:50 UTC (rev 1162)
@@ -167,6 +167,8 @@
coser.config.database.directory.description=Coser database directory (all Coser data)
coser.config.locale.description=Application's locale
coser.config.projects.directory.description=Coser projects directory
+coser.config.projects.echobase.directory.description=Location of *EchoBase* projects
+coser.config.projects.rsufi.directory.description=Location of *RSufi* projects
coser.config.reference.species.description=Species reference file location (reftax)
coser.config.reference.typeSpecies.description=Code type species file location
coser.config.selection.densityFilter.description=Default density filter value
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2014-03-23 13:32:50 UTC (rev 1162)
@@ -167,6 +167,8 @@
coser.config.database.directory.description=Emplacement du dossier de toutes les données relatives à Coser
coser.config.locale.description=Langue de l'application
coser.config.projects.directory.description=Emplacement du dossier de sauvegarde des projets
+coser.config.projects.echobase.directory.description=Répertoire contenant les projets *EchoBase*
+coser.config.projects.rsufi.directory.description=Répertoire contenant les projets *RSufi*
coser.config.reference.species.description=Emplacement du fichier de référence des espèces (Reftax)
coser.config.reference.typeSpecies.description=Emplacement du fichier de code type des espèces
coser.config.selection.densityFilter.description=Filtre par défaut sur la moyenne des densités
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -103,7 +103,7 @@
@Before
public void initProjectDatabase() throws IOException {
FileUtils.cleanDirectory(config.getDatabaseDirectory());
- copyDirectoryContent("src.test.resources.projects", config.getProjectsDirectory());
+ copyDirectoryContent("src.test.resources.projects", config.getRSufiProjectsDirectory());
}
/**
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -93,15 +93,15 @@
public void testCreateProject() throws CoserBusinessException {
Project project = createTestProject(projectService, false);
- Assert.assertTrue(getFile(config.getProjectsDirectory(), project.getName(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(), project.getName(),
"original", "testcatch.csv").exists());
- Assert.assertTrue(getFile(config.getProjectsDirectory(), project.getName(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(), project.getName(),
"original", "testhaul.csv").exists());
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "original", "teststrata.csv").exists());
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "original", "testlength.csv").exists());
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "reftaxSpecies.csv").exists());
}
@@ -146,7 +146,7 @@
Project project = createTestProject(projectService, false);
projectService.saveProjectControl(project);
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "control", "testcatch_co.csv").exists());
}
@@ -162,7 +162,7 @@
projectService.validControl(project, Collections.EMPTY_LIST);
Assert.assertTrue(project.getControl().isValidated());
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "control", "control.pdf").exists());
}
@@ -181,7 +181,7 @@
projectService.validSelection(project, selection);
Assert.assertTrue(selection.isValidated());
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "selections",
"titi", "selection.pdf").exists());
}
@@ -198,7 +198,7 @@
selection.setName("titi");
projectService.createProjectSelection(project, selection);
- Assert.assertTrue(getFile(config.getProjectsDirectory(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(),
project.getName(), "selections",
"titi", "testcatch_se.csv").exists());
}
@@ -610,12 +610,12 @@
Selection selection = project.getSelections().get("testselection1");
RSufiResult rsufiResult = selection.getRsufiResults().get(0);
- Assert.assertTrue(getFile(config.getProjectsDirectory(), project.getName(),
+ Assert.assertTrue(getFile(config.getRSufiProjectsDirectory(), project.getName(),
"selections", "testselection1", "results", rsufiResult.getName(),
"result.properties").exists());
projectService.deleteRSufiResult(project, selection, rsufiResult);
- Assert.assertFalse(getFile(config.getProjectsDirectory(), project.getName(),
+ Assert.assertFalse(getFile(config.getRSufiProjectsDirectory(), project.getName(),
"selections", "testselection1", "results", rsufiResult.getName()).exists());
}
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,145 +21,165 @@
*/
package fr.ifremer.coser;
-import java.io.File;
+import fr.ifremer.coser.ui.CoserFrame;
+import jaxx.runtime.context.DefaultApplicationContext;
import javax.swing.SwingUtilities;
-import javax.swing.UIManager;
-import fr.ifremer.coser.services.ClientResultService;
-import jaxx.runtime.context.DefaultApplicationContext;
-
-import jaxx.runtime.swing.session.SwingSession;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.i18n.I18n;
-import org.nuiton.i18n.init.ClassPathI18nInitializer;
-import org.nuiton.i18n.init.DefaultI18nInitializer;
-import org.nuiton.config.ArgumentsParserException;
-
-import com.bbn.openmap.MapBean;
-
-import fr.ifremer.coser.services.CommandService;
-import fr.ifremer.coser.services.ControlService;
-import fr.ifremer.coser.services.ProjectService;
-import fr.ifremer.coser.services.PublicationService;
-import fr.ifremer.coser.ui.CoserFrame;
-
/**
* Coser main class.
- *
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
+ *
* @author chatellier
* @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
*/
public class Coser {
- private static final Log log = LogFactory.getLog(Coser.class);
+// private static final Log log = LogFactory.getLog(Coser.class);
- protected static CoserConfig coserConfig;
+// protected static CoserConfig coserConfig;
/**
* Coser main method.
- *
+ *
* @param args main args
*/
public static void main(String... args) {
- // init config
- coserConfig = new CoserConfig();
- try {
- coserConfig.parse(args);
- } catch (ArgumentsParserException ex) {
- if (log.isErrorEnabled()) {
- log.error("Cant' parse configuration", ex);
- }
- }
+// // init config
+// coserConfig = new CoserConfig();
+// try {
+// coserConfig.parse(args);
+// } catch (ArgumentsParserException ex) {
+// if (log.isErrorEnabled()) {
+// log.error("Cant' parse configuration", ex);
+// }
+// }
+//
+// // OpenMap sysout
+// MapBean.suppressCopyright = true;
+//
+// // catch wall application exception
+// launch(context);
+//
+// // catch uncaught exceptions
+// Thread.setDefaultUncaughtExceptionHandler(new CoserExceptionHandler());
+// System.setProperty("sun.awt.exception.handler", CoserExceptionHandler.class.getName());
- // OpenMap sysout
- MapBean.suppressCopyright = true;
-
- // catch wall application exception
- launch(coserConfig);
-
- // catch uncaught exceptions
- Thread.setDefaultUncaughtExceptionHandler(new CoserExceptionHandler());
- System.setProperty("sun.awt.exception.handler", CoserExceptionHandler.class.getName());
- }
-
- /**
- * Display main UI.
- *
- * @param coserConfig coser configuration
- */
- public static void launch(final CoserConfig coserConfig) {
-
- // to work in java webstart
- try {
- I18n.init(new DefaultI18nInitializer("coser-i18n"), coserConfig.getLocale());
- } catch (RuntimeException ex) {
- if (log.isErrorEnabled()) {
- log.error("Could not load coser i18n bundle", ex);
- }
- // fallback for dev mode
- I18n.init(new ClassPathI18nInitializer(), coserConfig.getLocale());
- }
-
// launch UI
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
- // ne to be done in Swing EDT (otherwize, don't work on javawebstart)
- // declare new classloader
- ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
- CoserClassLoader coserClassLoader = new CoserClassLoader(currentClassLoader);
- Thread.currentThread().setContextClassLoader(coserClassLoader);
- // set coser xwork validation file directory in classloader
- coserClassLoader.setValidatorsDirectory(coserConfig.getValidatorsDirectory());
+ CoserUIApplicationContext applicationContext = CoserUIApplicationContext.init();
- // init LAF (from configuration)
- try {
- String lafClassName = coserConfig.getLookAndFeel();
- for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
- if (laf.getClassName().equalsIgnoreCase(lafClassName)) {
- UIManager.setLookAndFeel(laf.getClassName());
- }
- }
- } catch (Exception ex) {
- if (log.isErrorEnabled()) {
- log.error("Can't init look and feel", ex);
- }
- }
-
- // update font size (after laf)
- coserConfig.updateSwingFont();
-
- File coserConfigDirectory = new File(coserConfig.getUserConfigDirectory(), "coser");
- coserConfigDirectory.mkdirs();
- File mainFrameFile = new File(coserConfigDirectory, "session.xml");
- SwingSession session = new SwingSession(mainFrameFile, true);
-
// define unique context global values
DefaultApplicationContext context = new DefaultApplicationContext();
- context.setContextValue(coserConfig);
- context.setContextValue(session);
- context.setContextValue(new ProjectService(coserConfig));
- context.setContextValue(new CommandService(coserConfig));
- context.setContextValue(new ControlService(coserConfig));
- context.setContextValue(new PublicationService(coserConfig));
-// context.setContextValue(new WebService(coserConfig));
- context.setContextValue(new ClientResultService(coserConfig));
- context.setContextValue(new DefaultCoserApplicationContext(coserConfig));
+ context.setContextValue(applicationContext);
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getConfig());
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getSession());
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getProjectService());
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getCommandService());
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getControlService());
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getPublicationService());
+ //FIXME Remove this and use directly the application context
+ context.setContextValue(applicationContext.getClientResultService());
// init frame with session reloading
CoserFrame frame = new CoserFrame(context);
frame.setLocationRelativeTo(null);
- session.add(frame);
+ applicationContext.getSession().add(frame);
frame.setVisible(true);
}
});
}
+// /**
+// * Display main UI.
+// *
+// * @param coserConfig coser configuration
+// */
+// public static void launch(final CoserConfig coserConfig) {
+//
+// // to work in java webstart
+// try {
+// I18n.init(new DefaultI18nInitializer("coser-i18n"), coserConfig.getLocale());
+// } catch (RuntimeException ex) {
+// if (log.isErrorEnabled()) {
+// log.error("Could not load coser i18n bundle", ex);
+// }
+// // fallback for dev mode
+// I18n.init(new ClassPathI18nInitializer(), coserConfig.getLocale());
+// }
+//
+// // launch UI
+// SwingUtilities.invokeLater(new Runnable() {
+// @Override
+// public void run() {
+//
+// CoserConfig coserConfig = applicationContext.getConfig();
+//
+// // ne to be done in Swing EDT (otherwize, don't work on javawebstart)
+// // declare new classloader
+// ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
+// CoserClassLoader coserClassLoader = new CoserClassLoader(currentClassLoader);
+// Thread.currentThread().setContextClassLoader(coserClassLoader);
+// // set coser xwork validation file directory in classloader
+// coserClassLoader.setValidatorsDirectory(coserConfig.getValidatorsDirectory());
+//
+// // init LAF (from configuration)
+// try {
+// String lafClassName = coserConfig.getLookAndFeel();
+// for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
+// if (laf.getClassName().equalsIgnoreCase(lafClassName)) {
+// UIManager.setLookAndFeel(laf.getClassName());
+// }
+// }
+// } catch (Exception ex) {
+// if (log.isErrorEnabled()) {
+// log.error("Can't init look and feel", ex);
+// }
+// }
+//
+// // update font size (after laf)
+// coserConfig.updateSwingFont();
+//
+// File coserConfigDirectory = new File(coserConfig.getUserConfigDirectory(), "coser");
+// try {
+// FileUtils.forceMkdir(coserConfigDirectory);
+// } catch (IOException e) {
+// throw new CoserTechnicalException("Could not create user data directory", e);
+// }
+// File mainFrameFile = new File(coserConfigDirectory, "session.xml");
+// SwingSession session = new SwingSession(mainFrameFile, true);
+//
+// // define unique context global values
+// DefaultApplicationContext context = new DefaultApplicationContext();
+// context.setContextValue(coserConfig);
+// context.setContextValue(session);
+// context.setContextValue(new ProjectService(coserConfig));
+// context.setContextValue(new CommandService(coserConfig));
+// context.setContextValue(new ControlService(coserConfig));
+// context.setContextValue(new PublicationService(coserConfig));
+//// context.setContextValue(new WebService(coserConfig));
+// context.setContextValue(new ClientResultService(coserConfig));
+// context.setContextValue(new DefaultCoserApplicationContext(coserConfig));
+//
+// // init frame with session reloading
+// CoserFrame frame = new CoserFrame(context);
+// frame.setLocationRelativeTo(null);
+// session.add(frame);
+//
+// frame.setVisible(true);
+// }
+// });
+// }
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -30,7 +30,7 @@
import javax.swing.plaf.FontUIResource;
import java.awt.Font;
-import static org.nuiton.i18n.I18n.t;
+import static org.nuiton.i18n.I18n.n;
/**
* Coser application configuration.
@@ -93,12 +93,12 @@
public static enum CoserOption implements ConfigOptionDef {
- CONFIG_FILE(CONFIG_FILE_NAME, t("coser.config.config.file.description"), "coser.properties", String.class, true, true),
- LOOKANDFEEL("coser.lookandfeel", t("coser.config.lookandfeel.description"), null, String.class, false, false),
- APPLICATION_VERSION("coser.application.version", t("coser.config.application.version.description"), null, String.class, false, false),
- SUPPORT_EMAIL("coser.support.email", t("coser.config.support.email.description"), "support(a)codelutin.com", String.class, false, false),
- WEBSITE_URL("coser.website", t("coser.config.website.description"), "https://doc.codelutin.com/coser/", String.class, false, false),
- SWING_FONT_SIZE("coser.swingfontsize", t("coser.config.swingfontsize.description"), "12", Integer.class, false, false);
+ CONFIG_FILE(CONFIG_FILE_NAME, n("coser.config.config.file.description"), "coser.properties", String.class, true, true),
+ LOOKANDFEEL("coser.lookandfeel", n("coser.config.lookandfeel.description"), null, String.class, false, false),
+ APPLICATION_VERSION("coser.application.version", n("coser.config.application.version.description"), null, String.class, false, false),
+ SUPPORT_EMAIL("coser.support.email", n("coser.config.support.email.description"), "support(a)codelutin.com", String.class, false, false),
+ WEBSITE_URL("coser.website", n("coser.config.website.description"), "https://doc.codelutin.com/coser/", String.class, false, false),
+ SWING_FONT_SIZE("coser.swingfontsize", n("coser.config.swingfontsize.description"), "12", Integer.class, false, false);
private final String key;
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserUIApplicationContext.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserUIApplicationContext.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserUIApplicationContext.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,188 @@
+package fr.ifremer.coser;
+
+/*
+ * #%L
+ * Coser :: UI
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.bbn.openmap.MapBean;
+import com.google.common.base.Preconditions;
+import fr.ifremer.coser.services.ClientResultService;
+import fr.ifremer.coser.services.CommandService;
+import fr.ifremer.coser.services.ControlService;
+import fr.ifremer.coser.services.ProjectService;
+import fr.ifremer.coser.services.PublicationService;
+import jaxx.runtime.swing.session.SwingSession;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.i18n.I18n;
+import org.nuiton.i18n.init.ClassPathI18nInitializer;
+import org.nuiton.i18n.init.DefaultI18nInitializer;
+
+import javax.swing.UIManager;
+import java.awt.EventQueue;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Coser UI Application context.
+ * <p/>
+ * Created on 3/23/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public class CoserUIApplicationContext extends DefaultCoserApplicationContext {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(CoserUIApplicationContext.class);
+
+ /**
+ * Shared application context.
+ */
+ protected static CoserUIApplicationContext context;
+
+ public static CoserUIApplicationContext get() {
+ Preconditions.checkState(context != null, "Application was not initialized!");
+ return context;
+ }
+
+ public static CoserUIApplicationContext init() {
+
+ Preconditions.checkState(EventQueue.isDispatchThread(), "Must init application context from Swing EDT Thread");
+
+ context = new CoserUIApplicationContext();
+
+ CoserConfig config = context.getConfig();
+
+ // to work in java webstart
+ try {
+ I18n.init(new DefaultI18nInitializer("coser-i18n"), config.getLocale());
+ } catch (RuntimeException ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not load coser i18n bundle", ex);
+ }
+ // fallback for dev mode
+ I18n.init(new ClassPathI18nInitializer(), config.getLocale());
+ }
+
+ // OpenMap sysout
+ MapBean.suppressCopyright = true;
+
+ // need to be done in Swing EDT (otherwize, don't work on javawebstart)
+ // declare new classloader
+ ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
+ CoserClassLoader coserClassLoader = new CoserClassLoader(currentClassLoader);
+ Thread.currentThread().setContextClassLoader(coserClassLoader);
+ // set coser xwork validation file directory in classloader
+ coserClassLoader.setValidatorsDirectory(config.getValidatorsDirectory());
+
+ // init LAF (from configuration)
+ try {
+ String lafClassName = config.getLookAndFeel();
+ for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
+ if (laf.getClassName().equalsIgnoreCase(lafClassName)) {
+ UIManager.setLookAndFeel(laf.getClassName());
+ }
+ }
+ } catch (Exception ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't init look and feel", ex);
+ }
+ }
+
+ // update font size (after laf)
+ config.updateSwingFont();
+
+ File coserConfigDirectory = new File(config.getUserConfigDirectory(), "coser");
+ try {
+ FileUtils.forceMkdir(coserConfigDirectory);
+ } catch (IOException e) {
+ throw new CoserTechnicalException("Could not create user data directory", e);
+ }
+ File mainFrameFile = new File(coserConfigDirectory, "session.xml");
+
+ context.session = new SwingSession(mainFrameFile, true);
+
+ // catch wall application exception
+ // catch uncaught exceptions
+ Thread.setDefaultUncaughtExceptionHandler(new CoserExceptionHandler());
+ System.setProperty("sun.awt.exception.handler", CoserExceptionHandler.class.getName());
+
+ return context;
+ }
+
+ public static void close() {
+ context = null;
+ }
+
+ protected SwingSession session;
+
+ protected CommandService commandService;
+
+ protected ProjectService projectService;
+
+ protected ControlService controlService;
+
+ protected PublicationService publicationService;
+
+ protected ClientResultService clientResultService;
+
+ public SwingSession getSession() {
+ return session;
+ }
+
+ public CommandService getCommandService() {
+ return commandService;
+ }
+
+ public ProjectService getProjectService() {
+ return projectService;
+ }
+
+ public ControlService getControlService() {
+ return controlService;
+ }
+
+ public PublicationService getPublicationService() {
+ return publicationService;
+ }
+
+ public ClientResultService getClientResultService() {
+ return clientResultService;
+ }
+
+ protected CoserUIApplicationContext() {
+ super(new CoserConfig());
+
+ projectService = new ProjectService(config);
+ commandService = new CommandService(config);
+ controlService = new ControlService(config);
+ publicationService = new PublicationService(config);
+ clientResultService = new ClientResultService(config);
+ }
+
+ @Override
+ public CoserConfig getConfig() {
+ return (CoserConfig) config;
+ }
+
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserUIApplicationContext.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -289,7 +289,7 @@
validatorDialog.setLocationRelativeTo(view);
// restore session size
- SwingSession session = (SwingSession)view.getContextValue(SwingSession.class);
+ SwingSession session = view.getContextValue(SwingSession.class);
session.add(validatorDialog);
validatorDialog.setVisible(true);
@@ -395,7 +395,7 @@
controlHandler.init(controlView);
// restore session size
- SwingSession session = (SwingSession)view.getContextValue(SwingSession.class);
+ SwingSession session = view.getContextValue(SwingSession.class);
session.add(controlView);
setMainComponent(controlView);
@@ -434,7 +434,7 @@
handler.initSelection(selectionView);
// restore session size
- SwingSession session = (SwingSession)view.getContextValue(SwingSession.class);
+ SwingSession session = view.getContextValue(SwingSession.class);
session.add(selectionView);
// fix la restauration de la selection
@@ -505,7 +505,7 @@
handler.reloadSelection(selectionView);
// restore session size
- SwingSession session = (SwingSession)view.getContextValue(SwingSession.class);
+ SwingSession session = view.getContextValue(SwingSession.class);
session.add(selectionView);
// selection du bon onglet
@@ -549,7 +549,7 @@
// incohérent
showSummaryView();
- SelectionReplayView replayView = new SelectionReplayView((JAXXContext)view, view);
+ SelectionReplayView replayView = new SelectionReplayView(view, view);
SelectionReplayHandler handler = replayView.getHandler();
handler.initReplayView(replayView);
replayView.setLocationRelativeTo(view);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -76,7 +76,7 @@
MatrixND matrix = projectService.getLengthStructure(project, container);
// close previous opened
- JFrame previousFrame = (JFrame)((JAXXContext)parent).getContextValue(JFrame.class, "lengthstructureframe");
+ JFrame previousFrame = ((JAXXContext)parent).getContextValue(JFrame.class, "lengthstructureframe");
if (previousFrame != null) {
previousFrame.dispose();
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -997,7 +997,7 @@
List<String> species = CoserUtils.sortCollectionWithMapKeys(project.getRefTaxSpeciesMap(), charts.keySet());
// close previous opened
- JFrame previousFrame = (JFrame)view.getContextValue(JFrame.class, "comparenumberframe");
+ JFrame previousFrame = view.getContextValue(JFrame.class, "comparenumberframe");
if (previousFrame != null) {
previousFrame.dispose();
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx 2014-03-23 13:32:50 UTC (rev 1162)
@@ -61,7 +61,7 @@
<JLabel text="coser.ui.project.projectname" />
</cell>
<cell>
- <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + java.io.File.separator}' />
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getRSufiProjectsDirectory().getAbsolutePath() + java.io.File.separator}' />
</cell>
<cell anchor="west" weightx="1" fill="horizontal">
<JTextField id="projectProjectName" text="{getProject().getName()}" />
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx 2014-03-23 13:32:50 UTC (rev 1162)
@@ -45,7 +45,7 @@
<JLabel text="coser.ui.project.projectname" />
</cell>
<cell>
- <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + java.io.File.separator}' />
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getRSufiProjectsDirectory().getAbsolutePath() + java.io.File.separator}' />
</cell>
<cell anchor="west" weightx="1" fill="horizontal">
<JTextField id="projectProjectName" enabled="false" text="{getProject().getName()}" />
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -98,7 +98,7 @@
*/
public void selectInputFile(ProjectCreationView projectView, JTextField textComponent) {
CoserConfig config = projectView.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = selectFileChooser.showOpenDialog(projectView);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2014-03-23 13:32:50 UTC (rev 1162)
@@ -30,7 +30,7 @@
<JLabel text="coser.ui.project.project" />
</cell>
<cell anchor="north">
- <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + java.io.File.separator}' />
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getRSufiProjectsDirectory().getAbsolutePath() + java.io.File.separator}' />
</cell>
<cell fill="both" weightx="1">
<JScrollPane>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx 2014-03-23 13:32:50 UTC (rev 1162)
@@ -32,7 +32,7 @@
<JLabel text="coser.ui.project.summary.path" />
</cell>
<cell anchor="west" weightx="1" fill="horizontal">
- <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + java.io.File.separator + getProject().getName()}' />
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getRSufiProjectsDirectory().getAbsolutePath() + java.io.File.separator + getProject().getName()}' />
</cell>
</row>
<row>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -124,6 +124,8 @@
// auto-select publish map
view.getSelectedResultTableModel().getMapResults().add(resultData);
+ // auto-select publish raw data
+ view.getSelectedResultTableModel().getPublishDataResults().add(resultData);
}
}
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultTableModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultTableModel.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultTableModel.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -103,21 +103,24 @@
String result = null;
switch (column) {
case 0:
- result = t("coser.ui.uploadresult.creationDate");
+ result = t("coser.ui.uploadresult.resultType");
break;
case 1:
- result = t("coser.ui.uploadresult.path");
+ result = t("coser.ui.uploadresult.creationDate");
break;
case 2:
- result = t("coser.ui.uploadresult.zone");
+ result = t("coser.ui.uploadresult.path");
break;
case 3:
- result = t("coser.ui.uploadresult.indicatorResult");
+ result = t("coser.ui.uploadresult.zone");
break;
case 4:
- result = t("coser.ui.uploadresult.mapResult");
+ result = t("coser.ui.uploadresult.indicatorResult");
break;
case 5:
+ result = t("coser.ui.uploadresult.mapResult");
+ break;
+ case 6:
result = t("coser.ui.uploadresult.publishData");
break;
}
@@ -129,16 +132,16 @@
Class<?> result = null;
switch (columnIndex) {
case 0:
- result = Date.class;
+ result = String.class;
break;
case 1:
- result = String[].class;
+ result = Date.class;
break;
case 2:
- result = String.class;
+ result = String[].class;
break;
case 3:
- result = Boolean.class;
+ result = String.class;
break;
case 4:
result = Boolean.class;
@@ -146,15 +149,18 @@
case 5:
result = Boolean.class;
break;
+ case 6:
+ result = Boolean.class;
+ break;
}
return result;
}
@Override
public int getColumnCount() {
- int result = 3;
+ int result = 4;
if (selected) {
- result = 6;
+ result = 7;
}
return result;
}
@@ -167,21 +173,24 @@
GlobalResult data = resultPaths.get(rowIndex);
switch (columnIndex) {
case 0:
- result = data.getCreationDate();
+ result = data.isRsufi() ? "RSufi" : "EchoBase";
break;
case 1:
- result = data;
+ result = data.getCreationDate();
break;
case 2:
- result = data.getZone();
+ result = data;
break;
case 3:
- result = indicatorResults.contains(data);
+ result = data.getZone();
break;
case 4:
- result = mapResults.contains(data);
+ result = indicatorResults.contains(data);
break;
case 5:
+ result = mapResults.contains(data);
+ break;
+ case 6:
result = publishDataResults.contains(data);
break;
}
@@ -194,17 +203,7 @@
GlobalResult data = resultPaths.get(rowIndex);
- boolean editable;
- if (data.isEchoBase()) {
-
- // can only edit publish data column
- editable = columnIndex >= 5;
- } else {
-
- // can edit indicator - map and publish data columns
- editable = columnIndex >= 3;
- }
-
+ boolean editable = !data.isEchoBase() && columnIndex >= 4;
return editable;
}
@@ -213,21 +212,21 @@
GlobalResult data = resultPaths.get(rowIndex);
- if (columnIndex == 3) {
+ if (columnIndex == 4) {
Boolean bValue = (Boolean) aValue;
if (bValue) {
indicatorResults.add(data);
} else {
indicatorResults.remove(data);
}
- } else if (columnIndex == 4) {
+ } else if (columnIndex == 5) {
Boolean bValue = (Boolean) aValue;
if (bValue) {
mapResults.add(data);
} else {
mapResults.remove(data);
}
- } else if (columnIndex == 5) {
+ } else if (columnIndex == 6) {
Boolean bValue = (Boolean) aValue;
if (bValue) {
publishDataResults.add(data);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultZoneRenderer.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultZoneRenderer.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/publication/GlobalResultZoneRenderer.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -59,7 +59,7 @@
}
Object localValue = value;
- if (value != null && value instanceof String) {
+ if (column > 0 && value != null && value instanceof String) {
String zoneId = (String) value;
localValue = zoneMap.getZoneFullName(zoneId);
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -273,7 +273,7 @@
*/
public void selectExportDirectory(ExportUploadDialog view, JTextField textComponent) {
CoserConfig config = view.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = selectFileChooser.showOpenDialog(view);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1154,7 +1154,7 @@
List<String> species = view.getSelectionSizeAllYearListModel().getSpecies();
// close previous opened
- JFrame previousFrame = (JFrame)view.getContextValue(JFrame.class, "comparenumberframe");
+ JFrame previousFrame = view.getContextValue(JFrame.class, "comparenumberframe");
if (previousFrame != null) {
previousFrame.dispose();
}
@@ -1234,7 +1234,7 @@
List<String> selectedSpecies = new ArrayList<String>(view.getSelectedSpeciesListModel().getSpecies());
Object[] selectedSelectedSpecies = view.getSelectedSpeciesList().getSelectedValues();
for (Object singleSelectedSelectedSpecies : selectedSelectedSpecies) {
- selectedSpecies.remove((String)singleSelectedSelectedSpecies);
+ selectedSpecies.remove(singleSelectedSelectedSpecies);
filteredSpecies.add((String)singleSelectedSelectedSpecies);
}
@@ -1476,7 +1476,7 @@
*/
public void selectResultFile(SelectionAddResultDialog view, JTextField textComponent) {
CoserConfig config = view.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = selectFileChooser.showOpenDialog(view);
@@ -1494,7 +1494,7 @@
*/
public void selectMapsDirectory(SelectionAddResultDialog view, JTextField textComponent) {
CoserConfig config = view.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = selectFileChooser.showOpenDialog(view);
@@ -1512,7 +1512,7 @@
*/
public void selectResultFileOrDirectory(SelectionAddResultDialog view, JList listComponent) {
CoserConfig config = view.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = selectFileChooser.showOpenDialog(view);
@@ -1530,7 +1530,7 @@
*/
public void selectResultFileOrDirectory(SelectionEditResultDialog view, JList listComponent) {
CoserConfig config = view.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = selectFileChooser.showOpenDialog(view);
@@ -1548,7 +1548,7 @@
*/
public void selectResultFileOrDirectory(SelectionFilesView view, JList listComponent) {
CoserConfig config = view.getContextValue(CoserConfig.class);
- JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getRSufiProjectsDirectory());
selectFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = selectFileChooser.showOpenDialog(view);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -63,7 +63,7 @@
double occurrence = model.getOccurrence(species);
double density = model.getDensity(species);
- String speciesText = (String)species;
+ String speciesText = species;
if (reftaxSpecies.containsKey(species)) {
speciesText = reftaxSpecies.get(species);
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/widgets/AccordionPane.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/widgets/AccordionPane.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/widgets/AccordionPane.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -136,7 +136,7 @@
}
this.selected = num;
for (int i = 0; i < children.size(); i++) {
- AccordionPaneSubPanel subPanel = (AccordionPaneSubPanel) children
+ AccordionPaneSubPanel subPanel = children
.get(i);
// subPanel.child.setVisible ( i == num
// || ( i == this.previouslySelected && showAnimation ) );
@@ -212,7 +212,7 @@
* the new title for the specified pane.
*/
public void setTitleAt(int index, String newTitle) {
- AccordionPaneSubPanel subPanel = (AccordionPaneSubPanel) this.children
+ AccordionPaneSubPanel subPanel = this.children
.get(index);
subPanel.titleLabel.setText(newTitle);
}
@@ -225,7 +225,7 @@
* @return the text title of the specified pane
*/
public String getTitleAt(int index) {
- AccordionPaneSubPanel subPanel = (AccordionPaneSubPanel) this.children
+ AccordionPaneSubPanel subPanel = this.children
.get(index);
return subPanel.titleLabel.getText();
}
@@ -237,7 +237,7 @@
* @param icon
*/
public void setIconAt(int index, Icon icon) {
- AccordionPaneSubPanel subPanel = (AccordionPaneSubPanel) this.children
+ AccordionPaneSubPanel subPanel = this.children
.get(index);
subPanel.titleLabel.setIcon(icon);
}
@@ -250,7 +250,7 @@
* @return component
*/
public Component getComponentAt(int index) {
- AccordionPaneSubPanel subPanel = (AccordionPaneSubPanel) this.children
+ AccordionPaneSubPanel subPanel = this.children
.get(index);
return subPanel.child;
}
@@ -261,7 +261,7 @@
* @return the currently selected component
*/
public Component getSelectedComponent() {
- AccordionPaneSubPanel subPanel = (AccordionPaneSubPanel) this.children
+ AccordionPaneSubPanel subPanel = this.children
.get(this.selected);
return subPanel.child;
}
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2014-03-23 13:32:50 UTC (rev 1162)
@@ -299,6 +299,7 @@
coser.ui.uploadresult.path=Result path
coser.ui.uploadresult.publishData=Allow source data
coser.ui.uploadresult.removeResults=Remove results
+coser.ui.uploadresult.resultType=Result type
coser.ui.uploadresult.resultsextracted=Result extracted.
coser.ui.uploadresult.resultsuploaded=Results published.
coser.ui.uploadresult.resultsuploaderror=Result upload fails for reason \: %s
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2014-03-23 13:32:50 UTC (rev 1162)
@@ -299,6 +299,7 @@
coser.ui.uploadresult.path=Chemin du résultats
coser.ui.uploadresult.publishData=Autoriser les données de base
coser.ui.uploadresult.removeResults=Supprimer le résultat
+coser.ui.uploadresult.resultType=Type
coser.ui.uploadresult.resultsextracted=Résultats extraits.
coser.ui.uploadresult.resultsuploaded=Résultats publiés.
coser.ui.uploadresult.resultsuploaderror=Echec de l'envoi des résultats pour la raison \: %s
Modified: trunk/coser-web/pom.xml
===================================================================
--- trunk/coser-web/pom.xml 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/pom.xml 2014-03-23 13:32:50 UTC (rev 1162)
@@ -98,6 +98,11 @@
<scope>runtime</scope>
</dependency>
<dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-json-plugin</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -25,7 +25,7 @@
import org.nuiton.config.ConfigOptionDef;
import org.nuiton.util.Version;
-import static org.nuiton.i18n.I18n.t;
+import static org.nuiton.i18n.I18n.n;
/**
* Coser web configuration.
@@ -94,12 +94,12 @@
CONTEXT_NAME(APP_NAME, null, String.class, "coser"),
// see : http://www.nuiton.org/issues/1862
ENCODING_HACK(CONTEXT_NAME.getDefaultValue() + "." + CONFIG_ENCODING, null, String.class, "UTF-8"),
- CONFIG_FILE(CONTEXT_NAME.defaultValue + "." + CONFIG_FILE_NAME, t("coser.config.config.file.description"), String.class, "coserweb.properties"),
- APPLICATION_VERSION("coser.application.version", t("coser.config.application.version.description"), Version.class, null),
- ADMIN_EMAIL("coser.admin.email", t("coser.config.config.file.description"), String.class, "harmonie(a)ifremer.fr"),
- ADMIN_LOGIN("coser.admin.login", t("coser.config.admin.login.description"), String.class, null),
- ADMIN_PASSWORD("coser.admin.password", t("coser.config.admin.password.description"), String.class, null),
- ANALYTICS_ID("coser.analytics.id", t("coser.config.analytics.id.description"), String.class, "UA-27739588-1");
+ CONFIG_FILE(CONTEXT_NAME.defaultValue + "." + CONFIG_FILE_NAME, n("coser.config.config.file.description"), String.class, "coserweb.properties"),
+ APPLICATION_VERSION("coser.application.version", n("coser.config.application.version.description"), Version.class, null),
+ ADMIN_EMAIL("coser.admin.email", n("coser.config.config.file.description"), String.class, "harmonie(a)ifremer.fr"),
+ ADMIN_LOGIN("coser.admin.login", n("coser.config.admin.login.description"), String.class, null),
+ ADMIN_PASSWORD("coser.admin.password", n("coser.config.admin.password.description"), String.class, null),
+ ANALYTICS_ID("coser.analytics.id", n("coser.config.analytics.id.description"), String.class, "UA-27739588-1");
private final String key;
Deleted: trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceFactory.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceFactory.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceFactory.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1,80 +0,0 @@
-/*
- * #%L
- * Coser :: Web
- * %%
- * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
- * %%
- * 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%
- */
-
-package fr.ifremer.coser.web;
-
-import java.util.Locale;
-
-import org.nuiton.i18n.I18n;
-import org.nuiton.config.ArgumentsParserException;
-
-import fr.ifremer.coser.services.WebService;
-
-/**
- * Coser service singleton factory.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-@Deprecated
-public class ServiceFactory {
-
- protected static CoserWebConfig coserConfig;
-
- protected static WebService webService;
-
- static {
- // on a pas trop de locale là :(
- I18n.init(null, (Locale)null);
- }
-
- /**
- * Get application config configuration.
- *
- * @return configuration
- */
- public static synchronized CoserWebConfig getCoserConfig() {
- if (coserConfig == null) {
- coserConfig = new CoserWebConfig();
- try {
- coserConfig.parse();
- } catch (ArgumentsParserException ex) {
- throw new CoserWebException("Can't read configuration", ex);
- }
- }
- return coserConfig;
- }
-
- /**
- * Get web service.
- *
- * @return web service
- */
- public static synchronized WebService getWebService() {
- if (webService == null) {
- webService = new WebService(getCoserConfig());
- }
- return webService;
- }
-}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -22,6 +22,9 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.bean.ZoneMap;
import fr.ifremer.coser.result.CoserRequest;
import fr.ifremer.coser.result.CoserRequestContext;
import fr.ifremer.coser.result.repository.ResultRepositoryType;
@@ -30,12 +33,12 @@
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.result.result.MapResult;
import fr.ifremer.coser.services.WebResultService;
-import fr.ifremer.coser.web.actions.common.CoserAction;
import java.io.File;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Set;
/**
* Wrap any call to business layer.
@@ -48,13 +51,13 @@
//TODO Inject this in action
public class ServiceHelper {
- protected final CoserAction action;
+ protected final ActionSupport action;
protected final CoserWebApplicationContext applicationContext;
protected final WebResultService webResultService;
- public ServiceHelper(CoserAction action) {
+ public ServiceHelper(ActionSupport action) {
Preconditions.checkNotNull(action);
this.applicationContext = CoserWebApplicationContext.get();
this.action = action;
@@ -82,6 +85,17 @@
return applicationContext.getZoneMap().getZoneByFacade();
}
+ public Map<String, String> getZonesForFacade(String facade) {
+ ZoneMap zoneMap = applicationContext.getZoneMap();
+ List<String> zoneIds = zoneMap.getZonesForFacade(facade);
+ Map<String, String> map = Maps.newHashMap();
+ for (String zoneId : zoneIds) {
+ String zoneName = zoneMap.getZoneFullNameWithNoFacade(zoneId);
+ map.put(zoneId, zoneName);
+ }
+ return map;
+ }
+
public Map<String, String> getZonePictures() {
return applicationContext.getZoneMap().getZonePictures();
}
@@ -114,6 +128,10 @@
// --- Indicator methods ----------------------------------------------- //
// --------------------------------------------------------------------- //
+ public Set<String> getIndicatorIds() {
+ return applicationContext.getIndicatorMap().getIds();
+ }
+
public String getIndicatorDisplayName(CoserRequest request, String indicator) {
Map<String, String> availableIndicators = toMap(request);
String displayName = availableIndicators.get(indicator);
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/DocumentsAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/DocumentsAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/DocumentsAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,7 +21,7 @@
package fr.ifremer.coser.web.actions;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
/**
* Documents action.
@@ -32,7 +32,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class DocumentsAction extends CoserAction {
+public class DocumentsAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,7 +21,7 @@
package fr.ifremer.coser.web.actions;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.struts2.ServletActionContext;
import javax.servlet.http.HttpServletRequest;
@@ -36,7 +36,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class IndexAction extends CoserAction {
+public class IndexAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,7 +21,7 @@
package fr.ifremer.coser.web.actions;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
@@ -34,7 +34,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class LocaleAction extends CoserAction {
+public class LocaleAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,7 +21,7 @@
package fr.ifremer.coser.web.actions;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
/**
* Quality action.
@@ -32,7 +32,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class QualityAction extends CoserAction {
+public class QualityAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,7 +21,7 @@
package fr.ifremer.coser.web.actions;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
/**
* Survey description action.
@@ -32,7 +32,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SurveyAction extends CoserAction {
+public class SurveyAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = -7450643911834502103L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions;
import fr.ifremer.coser.web.CoserWebConfig;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
@@ -42,7 +42,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class UploadResultAction extends CoserAction {
+public class UploadResultAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3887268253160622587L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/DeleteProjectsAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/DeleteProjectsAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/DeleteProjectsAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,32 +23,24 @@
import fr.ifremer.coser.result.ResultType;
import fr.ifremer.coser.result.request.DeleteResultsRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.convention.annotation.InterceptorRef;
-import org.apache.struts2.convention.annotation.InterceptorRefs;
-import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import java.util.List;
/**
* Project list action.
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
*
* @author chatellier
* @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
*/
-@ParentPackage("admin")
-@InterceptorRefs({
- @InterceptorRef("loginInterceptor"),
- @InterceptorRef("defaultStack")
- })
-@Result(name = "success", type = "redirect", location = "list-projects")
-public class DeleteProjectsAction extends CoserAction {
+@Result(type = "redirect", location = "list-projects")
+public class DeleteProjectsAction extends AbstractCoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 6024588562104111883L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/IndexAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/IndexAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/IndexAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,26 +21,18 @@
package fr.ifremer.coser.web.actions.admin;
-import fr.ifremer.coser.web.actions.common.CoserAction;
-import org.apache.struts2.convention.annotation.InterceptorRef;
-import org.apache.struts2.convention.annotation.InterceptorRefs;
-import org.apache.struts2.convention.annotation.ParentPackage;
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
/**
* Admin index action.
*
+ * Last update : $Date$
+ * By : $Author$
+ *
* @author chatellier
* @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
*/
-@ParentPackage("admin")
-@InterceptorRefs({
- @InterceptorRef("loginInterceptor"),
- @InterceptorRef("defaultStack")
- })
-public class IndexAction extends CoserAction {
+public class IndexAction extends AbstractCoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 6024588562104111883L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ListProjectsAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ListProjectsAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ListProjectsAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -26,12 +26,9 @@
import fr.ifremer.coser.result.repository.ResultRepositoryType;
import fr.ifremer.coser.result.request.GetAllResultsRequest;
import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
-import org.apache.struts2.convention.annotation.InterceptorRef;
-import org.apache.struts2.convention.annotation.InterceptorRefs;
-import org.apache.struts2.convention.annotation.ParentPackage;
import java.util.List;
import java.util.Map;
@@ -40,18 +37,13 @@
/**
* Project list action.
*
+ * Last update : $Date$
+ * By : $Author$
+ *
* @author chatellier
* @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
*/
-@ParentPackage("admin")
-@InterceptorRefs({
- @InterceptorRef("loginInterceptor"),
- @InterceptorRef("defaultStack")
- })
-public class ListProjectsAction extends CoserAction {
+public class ListProjectsAction extends AbstractCoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 6024588562104111883L;
Deleted: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1,40 +0,0 @@
-/*
- * #%L
- * Coser :: Web
- * %%
- * Copyright (C) 2011 Codelutin, Chatellier Eric
- * %%
- * 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%
- */
-
-package fr.ifremer.coser.web.actions.admin;
-
-import fr.ifremer.coser.web.actions.common.CoserAction;
-
-/**
- * Login action.
- *
- * @author chatellier
- * @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
- */
-public class LoginAction extends CoserAction {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -1576602720835497842L;
-
-}
Deleted: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginInterceptor.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginInterceptor.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginInterceptor.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1,73 +0,0 @@
-/*
- * #%L
- * Coser :: Web
- * %%
- * Copyright (C) 2011 Codelutin, Chatellier Eric
- * %%
- * 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%
- */
-
-package fr.ifremer.coser.web.actions.admin;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.interceptor.Interceptor;
-import org.apache.struts2.StrutsStatics;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-/**
- * Authentication interceptor.
- *
- * @author chatellier
- * @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
- */
-public class LoginInterceptor implements Interceptor {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -5760224375232019437L;
-
- /*
- * @see com.opensymphony.xwork2.interceptor.Interceptor#init()
- */
- @Override
- public void init() {
-
- }
-
- public String intercept(ActionInvocation invocation) throws Exception {
- ActionContext context = invocation.getInvocationContext();
- HttpServletRequest request = (HttpServletRequest) context.get(StrutsStatics.HTTP_REQUEST);
- HttpSession session = request.getSession(true);
- Object login = session.getAttribute("login");
- if (login == null) {
- return "redirect-login";
- } else {
- return invocation.invoke();
- }
- }
-
- /*
- * @see com.opensymphony.xwork2.interceptor.Interceptor#destroy()
- */
- @Override
- public void destroy() {
-
- }
-}
Deleted: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/PerformLoginAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/PerformLoginAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/PerformLoginAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1,103 +0,0 @@
-/*
- * #%L
- * Coser :: Web
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
- * %%
- * 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%
- */
-
-package fr.ifremer.coser.web.actions.admin;
-
-import fr.ifremer.coser.web.CoserWebConfig;
-import fr.ifremer.coser.web.actions.common.CoserAction;
-import org.apache.struts2.convention.annotation.Result;
-import org.apache.struts2.interceptor.SessionAware;
-import org.nuiton.util.StringUtil;
-
-import java.util.Map;
-
-/**
- * Perform login action.
- *
- * @author chatellier
- * @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
- */
-@Result(name = "success", type = "redirect", location = "index")
-public class PerformLoginAction extends CoserAction implements SessionAware {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -1576602720835497842L;
-
- protected String login;
-
- protected String password;
-
- private Map<String, Object> session;
-
- public void setLogin(String login) {
- this.login = login;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- @Override
- public void setSession(Map<String, Object> session) {
- this.session = session;
- }
-
- @Override
- public String execute() throws Exception {
- CoserWebConfig config = getService().getConfig();
- if (config.getAdminLogin().equals(login) && equalsSHA1Password(config, password)) {
- session.put("login", login);
- return SUCCESS;
- } else {
- addActionError("Invalid login/password");
- return INPUT;
- }
- }
-
- /**
- * Check if sha1 password equals to config password.
- * <p/>
- * Config password can be plain or sha1 encoded.
- *
- * @param config config
- * @param password password to check
- * @return equality
- */
- protected boolean equalsSHA1Password(CoserWebConfig config, String password) {
-
- // first test sha1 equality
- String configSha1Password = config.getAdminPassword();
- String sha1Password = StringUtil.encodeSHA1(password);
- boolean result = configSha1Password.equals(sha1Password);
-
- // second test to encode sha1 of plain password
- if (!result) {
- configSha1Password = StringUtil.encodeSHA1(configSha1Password);
- result = configSha1Password.equals(sha1Password);
- }
-
- return result;
- }
-
-}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ReloadProjectsAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ReloadProjectsAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/ReloadProjectsAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -21,27 +21,22 @@
* #L%
*/
-import fr.ifremer.coser.web.actions.common.CoserAction;
-import org.apache.struts2.convention.annotation.InterceptorRef;
-import org.apache.struts2.convention.annotation.InterceptorRefs;
-import org.apache.struts2.convention.annotation.ParentPackage;
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
import org.apache.struts2.convention.annotation.Result;
/**
* To reload all projects from disk configuration.
* <p/>
* Created on 3/12/14.
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
*
* @author Tony Chemit <chemit(a)codelutin.com>
* @since 1.5
*/
-@ParentPackage("admin")
-@InterceptorRefs({
- @InterceptorRef("loginInterceptor"),
- @InterceptorRef("defaultStack")
- })
-@Result(name = "success", type = "redirect", location = "list-projects")
-public class ReloadProjectsAction extends CoserAction {
+@Result(type = "redirect", location = "list-projects")
+public class ReloadProjectsAction extends AbstractCoserAction {
private static final long serialVersionUID = 1L;
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/package-info.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/package-info.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/package-info.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,7 @@
+/**
+ * Pakage for admin actions (need to be loggued in).
+ */
+@ParentPackage("admin")
+package fr.ifremer.coser.web.actions.admin;
+
+import org.apache.struts2.convention.annotation.ParentPackage;
\ No newline at end of file
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginAction.java (from rev 1161, trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginAction.java)
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,38 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2011 Codelutin, Chatellier Eric
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.web.actions.auth;
+
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
+
+/**
+ * Login action.
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
+ *
+ * @author chatellier
+ * @version $Revision$
+ */
+public class LoginAction extends AbstractCoserAction {
+
+ private static final long serialVersionUID = 1L;
+}
Copied: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginInterceptor.java (from rev 1161, trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/LoginInterceptor.java)
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginInterceptor.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LoginInterceptor.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,59 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2011 Codelutin, Chatellier Eric, Chemit Tony
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.web.actions.auth;
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
+
+import java.util.Map;
+
+/**
+ * Authentication interceptor.
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
+ *
+ * @author chatellier
+ * @version $Revision$
+ */
+public class LoginInterceptor extends AbstractInterceptor {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String SESSION_PARAMETER_LOGIN = "login";
+
+ @Override
+ public String intercept(ActionInvocation invocation) throws Exception {
+ ActionContext context = invocation.getInvocationContext();
+ Map<String, Object> session = context.getSession();
+ Object login = session.get(SESSION_PARAMETER_LOGIN);
+ String result;
+ if (login == null) {
+ // do login
+ result = "redirect-login";
+ } else {
+ result = invocation.invoke();
+ }
+ return result;
+ }
+}
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LogoutAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LogoutAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LogoutAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,66 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2011 Codelutin, Chemit Tony
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.web.actions.auth;
+
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.interceptor.SessionAware;
+
+import java.util.Map;
+
+/**
+ * Logout action.
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
+ *
+ * @author tchemit
+ * @version $Revision$
+ */
+@Result(type = "redirect", location = "/index")
+public class LogoutAction extends AbstractCoserAction implements SessionAware {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(LogoutAction.class);
+
+ protected transient Map<String, Object> session;
+
+ @Override
+ public void setSession(Map<String, Object> session) {
+ this.session = session;
+ }
+
+ @Override
+ public String execute() throws Exception {
+ Object login = session.remove(LoginInterceptor.SESSION_PARAMETER_LOGIN);
+ if (login != null) {
+ if (log.isInfoEnabled()) {
+ log.info("Logout for user: " + login);
+ }
+ }
+ return SUCCESS;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/LogoutAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/PerformLoginAction.java (from rev 1161, trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/admin/PerformLoginAction.java)
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/PerformLoginAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/PerformLoginAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,113 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric, Chemit Tony
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.web.actions.auth;
+
+import fr.ifremer.coser.web.CoserWebConfig;
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.interceptor.SessionAware;
+import org.nuiton.util.StringUtil;
+
+import java.util.Map;
+
+/**
+ * Perform login action.
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
+ *
+ * @author chatellier
+ * @version $Revision$
+ */
+@Result(type = "redirect", location = "/admin/index")
+public class PerformLoginAction extends AbstractCoserAction implements SessionAware {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(PerformLoginAction.class);
+
+ protected String login;
+
+ protected String password;
+
+ protected transient Map<String, Object> session;
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ @Override
+ public void setSession(Map<String, Object> session) {
+ this.session = session;
+ }
+
+ @Override
+ public String execute() throws Exception {
+ CoserWebConfig config = getService().getConfig();
+ String result;
+ if (config.getAdminLogin().equals(login) && equalsSHA1Password(config, password)) {
+ if (log.isInfoEnabled()) {
+ log.info("Successfull login: "+login);
+ }
+ session.put(LoginInterceptor.SESSION_PARAMETER_LOGIN, login);
+
+ result = SUCCESS;
+ } else {
+ addActionError("Invalid login/password");
+ result = INPUT;
+ }
+ return result;
+ }
+
+ /**
+ * Check if sha1 password equals to config password.
+ * <p/>
+ * Config password can be plain or sha1 encoded.
+ *
+ * @param config config
+ * @param password password to check
+ * @return equality
+ */
+ protected boolean equalsSHA1Password(CoserWebConfig config, String password) {
+
+ // first test sha1 equality
+ String configSha1Password = config.getAdminPassword();
+ String sha1Password = StringUtil.encodeSHA1(password);
+ boolean result = configSha1Password.equals(sha1Password);
+
+ // second test to encode sha1 of plain password
+ if (!result) {
+ configSha1Password = StringUtil.encodeSHA1(configSha1Password);
+ result = configSha1Password.equals(sha1Password);
+ }
+
+ return result;
+ }
+
+}
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/package-info.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/package-info.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/package-info.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,4 @@
+/**
+ * Package for auth actions (login-logout).
+ */
+package fr.ifremer.coser.web.actions.auth;
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/auth/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -24,7 +24,7 @@
import fr.ifremer.coser.result.request.GetIndicatorsForCommunityIndicatorResultRequest;
import fr.ifremer.coser.result.request.GetSpeciesListForCommunityIndicatorResultRequest;
import fr.ifremer.coser.result.request.GetZonesForCommunityIndicatorResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import java.util.Map;
@@ -39,7 +39,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphAction extends CoserAction {
+public class GraphAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -24,7 +24,7 @@
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.result.request.GetCommunityIndicatorResultGraphRequest;
import fr.ifremer.coser.result.request.GetSpeciesListForCommunityIndicatorResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
@@ -44,7 +44,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphDataAction extends CoserAction {
+public class GraphDataAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -24,7 +24,7 @@
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.result.request.GetCommunityIndicatorResultDataRequest;
import fr.ifremer.coser.result.request.GetSpeciesListForCommunityIndicatorResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
@@ -44,7 +44,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphDownloadAction extends CoserAction {
+public class GraphDownloadAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,75 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * 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%
+ */
+package fr.ifremer.coser.web.actions.common;
+
+import fr.ifremer.coser.result.CoserRequest;
+import fr.ifremer.coser.result.CoserRequestBuilder;
+import fr.ifremer.coser.web.ServiceHelper;
+import org.nuiton.web.struts2.BaseAction;
+
+import java.util.Locale;
+
+/**
+ * Created on 3/21/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public abstract class AbstractCoserAction extends BaseAction {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * To access business layer.
+ *
+ * @since 1.5
+ */
+ protected transient ServiceHelper service;
+
+ /**
+ * @return a new request builder.
+ * @since 1.5
+ */
+ protected <R extends CoserRequest> CoserRequestBuilder<R> requestBuilder(Class<R> requestType) {
+ return requestBuilder(getLocale(), requestType);
+ }
+
+ /**
+ * @param locale locale to use (while using execute and wait action we keep the locale in session...)
+ * @param requestType type of request to build
+ * @return a new request builder.
+ * @since 1.5
+ */
+ protected <R extends CoserRequest> CoserRequestBuilder<R> requestBuilder(Locale locale, Class<R> requestType) {
+ return CoserRequestBuilder.newBuilder(locale, requestType);
+ }
+
+ /**
+ * @return service helper for this action
+ * @since 1.5
+ */
+ protected ServiceHelper getService() {
+ if (service == null) {
+ service = new ServiceHelper(this);
+ }
+ return service;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserJspAction.java (from rev 1157, trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CoserAction.java)
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserJspAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/AbstractCoserJspAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,74 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric, Chemit Tony
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.web.actions.common;
+
+import fr.ifremer.coser.web.CoserWebConfig;
+
+/**
+ * Toutes les actions de type *Jsp* doivent étendre celle ci. Contient le code commun
+ * récurent, et notamment les actions utilisé par le layout et devant
+ * être presentes sur toutes les pages.
+ *
+ * @author chatellier
+ * @version $Revision$
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
+ */
+public abstract class AbstractCoserJspAction extends AbstractCoserAction {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 311574866032741326L;
+
+ /**
+ * Recupere l'email dans la configuration.
+ *
+ * @return admin email
+ */
+ public String getAdminEmail() {
+ CoserWebConfig config = getService().getConfig();
+ String email = config.getAdminEmail();
+ return email;
+ }
+
+ /**
+ * Recupere l'email dans la configuration.
+ *
+ * @return admin email
+ */
+ public String getApplicationVersion() {
+ CoserWebConfig config = getService().getConfig();
+ String email = config.getApplicationVersion();
+ return email;
+ }
+
+ /**
+ * Get analytics id from configuration.
+ *
+ * @return analytics id
+ */
+ public String getAnalyticsId() {
+ CoserWebConfig config = getService().getConfig();
+ String id = config.getAnalyticsId();
+ return id;
+ }
+}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -32,7 +32,7 @@
* Last update : $Date$
* By : $Author$
*/
-public abstract class CommonFacade extends CoserAction {
+public abstract class CommonFacade extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -35,7 +35,7 @@
* Last update : $Date$
* By : $Author$
*/
-public abstract class CommonIndicator extends CoserAction {
+public abstract class CommonIndicator extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -35,7 +35,7 @@
* Last update : $Date$
* By : $Author$
*/
-public abstract class CommonZone extends CoserAction {
+public abstract class CommonZone extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Deleted: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CoserAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CoserAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CoserAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1,116 +0,0 @@
-/*
- * #%L
- * Coser :: Web
- * %%
- * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric, Chemit Tony
- * %%
- * 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%
- */
-
-package fr.ifremer.coser.web.actions.common;
-
-import fr.ifremer.coser.result.CoserRequest;
-import fr.ifremer.coser.result.CoserRequestBuilder;
-import fr.ifremer.coser.web.CoserWebConfig;
-import fr.ifremer.coser.web.ServiceHelper;
-import org.nuiton.web.struts2.BaseAction;
-
-import java.util.Locale;
-
-/**
- * Toutes les actions doivent étendre celle ci. Contient le code commun
- * récurent, et notamment les actions utilisé par le layout et devant
- * être presentes sur toutes les pages.
- *
- * @author chatellier
- * @version $Revision$
- * <p/>
- * Last update : $Date$
- * By : $Author$
- */
-public abstract class CoserAction extends BaseAction {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = 311574866032741326L;
-
- /**
- * To access business layer.
- *
- * @since 1.5
- */
- protected transient ServiceHelper service;
-
- /**
- * Recupere l'email dans la configuration.
- *
- * @return admin email
- */
- public String getAdminEmail() {
- CoserWebConfig config = getService().getConfig();
- String email = config.getAdminEmail();
- return email;
- }
-
- /**
- * Recupere l'email dans la configuration.
- *
- * @return admin email
- */
- public String getApplicationVersion() {
- CoserWebConfig config = getService().getConfig();
- String email = config.getApplicationVersion();
- return email;
- }
-
- /**
- * Get analytics id from configuration.
- *
- * @return analytics id
- */
- public String getAnalyticsId() {
- CoserWebConfig config = getService().getConfig();
- String id = config.getAnalyticsId();
- return id;
- }
-
- /**
- * @return a new request builder.
- * @since 1.5
- */
- protected <R extends CoserRequest> CoserRequestBuilder<R> requestBuilder(Class<R> requestType) {
- return requestBuilder(getLocale(), requestType);
- }
-
- /**
- * @param locale locale to use (while using execute and wait action we keep the locale in session...)
- * @param requestType type of request to build
- * @return a new request builder.
- * @since 1.5
- */
- protected <R extends CoserRequest> CoserRequestBuilder<R> requestBuilder(Locale locale, Class<R> requestType) {
- return CoserRequestBuilder.newBuilder(locale, requestType);
- }
-
- /**
- * @return service helper for this action
- * @since 1.5
- */
- protected ServiceHelper getService() {
- if (service == null) {
- service = new ServiceHelper(this);
- }
- return service;
- }
-}
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/AbstractCoserJsonAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/AbstractCoserJsonAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/AbstractCoserJsonAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,44 @@
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * 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%
+ */
+package fr.ifremer.coser.web.actions.json;
+
+import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
+import org.apache.struts2.convention.annotation.ParentPackage;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.convention.annotation.Results;
+
+/**
+ * Json abstract action.
+ * <p/>
+ * Just define in your implementation the getter to expose.
+ * <p/>
+ * Created on 3/21/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+@ParentPackage("json-default")
+@Results({@Result(name = AbstractCoserJsonAction.SUCCESS, type = "json")})
+public abstract class AbstractCoserJsonAction extends AbstractCoserAction {
+
+ private static final long serialVersionUID = 1L;
+
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/AbstractCoserJsonAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetFacadesAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetFacadesAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetFacadesAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,47 @@
+package fr.ifremer.coser.web.actions.json;
+
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2014 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * 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 java.util.Map;
+
+/**
+ * Get universe of facades.
+ * <p/>
+ * Created on 3/21/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public class GetFacadesAction extends AbstractCoserJsonAction {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Map<String, String> data;
+
+ public Map<String, String> getData() {
+ if (data == null) {
+ data = getService().getFacades();
+ }
+ return data;
+ }
+
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetFacadesAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetIndicatorsAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetIndicatorsAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetIndicatorsAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,47 @@
+package fr.ifremer.coser.web.actions.json;
+
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2014 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * 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 java.util.Set;
+
+/**
+ * Get all indicator ids.
+ * <p/>
+ * Created on 3/21/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public class GetIndicatorsAction extends AbstractCoserJsonAction {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Set<String> data;
+
+ public Set<String> getData() {
+ if (data == null) {
+ data = getService().getIndicatorIds();
+ }
+ return data;
+ }
+
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetIndicatorsAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetZonesForFacadeAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetZonesForFacadeAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetZonesForFacadeAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,56 @@
+package fr.ifremer.coser.web.actions.json;
+
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2014 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * 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 java.util.Map;
+
+/**
+ * Get all zones for a given facade.
+ * <p/>
+ * Created on 3/21/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public class GetZonesForFacadeAction extends AbstractCoserJsonAction {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Selected facade.
+ */
+ protected String facade;
+
+ protected Map<String, String> data;
+
+ public void setFacade(String facade) {
+ this.facade = facade;
+ }
+
+ public Map<String, String> getData() {
+ if (data == null) {
+ data = getService().getZonesForFacade(facade);
+ }
+ return data;
+ }
+
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/GetZonesForFacadeAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/package-info.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/package-info.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/package-info.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,26 @@
+/**
+ * Place here all json actions.
+ */
+package fr.ifremer.coser.web.actions.json;
+
+/*
+ * #%L
+ * Coser :: Web
+ * %%
+ * Copyright (C) 2010 - 2014 Ifremer, Codelutin, Chemit Tony
+ * %%
+ * 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%
+ */
+
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/json/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,7 +23,7 @@
import fr.ifremer.coser.result.request.GetSpeciesForMapResultRequest;
import fr.ifremer.coser.result.request.GetZonesForMapResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
/**
* Action index, recupere la liste des resultats.
@@ -34,7 +34,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class MapAction extends CoserAction {
+public class MapAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,7 +23,7 @@
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.result.request.GetMapResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.convention.annotation.Action;
@@ -40,7 +40,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class MapDataAction extends CoserAction {
+public class MapDataAction extends AbstractCoserJspAction {
/** Logger. */
private static final Log log = LogFactory.getLog(MapDataAction.class);
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,7 +23,7 @@
import fr.ifremer.coser.result.request.GetSpeciesForMapResultRequest;
import fr.ifremer.coser.result.request.GetZonesForMapResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -38,7 +38,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SpeciesAction extends CoserAction {
+public class SpeciesAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -24,7 +24,7 @@
import fr.ifremer.coser.result.request.GetIndicatorsForPopulationIndicatorResultRequest;
import fr.ifremer.coser.result.request.GetSpeciesForPopulationIndicatorResultRequest;
import fr.ifremer.coser.result.request.GetZonesForPopulationIndicatorResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
/**
* Affiche le graphique demandé.
@@ -37,7 +37,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphAction extends CoserAction {
+public class GraphAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,7 +23,7 @@
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.result.request.GetPopulationIndicatorResultGraphRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
@@ -40,7 +40,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphDataAction extends CoserAction {
+public class GraphDataAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,7 +23,7 @@
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.result.request.GetPopulationIndicatorResultDataRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
@@ -40,7 +40,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphDownloadAction extends CoserAction {
+public class GraphDownloadAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -23,7 +23,7 @@
import fr.ifremer.coser.result.request.GetSpeciesForPopulationIndicatorResultRequest;
import fr.ifremer.coser.result.request.GetZonesForPopulationIndicatorResultRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -38,7 +38,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SpeciesAction extends CoserAction {
+public class SpeciesAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/search/ExtractAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/search/ExtractAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/search/ExtractAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -28,7 +28,7 @@
import fr.ifremer.coser.result.request.GetZonesForExtractRawDataAndResultsRequest;
import fr.ifremer.coser.result.result.FileResult;
import fr.ifremer.coser.util.DataType;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
@@ -56,7 +56,7 @@
@InterceptorRef(value = "execAndWait",
params = {"excludeMethods", "execute,quality"})
})
-public class ExtractAction extends CoserAction implements ServletRequestAware {
+public class ExtractAction extends AbstractCoserJspAction implements ServletRequestAware {
/** serialVersionUID. */
private static final long serialVersionUID = 8497086194191374797L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2014-03-23 13:32:50 UTC (rev 1162)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions.source;
import fr.ifremer.coser.result.request.GetZonesForExtractRawDataRequest;
-import fr.ifremer.coser.web.actions.common.CoserAction;
+import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction;
import java.util.Map;
@@ -35,7 +35,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SourceAction extends CoserAction {
+public class SourceAction extends AbstractCoserJspAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/resources/struts.xml
===================================================================
--- trunk/coser-web/src/main/resources/struts.xml 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/resources/struts.xml 2014-03-23 13:32:50 UTC (rev 1162)
@@ -43,10 +43,16 @@
<package name="admin" extends="convention-default">
<interceptors>
- <interceptor name="loginInterceptor" class="fr.ifremer.coser.web.actions.admin.LoginInterceptor" />
+ <interceptor name="loginInterceptor" class="fr.ifremer.coser.web.actions.auth.LoginInterceptor" />
+ <interceptor-stack name="loginStack">
+ <interceptor-ref name="loginInterceptor"/>
+ <interceptor-ref name="defaultStack"/>
+ </interceptor-stack>
</interceptors>
+ <default-interceptor-ref name="loginStack"/>
<global-results>
- <result name="redirect-login" type="redirect">/admin/login</result>
+ <result name="redirect-login" type="redirect">/auth/login</result>
</global-results>
+
</package>
</struts>
Deleted: trunk/coser-web/src/main/webapp/WEB-INF/content/admin/login.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/admin/login.jsp 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/admin/login.jsp 2014-03-23 13:32:50 UTC (rev 1162)
@@ -1,42 +0,0 @@
-<!--
- #%L
- Coser :: Web
- %%
- Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
- %%
- 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%
- -->
-<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<%@taglib uri="/struts-tags" prefix="s" %>
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title><s:text name="message.admin.title" /></title>
- </head>
- <body>
-
- <h2><s:text name="message.admin.title" /></h2>
-
- <h3><s:text name="message.admin.loginrequiered" /></h3>
-
- <s:form action="perform-login" method="post">
- <s:actionerror />
- <s:textfield name="login" label="%{getText('message.admin.login')}" />
- <s:password name="password" label="%{getText('message.admin.password')}" />
- <s:submit value="%{getText('message.common.validform')}"/>
- </s:form>
-
- </body>
-</html>
Copied: trunk/coser-web/src/main/webapp/WEB-INF/content/auth/login.jsp (from rev 1161, trunk/coser-web/src/main/webapp/WEB-INF/content/admin/login.jsp)
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/auth/login.jsp (rev 0)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/auth/login.jsp 2014-03-23 13:32:50 UTC (rev 1162)
@@ -0,0 +1,42 @@
+<!--
+ #%L
+ Coser :: Web
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
+ %%
+ 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%
+ -->
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<%@taglib uri="/struts-tags" prefix="s" %>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title><s:text name="message.admin.title" /></title>
+ </head>
+ <body>
+
+ <h2><s:text name="message.admin.title" /></h2>
+
+ <h3><s:text name="message.admin.loginrequiered" /></h3>
+
+ <s:form action="perform-login" method="post">
+ <s:actionerror />
+ <s:textfield name="login" label="%{getText('message.admin.login')}" />
+ <s:password name="password" label="%{getText('message.admin.password')}" />
+ <s:submit value="%{getText('message.common.validform')}"/>
+ </s:form>
+
+ </body>
+</html>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-03-20 08:24:15 UTC (rev 1161)
+++ trunk/pom.xml 2014-03-23 13:32:50 UTC (rev 1162)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>5.0.2</version>
+ <version>5.0.4</version>
</parent>
<groupId>fr.ifremer</groupId>
@@ -84,7 +84,7 @@
<coserI18nBundle>coser-i18n</coserI18nBundle>
<!-- Release configuration -->
- <releaseEmail>noreply(a)$forge.codelutin.com</releaseEmail>
+ <releaseEmailDomain>forge.codelutin.com</releaseEmailDomain>
<!-- Versions -->
<jaxxVersion>2.8.2</jaxxVersion>
@@ -252,6 +252,12 @@
</dependency>
<dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-json-plugin</artifactId>
+ <version>${struts.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.struts.xwork</groupId>
<artifactId>xwork-core</artifactId>
<version>${struts.version}</version>
1
0
Author: tchemit
Date: 2014-03-20 09:24:15 +0100 (Thu, 20 Mar 2014)
New Revision: 1161
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1161
Log:
use mavenpom 5.0.2
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-03-19 17:21:43 UTC (rev 1160)
+++ trunk/pom.xml 2014-03-20 08:24:15 UTC (rev 1161)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>5.0.1</version>
+ <version>5.0.2</version>
</parent>
<groupId>fr.ifremer</groupId>
@@ -83,6 +83,9 @@
<i18n.silent>true</i18n.silent>
<coserI18nBundle>coser-i18n</coserI18nBundle>
+ <!-- Release configuration -->
+ <releaseEmail>noreply(a)$forge.codelutin.com</releaseEmail>
+
<!-- Versions -->
<jaxxVersion>2.8.2</jaxxVersion>
<nuitonI18nVersion>3.0</nuitonI18nVersion>
1
0
r1160 - in trunk/coser-business/src: main/java/fr/ifremer/coser/bean main/java/fr/ifremer/coser/result main/java/fr/ifremer/coser/result/repository/echobase main/java/fr/ifremer/coser/result/repository/echobase/command main/java/fr/ifremer/coser/result/repository/legacy main/java/fr/ifremer/coser/result/repository/legacy/command main/java/fr/ifremer/coser/services test/java/fr/ifremer/coser/result/repository/legacy
by tchemit@users.forge.codelutin.com 19 Mar '14
by tchemit@users.forge.codelutin.com 19 Mar '14
19 Mar '14
Author: tchemit
Date: 2014-03-19 18:21:43 +0100 (Wed, 19 Mar 2014)
New Revision: 1160
Url: http://forge.codelutin.com/projects/coser/repository/revisions/1160
Log:
fixes #4753 (import in webserver) + fix some commands
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserMainRepositoryProvider.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/CopyRepositoryCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetResultNameCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesForExtractRawDataAndResultsCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepository.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProvider.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/AbstractLegacyCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetResultNameCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetSpeciesForExtractRawDataAndResultsCommand.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebResultService.java
trunk/coser-business/src/test/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProviderTest.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -22,25 +22,36 @@
package fr.ifremer.coser.bean;
+import fr.ifremer.coser.CoserTechnicalException;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.Properties;
/**
* RSufi result.
- *
+ *
* @author chatellier
* @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
*/
public class RSufiResult extends AbstractEntity {
/** serialVersionUID. */
private static final long serialVersionUID = -1337710082675120199L;
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(RSufiResult.class);
+
protected Date creationDate;
protected String name;
@@ -65,6 +76,7 @@
/** Utilisé seulement dans l'ui de visu des resultats (presence de carte ou non). */
protected boolean mapsAvailable;
+
/** Liste des nom de fichiers/dossier present dans other files */
protected List<File> otherFiles;
@@ -287,4 +299,30 @@
setMapsResult(Boolean.parseBoolean(props.getProperty("result.mapsResult")));
}
}
+
+ /**
+ * Save rsufi result (only properties file).
+ *
+ * @param rsufiResultDirectory rsufiresult directory
+ * @since 1.5
+ */
+ public void save(File rsufiResultDirectory) {
+
+ OutputStream outputStream = null;
+ try {
+ // sauvegarde des informations du resultat (properties)
+ File propertiesFile = new File(rsufiResultDirectory, "result.properties");
+ Properties props = toProperties();
+ outputStream = new FileOutputStream(propertiesFile);
+ props.store(outputStream, "Saved by " + getClass());
+ outputStream.close();
+ if (log.isDebugEnabled()) {
+ log.debug("Saving result properties file : " + propertiesFile);
+ }
+ } catch (IOException ex) {
+ throw new CoserTechnicalException("Can't save result", ex);
+ } finally {
+ IOUtils.closeQuietly(outputStream);
+ }
+ }
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserMainRepositoryProvider.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserMainRepositoryProvider.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserMainRepositoryProvider.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -29,6 +29,7 @@
import fr.ifremer.coser.result.repository.ResultRepositoryProvider;
import fr.ifremer.coser.result.repository.echobase.EchoBaseResultRepositoryProvider;
import fr.ifremer.coser.result.repository.legacy.LegacyResultRepositoryProvider;
+import fr.ifremer.coser.util.DataType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -62,11 +63,11 @@
// add legacy map repository
Preconditions.checkNotNull(config.getWebMapsProjectsDirectory());
- result.add(new LegacyResultRepositoryProvider(config, config.getWebMapsProjectsDirectory()));
+ result.add(new LegacyResultRepositoryProvider(config, config.getWebMapsProjectsDirectory(), ResultType.MAP));
// add legacy indicators repository
Preconditions.checkNotNull(config.getWebIndicatorsProjectsDirectory());
- result.add(new LegacyResultRepositoryProvider(config, config.getWebIndicatorsProjectsDirectory()));
+ result.add(new LegacyResultRepositoryProvider(config, config.getWebIndicatorsProjectsDirectory(), ResultType.INDICATOR));
// add EchoBase repository
Preconditions.checkNotNull(config.getWebEchobaseProjectsDirectory());
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepository.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -201,8 +201,8 @@
result = request.getExtractTypeList().contains(DataType.POPULATION) ||
request.getExtractTypeList().contains(DataType.COMMUNITY);
}
- if (isDataResult()) {
- result |= request.getExtractTypeList().contains(DataType.SOURCE);
+ if (!result && isDataResult()) {
+ result = request.getExtractTypeList().contains(DataType.SOURCE);
}
return result;
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/AbstractEchoBaseCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -172,6 +172,11 @@
return result;
}
+ protected Map<String, String> getMapSpeciesMap() {
+ Map<String, String> result = repository.getMapSpecies();
+ return result;
+ }
+
// --------------------------------------------------------------------- //
// --- Get indicator lists --------------------------------------------- //
// --------------------------------------------------------------------- //
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/CopyRepositoryCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/CopyRepositoryCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/CopyRepositoryCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -47,7 +47,7 @@
@Override
public VoidResult execute(CopyRepositoryRequest request) {
File basedir = repository.getBasedir();
- File targetDirectory = request.getTargetDirectory();
+ File targetDirectory = new File (request.getTargetDirectory(), repository.getProjectName());
try {
CoserUtils.customCopyDirectory(basedir, targetDirectory, FileFilterUtils.trueFileFilter());
} catch (IOException e) {
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetResultNameCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetResultNameCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetResultNameCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -25,7 +25,9 @@
import com.google.common.collect.Maps;
import fr.ifremer.coser.result.request.GetResultNameRequest;
import fr.ifremer.coser.result.result.MapResult;
+import fr.ifremer.coser.util.DataType;
+import java.util.List;
import java.util.Map;
/**
@@ -38,7 +40,18 @@
@Override
public boolean accept(GetResultNameRequest request) {
- return repository.matchExtractTypeList(request);
+ List<DataType> extractTypeList = request.getExtractTypeList();
+ boolean result = false;
+ if (extractTypeList.contains(DataType.MAP)) {
+ result = repository.isMapsResult();
+ }
+ if (!result && (extractTypeList.contains(DataType.POPULATION) || extractTypeList.contains(DataType.COMMUNITY))) {
+ result = repository.isIndicatorsResult();
+ }
+ if (!result && extractTypeList.contains(DataType.SOURCE)) {
+ result = repository.isDataResult();
+ }
+ return result;
}
@Override
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesForExtractRawDataAndResultsCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesForExtractRawDataAndResultsCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetSpeciesForExtractRawDataAndResultsCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -25,7 +25,9 @@
import com.google.common.collect.Maps;
import fr.ifremer.coser.result.request.GetSpeciesForExtractRawDataAndResultsRequest;
import fr.ifremer.coser.result.result.MapResult;
+import fr.ifremer.coser.util.DataType;
+import java.util.List;
import java.util.Map;
/**
@@ -45,10 +47,19 @@
public MapResult execute(GetSpeciesForExtractRawDataAndResultsRequest request) {
Map<String, String> map = Maps.newHashMap();
- // get all species for population indicators
- map.putAll(getPopulationSpeciesMap());
- // get all species for community indicators
- map.putAll(getCommunitySpeciesMap());
+ List<DataType> extractTypeList = request.getExtractTypeList();
+ if (extractTypeList.contains(DataType.MAP)) {
+ // get all species for maps
+ map.putAll(getMapSpeciesMap());
+ }
+ if (extractTypeList.contains(DataType.POPULATION)) {
+ // get all species for population indicators
+ map.putAll(getPopulationSpeciesMap());
+ }
+ if (extractTypeList.contains(DataType.COMMUNITY)) {
+ // get all species for community indicators
+ map.putAll(getCommunitySpeciesMap());
+ }
MapResult result = newMapResult(map);
return result;
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepository.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepository.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepository.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -139,10 +139,7 @@
this.speciesCodeToMapFile = EchoBaseProject.newSpeciesCodeToMapFileName(surveyName);
this.mapSpeciesFilenameFilter = EchoBaseProject.newMapSpeciesFilenameFilter(surveyName);
- this.id = String.format("%s::%s::%s",
- LegacyResultRepositoryType.ID,
- resultDirectory,
- path.getRsufiResult().isMapsResult() ? "Map" : "Indicator");
+ this.id = String.format("%s::%s", LegacyResultRepositoryType.ID, resultDirectory);
if (log.isInfoEnabled()) {
log.info("New result repository: " + id);
@@ -269,8 +266,8 @@
result = request.getExtractTypeList().contains(DataType.POPULATION) ||
request.getExtractTypeList().contains(DataType.COMMUNITY);
}
- if (isDataResult()) {
- result |= request.getExtractTypeList().contains(DataType.SOURCE);
+ if (!result && isDataResult()) {
+ result = request.getExtractTypeList().contains(DataType.SOURCE);
}
return result;
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProvider.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProvider.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProvider.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -32,6 +32,7 @@
import fr.ifremer.coser.bean.RSufiResultPath;
import fr.ifremer.coser.bean.Selection;
import fr.ifremer.coser.result.ResultRepositoryInitializationException;
+import fr.ifremer.coser.result.ResultType;
import fr.ifremer.coser.result.repository.ResultRepositoryProvider;
import fr.ifremer.coser.services.ProjectService;
import org.apache.commons.logging.Log;
@@ -62,9 +63,21 @@
*/
protected final CoserBusinessConfig config;
- public LegacyResultRepositoryProvider(CoserBusinessConfig config, File basedir) {
+ /**
+ * Hack to sanity repository {@link LegacyResultRepository#isMapsResult()} or
+ * {@link LegacyResultRepository#isIndicatorsResult()} flags.
+ *
+ * @see #sanityRepository(LegacyResultRepository)
+ */
+ protected final ResultType resultType;
+
+ public LegacyResultRepositoryProvider(CoserBusinessConfig config,
+ File basedir,
+ ResultType resultType) {
+ Preconditions.checkNotNull(config);
+ Preconditions.checkNotNull(basedir);
this.config = config;
- Preconditions.checkNotNull(basedir);
+ this.resultType = resultType;
this.basedir = basedir;
}
@@ -140,8 +153,7 @@
String surveyName = projectService.getProjectSurveyName(rSufiResult, r);
LegacyResultRepository repository = new LegacyResultRepository(existingProject, path, surveyName);
-
-
+ sanityRepository(repository);
if (log.isInfoEnabled()) {
log.info(String.format("Detected result: %s - %s", path.getProject().getName(), path.getRsufiResult().getName()));
}
@@ -158,4 +170,44 @@
}
return result;
}
+
+ /**
+ * Sanity the given repository.
+ *
+ * @param repository repository to sanity
+ */
+ protected void sanityRepository(LegacyResultRepository repository) {
+ if (resultType != null) {
+
+ boolean needSave = false;
+ RSufiResult rsufiResult = repository.getPath().getRsufiResult();
+ if (resultType == ResultType.MAP) {
+ // map repository
+ if (repository.isIndicatorsResult()) {
+ // can't be both indicator result and maps result
+ needSave = true;
+ rsufiResult.setIndicatorsResult(false);
+ if (log.isInfoEnabled()) {
+ log.info("Will sanity repository to only map result");
+ }
+ }
+ }
+ if (resultType == ResultType.INDICATOR) {
+ {
+ // indicator repository
+ if (repository.isMapsResult()) {
+ // can't be both indicator result and maps result
+ needSave = true;
+ rsufiResult.setMapsResult(false);
+ if (log.isInfoEnabled()) {
+ log.info("Will sanity repository to only indicator result");
+ }
+ }
+ }
+ if (needSave) {
+ rsufiResult.save(repository.getResultDirectory());
+ }
+ }
+ }
+ }
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/AbstractLegacyCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/AbstractLegacyCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/AbstractLegacyCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -235,6 +235,11 @@
return result;
}
+ protected Map<String, String> getMapSpeciesMap() {
+ //TODO
+ return getPopulationSpeciesMap();
+ }
+
// --------------------------------------------------------------------- //
// --- Get indicator lists --------------------------------------------- //
// --------------------------------------------------------------------- //
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetResultNameCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetResultNameCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetResultNameCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -25,7 +25,9 @@
import com.google.common.collect.Maps;
import fr.ifremer.coser.result.request.GetResultNameRequest;
import fr.ifremer.coser.result.result.MapResult;
+import fr.ifremer.coser.util.DataType;
+import java.util.List;
import java.util.Map;
/**
@@ -38,7 +40,18 @@
@Override
public boolean accept(GetResultNameRequest request) {
- return repository.matchExtractTypeList(request);
+ List<DataType> extractTypeList = request.getExtractTypeList();
+ boolean result = false;
+ if (extractTypeList.contains(DataType.MAP)) {
+ result = repository.isMapsResult();
+ }
+ if (!result && (extractTypeList.contains(DataType.POPULATION) || extractTypeList.contains(DataType.COMMUNITY))) {
+ result = repository.isIndicatorsResult();
+ }
+ if (!result && extractTypeList.contains(DataType.SOURCE)) {
+ result = repository.isDataResult();
+ }
+ return result;
}
@Override
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetSpeciesForExtractRawDataAndResultsCommand.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetSpeciesForExtractRawDataAndResultsCommand.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetSpeciesForExtractRawDataAndResultsCommand.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -23,9 +23,11 @@
*/
import com.google.common.collect.Maps;
+import fr.ifremer.coser.result.request.GetSpeciesForExtractRawDataAndResultsRequest;
import fr.ifremer.coser.result.result.MapResult;
-import fr.ifremer.coser.result.request.GetSpeciesForExtractRawDataAndResultsRequest;
+import fr.ifremer.coser.util.DataType;
+import java.util.List;
import java.util.Map;
/**
@@ -47,10 +49,19 @@
Map<String, String> map = Maps.newHashMap();
- // get all species for population indicators
- map.putAll(getPopulationSpeciesMap());
- // get all species for community indicators
- map.putAll(getCommunitySpeciesMap());
+ List<DataType> extractTypeList = request.getExtractTypeList();
+ if (extractTypeList.contains(DataType.MAP)) {
+ // get all species for maps
+ map.putAll(getMapSpeciesMap());
+ }
+ if (extractTypeList.contains(DataType.POPULATION)) {
+ // get all species for population indicators
+ map.putAll(getPopulationSpeciesMap());
+ }
+ if (extractTypeList.contains(DataType.COMMUNITY)) {
+ // get all species for community indicators
+ map.putAll(getCommunitySpeciesMap());
+ }
MapResult result = newMapResult(map);
return result;
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ClientResultService.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -530,8 +530,18 @@
}
}
- // copie vers le dossier dedie
- FileUtils.copyDirectory(projectsDirectory, rsufiDirectory, mFileFilters);
+ // get all files to compress
+ Collection<File> files = FileUtil.getFilteredElements(projectsDirectory,
+ mFileFilters,
+ true);
+
+ // create a temp zip file
+ File tempZip = File.createTempFile("Coserextractrsufi-", ".zip");
+ ZipUtil.compressFiles(tempZip, projectsDirectory, files, false);
+ // unzip it to correct directory
+ ZipUtil.uncompress(tempZip, rsufiDirectory);
+ // delete temp zip
+ FileUtils.forceDelete(tempZip);
} catch (CoserBusinessException e) {
throw new CoserTechnicalException("Can't prepare upload data", e);
} catch (IOException e) {
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -1242,12 +1242,12 @@
* @param rsufiResult rsufi result
* @throws CoserBusinessException
*/
- protected void saveRSufiResult(File rsufiResultDirectory, RSufiResult rsufiResult) throws CoserBusinessException {
+ public void saveRSufiResult(File rsufiResultDirectory, RSufiResult rsufiResult) throws CoserBusinessException {
OutputStream outputStream = null;
try {
// sauvegarde des informations du resultat (properties)
- File propertiesFile = new File(rsufiResultDirectory, "result.properties");
+ File propertiesFile = new File(rsufiResultDirectory,"result.properties");
Properties props = rsufiResult.toProperties();
outputStream = new FileOutputStream(propertiesFile);
props.store(outputStream, null);
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebResultService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebResultService.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebResultService.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -57,6 +57,7 @@
import fr.ifremer.coser.util.DataType;
import fr.ifremer.coser.util.io.MultipleFileFilter;
import fr.ifremer.coser.util.io.OneRSufiResultFileFilter;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -283,6 +284,10 @@
CoserMainRepositoryProvider mainRepositoryProvider =
new CoserMainRepositoryProvider(Sets.<ResultRepositoryProvider<?>>newHashSet(provider));
+ if (CollectionUtils.isEmpty(mainRepositoryProvider.getResultRepositories())) {
+ // no repository found, nothing to do
+ return;
+ }
CoserRequestContext context = uploadContext.context;
// recuperation des noms zone des nouveau fichiers
@@ -306,18 +311,22 @@
List<String> zonesToDelete = Lists.newArrayList(zonesToImport);
zonesToDelete.retainAll(existingZones);
- // suppression des results deja existants
- DeleteResultsRequest deleteRequest = requestBuilder(context, DeleteResultsRequest.class).
- addZoneList(zonesToDelete).
- toRequest();
- executeAll(mainRepositoryProvider, context, deleteRequest);
+ if (CollectionUtils.isNotEmpty(zonesToDelete)) {
+ // suppression des results deja existants
+ DeleteResultsRequest deleteRequest = requestBuilder(context, DeleteResultsRequest.class).
+ addZoneList(zonesToDelete).
+ toRequest();
+ executeAll(mainRepositoryProvider, context, deleteRequest);
+ }
- // ajout des nouvelles zones
- CopyRepositoryRequest addRequest = requestBuilder(context, CopyRepositoryRequest.class).
- addZoneList(zonesToDelete).
- addTargetDirectory(getConfig().getWebEchobaseProjectsDirectory()).
- toRequest();
- executeAll(mainRepositoryProvider, context, addRequest);
+ if (CollectionUtils.isNotEmpty(zonesToImport)) {
+ // ajout des nouvelles zones
+ CopyRepositoryRequest addRequest = requestBuilder(context, CopyRepositoryRequest.class).
+ addZoneList(Lists.newArrayList(zonesToImport)).
+ addTargetDirectory(getConfig().getWebEchobaseProjectsDirectory()).
+ toRequest();
+ executeAll(mainRepositoryProvider, context, addRequest);
+ }
// mise a jour du context
uploadContext.indicatorsResultZoneIds.putAll(indicatorsResultZoneIds);
@@ -332,9 +341,13 @@
GetResultNameRequest rawDataRequest) throws CoserBusinessException, IOException {
// Creation d'un repository provider
- LegacyResultRepositoryProvider provider = new LegacyResultRepositoryProvider(getConfig(), tempDirectory);
+ LegacyResultRepositoryProvider provider = new LegacyResultRepositoryProvider(getConfig(), tempDirectory, null);
CoserMainRepositoryProvider mainRepositoryProvider = new CoserMainRepositoryProvider(Sets.<ResultRepositoryProvider<?>>newHashSet(provider));
+ if (CollectionUtils.isEmpty(mainRepositoryProvider.getResultRepositories())) {
+ // no repository found, nothing to do
+ return;
+ }
ProjectService projectService = new ProjectService(getConfig());
File projectsDirectory = getConfig().getWebIndicatorsProjectsDirectory();
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProviderTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProviderTest.java 2014-03-19 10:56:06 UTC (rev 1159)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryProviderTest.java 2014-03-19 17:21:43 UTC (rev 1160)
@@ -22,7 +22,9 @@
* #L%
*/
+import fr.ifremer.coser.result.ResultType;
import fr.ifremer.coser.services.CoserTestAbstract;
+import fr.ifremer.coser.util.DataType;
import org.junit.Assert;
import org.junit.Test;
@@ -49,7 +51,7 @@
File basedir = config.getWebIndicatorsProjectsDirectory();
- LegacyResultRepositoryProvider provider = new LegacyResultRepositoryProvider(config, basedir);
+ LegacyResultRepositoryProvider provider = new LegacyResultRepositoryProvider(config, basedir, ResultType.INDICATOR);
Set<LegacyResultRepository> resultRepositories = provider.loadRepositories();
Assert.assertNotNull(resultRepositories);
1
0