|
From: <de...@us...> - 2014-03-04 23:30:13
|
Revision: 8651
http://sourceforge.net/p/fudaa/svn/8651
Author: deniger
Date: 2014-03-04 23:30:10 +0000 (Tue, 04 Mar 2014)
Log Message:
-----------
CRUE-617
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-otfa/nbactions.xml
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueConverterCommonParameter.java
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueDaoStructureOptions.java
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaCampagneItem.java
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaExecutor.java
trunk/soft/fudaa-crue/crue-otfa/src/test/java/org/fudaa/dodico/crue/io/otfa/TestCrueOTFA.java
trunk/soft/fudaa-crue/crue-otfa/src/test/resources/otfa/campagne.otfa.xml
Added Paths:
-----------
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutor.java
Modified: trunk/soft/fudaa-crue/crue-otfa/nbactions.xml
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/nbactions.xml 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/nbactions.xml 2014-03-04 23:30:10 UTC (rev 8651)
@@ -7,7 +7,7 @@
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
- <exec.args>-Xmx64M -classpath %classpath ${packageClassName}</exec.args>
+ <exec.args>-Xmx512M -DSiteConfigDir="C:\data\Fudaa-Crue\etc" -classpath %classpath org.fudaa.dodico.crue.projet.otfa.OtfaBatch C:\data\Fudaa-Crue\Data\otfa-simple-valide.otfa.xml</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
@@ -18,7 +18,7 @@
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
- <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -Xmx64M -classpath %classpath ${packageClassName}</exec.args>
+ <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -Xmx512M -DSiteConfigDir="C:\data\Fudaa-Crue\etc" -classpath %classpath org.fudaa.dodico.crue.projet.otfa.OtfaBatch C:\data\Fudaa-Crue\Data\otfa-simple-valide.otfa.xml</exec.args>
<exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen>
</properties>
@@ -30,7 +30,7 @@
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
- <exec.args>${profiler.args} -Xmx64M -classpath %classpath ${packageClassName}</exec.args>
+ <exec.args>-Xmx512M -DSiteConfigDir="C:\data\Fudaa-Crue\etc" -classpath %classpath org.fudaa.dodico.crue.projet.otfa.OtfaBatch C:\data\Fudaa-Crue\Data\otfa-simple-valide.otfa.xml</exec.args>
<exec.executable>${profiler.java}</exec.executable>
</properties>
</action>
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueConverterCommonParameter.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueConverterCommonParameter.java 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueConverterCommonParameter.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -25,6 +25,9 @@
dao.Scenario = metier.getScenarioNom();
dao.Coeur = metier.getCoeurName();
dao.LancerCalcul = metier.isLaunchCompute();
+ dao.Transitoire = metier.isRapportOnTransitoire();
+ dao.CheminCSV = metier.getCheminCSV();
+ dao.Rapport = metier.getRapport();
return dao;
}
@@ -34,6 +37,9 @@
metier.setScenarioNom(dao.Scenario);
metier.setCoeurName(dao.Coeur);
metier.setLaunchCompute(dao.LancerCalcul);
+ metier.setRapportOnTransitoire(dao.Transitoire);
+ metier.setCheminCSV(dao.CheminCSV);
+ metier.setRapport(dao.Rapport);
return metier;
}
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueDaoStructureOptions.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueDaoStructureOptions.java 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/io/common/CrueDaoStructureOptions.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -43,5 +43,8 @@
public String Scenario;
public String Coeur;
public boolean LancerCalcul;
+ public boolean Transitoire;
+ public String Rapport;
+ public String CheminCSV;
}
}
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaCampagneItem.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaCampagneItem.java 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaCampagneItem.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -1,6 +1,7 @@
package org.fudaa.dodico.crue.projet.otfa;
import java.io.File;
+import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.lang.StringUtils;
@@ -17,6 +18,9 @@
private String scenarioNom;
private boolean launchCompute;
private String coeurName;
+ private boolean rapportOnTransitoire;
+ private String rapport;
+ private String cheminCSV;
public OtfaCampagneItem() {
}
@@ -30,12 +34,37 @@
}
}
+ public boolean isRapportOnTransitoire() {
+ return rapportOnTransitoire;
+ }
+
+ public void setRapportOnTransitoire(boolean rapportOnTransitoire) {
+ this.rapportOnTransitoire = rapportOnTransitoire;
+ }
+
+ public String getRapport() {
+ return rapport;
+ }
+
+ public void setRapport(String rapport) {
+ this.rapport = rapport;
+ }
+
+ public String getCheminCSV() {
+ return cheminCSV;
+ }
+
+ public void setCheminCSV(String cheminCSV) {
+ this.cheminCSV = cheminCSV;
+ }
+
+
public boolean isEmpty() {
return StringUtils.isBlank(coeurName) && StringUtils.isBlank(scenarioNom) && StringUtils.isBlank(etuFile);
}
/**
- *
+ *
* @return true si la version utilisee est Crue9.
*/
public boolean isCrue9() {
@@ -55,7 +84,7 @@
/**
* @return le fichier en prenant en compte le répertoire de otfa
- * @param le répertoire contenant le fichier otfa.
+ * @param otfaDir répertoire contenant le fichier otfa.
*/
public File getEtuFile(File otfaDir) {
if (StringUtils.isBlank(etuFile)) {
@@ -122,54 +151,48 @@
*/
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((coeurName == null) ? 0 : coeurName.hashCode());
- result = prime * result + ((etuFile == null) ? 0 : etuFile.hashCode());
- result = prime * result + (launchCompute ? 1231 : 1237);
- result = prime * result + ((scenarioNom == null) ? 0 : scenarioNom.hashCode());
- return result;
+ int hash = 7;
+ hash = 19 * hash + Objects.hashCode(this.etuFile);
+ hash = 19 * hash + Objects.hashCode(this.scenarioNom);
+ hash = 19 * hash + (this.launchCompute ? 1 : 0);
+ hash = 19 * hash + Objects.hashCode(this.coeurName);
+ hash = 19 * hash + (this.rapportOnTransitoire ? 1 : 0);
+ hash = 19 * hash + Objects.hashCode(this.rapport);
+ hash = 19 * hash + Objects.hashCode(this.cheminCSV);
+ return hash;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
- OtfaCampagneItem other = (OtfaCampagneItem) obj;
- if (coeurName == null) {
- if (other.coeurName != null) {
- return false;
- }
- } else if (!coeurName.equals(other.coeurName)) {
+ final OtfaCampagneItem other = (OtfaCampagneItem) obj;
+ if (!Objects.equals(this.etuFile, other.etuFile)) {
return false;
}
- if (etuFile == null) {
- if (other.etuFile != null) {
- return false;
- }
- } else if (!etuFile.equals(other.etuFile)) {
+ if (!Objects.equals(this.scenarioNom, other.scenarioNom)) {
return false;
}
- if (launchCompute != other.launchCompute) {
+ if (this.launchCompute != other.launchCompute) {
return false;
}
- if (scenarioNom == null) {
- if (other.scenarioNom != null) {
- return false;
- }
- } else if (!scenarioNom.equals(other.scenarioNom)) {
+ if (!Objects.equals(this.coeurName, other.coeurName)) {
return false;
}
+ if (this.rapportOnTransitoire != other.rapportOnTransitoire) {
+ return false;
+ }
+ if (!Objects.equals(this.rapport, other.rapport)) {
+ return false;
+ }
+ if (!Objects.equals(this.cheminCSV, other.cheminCSV)) {
+ return false;
+ }
return true;
}
+
}
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaContentValidator.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -11,6 +11,7 @@
import org.fudaa.ctulu.CtuluLogGroup;
import org.fudaa.dodico.crue.common.BusinessMessages;
import org.fudaa.dodico.crue.common.CrueOperationResult;
+import org.fudaa.dodico.crue.common.io.CrueIOResu;
import org.fudaa.dodico.crue.config.coeur.CoeurConfigContrat;
import org.fudaa.dodico.crue.config.coeur.CoeurManager;
import org.fudaa.dodico.crue.config.coeur.CrueVersionType;
@@ -21,6 +22,11 @@
import org.fudaa.dodico.crue.metier.etude.EMHProjet;
import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario;
import org.fudaa.dodico.crue.projet.EMHProjetController;
+import org.fudaa.dodico.crue.projet.report.ReportContentType;
+import org.fudaa.dodico.crue.projet.report.ReportIndexReader;
+import org.fudaa.dodico.crue.projet.report.ReportIndexReaderHelper;
+import org.fudaa.dodico.crue.projet.report.ReportViewLineInfo;
+import org.fudaa.dodico.crue.projet.report.ReportViewLineInfoAndType;
/**
* @author deniger
@@ -92,6 +98,9 @@
if (complete) {
validScenarioExist(campagne, logsByLineId);
}
+ if (complete) {
+ validReportExist(campagne, logsByLineId);
+ }
return logGroup;
}
@@ -277,6 +286,46 @@
}
+ private boolean rapportIsBlankOrExists(OtfaCampagne campagne, OtfaCampagneItem item, CtuluLog log) {
+ if (StringUtils.isNotBlank(item.getRapport())) {
+ File etuFile = item.getEtuFile(campagne.getOtfaDir());
+ if (etuFile.exists()) {
+ final ReportContentType contentType = ReportViewLineInfoAndType.getContentType(item.getRapport());
+ if (contentType == null) {
+ return false;
+ }
+ CoeurConfigContrat coeur = getCoeurForItem(item, etuFile);
+ //validation effectuée auparavant:
+ if (coeur == null) {
+ return false;
+ }
+ final CrueOperationResult<EMHProjet> result = EMHProjetController.readProjet(etuFile, coeur);
+ if (result == null || result.getResult() == null) {
+ return false;
+ }
+ ReportIndexReaderHelper helper = new ReportIndexReaderHelper(result.getResult());
+ return helper.containsReportWithIdOrDescription(contentType, item.getRapport()) != null;
+
+ }
+
+ }
+ return true;
+ }
+
+ private void validReportExist(OtfaCampagne campagne, Map<Integer, CtuluLog> logsByLineId) {
+
+ for (OtfaCampagneLine line : campagne.getLines()) {
+ CtuluLog log = logsByLineId.get(line.getIndice());
+ if (!rapportIsBlankOrExists(campagne, line.getReference(), log)) {
+ log.addSevereError("otfa.validator.reportNotFoundReference", line.getReference().getRapport());
+ }
+ if (!rapportIsBlankOrExists(campagne, line.getCible(), log)) {
+ log.addSevereError("otfa.validator.reportNotFoundCible", line.getReference().getRapport());
+ }
+
+ }
+ }
+
private void validScenarioExist(OtfaCampagne campagne, OtfaCampagneItem item,
final Map<String, Map<String, CrueVersionType>> scenariosByEtudes, CtuluLog log) {
File etuFile = item.getEtuFile(campagne.getOtfaDir());
@@ -311,13 +360,15 @@
CrueVersionType versionItem = item.isCrue9() ? CrueVersionType.CRUE9 : CrueVersionType.CRUE10;
final CrueVersionType scenarioVersion = scenarios.get(name);
+
if (!versionItem.equals(scenarioVersion)) {
//attention, il faut également prendre en compte le cas ou le coeur crue10 n'existe pas :
//erreur relevée par ailleurs: il faut eviter les remontées multiples
if (versionItem.equals(CrueVersionType.CRUE10) && !coeurExist(item.getCoeurName())) {
- Logger.getLogger(OtfaContentValidator.class.getName()).log(Level.INFO,
- "pas d'erreur le scenario {0} car deja remonté dans un test precedent",
- scenarioVersion);
+ Logger.getLogger(OtfaContentValidator.class
+ .getName()).log(Level.INFO,
+ "pas d'erreur le scenario {0} car deja remonté dans un test precedent",
+ scenarioVersion);
} else {
log.addSevereError("otfa.validator.crueVersionNonCompatible", name, scenarioVersion.getDisplayName(),
versionItem.getDisplayName());
Modified: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaExecutor.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaExecutor.java 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaExecutor.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -9,6 +9,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.CtuluLogGroup;
import org.fudaa.ctulu.CtuluLogLevel;
@@ -279,6 +280,7 @@
}
EMHProjet projet = projetResult.getResult();
+
EMHProjetController controller = new EMHProjetController(projet, user);
ManagerEMHScenario managerScenario = projet.getScenario(item.getScenarioNom());
@@ -364,6 +366,14 @@
}
}
}
+ if (StringUtils.isNotEmpty(item.getRapport())) {
+ OtfaReportExecutor report = new OtfaReportExecutor(projet, emhScenario, item, campagne);
+ CtuluLog log = report.exportCSV();
+ if (log.isNotEmpty()) {
+ logs.addLog(null);
+ }
+
+ }
}
return new CrueOperationResult<EMHScenario>(emhScenario, logs.createCleanGroup());
Added: trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutor.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutor.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaReportExecutor.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -0,0 +1,55 @@
+/*
+ GPL 2
+ */
+package org.fudaa.dodico.crue.projet.otfa;
+
+import java.io.File;
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.dodico.crue.common.BusinessMessages;
+import org.fudaa.dodico.crue.metier.emh.EMHScenario;
+import org.fudaa.dodico.crue.metier.etude.EMHProjet;
+import org.fudaa.dodico.crue.projet.report.ReportContentType;
+import org.fudaa.dodico.crue.projet.report.ReportIndexReaderHelper;
+import org.fudaa.dodico.crue.projet.report.ReportViewLineInfoAndType;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class OtfaReportExecutor {
+
+ private final EMHProjet projet;
+ private final EMHScenario emhScenario;
+ private final OtfaCampagneItem item;
+ private final OtfaCampagne campagne;
+
+ OtfaReportExecutor(EMHProjet projet, EMHScenario emhScenario, OtfaCampagneItem item, OtfaCampagne campagne) {
+ this.projet = projet;
+ this.emhScenario = emhScenario;
+ this.item = item;
+ this.campagne = campagne;
+ }
+
+ CtuluLog exportCSV() {
+ CtuluLog log = new CtuluLog(BusinessMessages.RESOURCE_BUNDLE);
+ ReportIndexReaderHelper helper = new ReportIndexReaderHelper(projet);
+ final ReportContentType contentType = ReportViewLineInfoAndType.getContentType(item.getRapport());
+ if (contentType == null) {
+ log.addSevereError("otfa.report.typeUnknown", item.getRapport());
+ return log;
+ }
+ final ReportViewLineInfoAndType reportInfoAndType = helper.containsReportWithIdOrDescription(contentType, item.getRapport());
+ if (reportInfoAndType == null) {
+ log.addSevereError("otfa.report.notFound", item.getRapport());
+ return log;
+ }
+ File dir = new File(projet.getInfos().getDirOfRapports(), reportInfoAndType.getType().getFolderName());
+ File xml = new File(dir, reportInfoAndType.getInfo().getFilename());
+ if (!xml.exists()) {
+ log.addSevereError("otfa.report.fileNotFound", xml.getAbsolutePath());
+ return log;
+ }
+ return log;
+ }
+
+}
Modified: trunk/soft/fudaa-crue/crue-otfa/src/test/java/org/fudaa/dodico/crue/io/otfa/TestCrueOTFA.java
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/test/java/org/fudaa/dodico/crue/io/otfa/TestCrueOTFA.java 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/test/java/org/fudaa/dodico/crue/io/otfa/TestCrueOTFA.java 2014-03-04 23:30:10 UTC (rev 8651)
@@ -119,6 +119,9 @@
item.setScenarioNom("Sc_M3-0_c9");
item.setCoeurName("Crue9");
item.setLaunchCompute(true);
+ item.setCheminCSV("cheminCsv1");
+ item.setRapport("rapport1/test.xml");
+ item.setRapportOnTransitoire(true);
line.setReference(item);
@@ -128,6 +131,9 @@
item.setScenarioNom("Sc_M3-0_c9");
item.setCoeurName("Crue10.1");
item.setLaunchCompute(true);
+ item.setCheminCSV("cheminCsv2");
+ item.setRapport("rapport2/test.xml");
+ item.setRapportOnTransitoire(false);
line.setCible(item);
@@ -166,6 +172,8 @@
assertEquals(expected.getCommentaire(), actual.getCommentaire());
assertEquals(expected.getReference(), actual.getReference());
assertEquals(expected.getCible(), actual.getCible());
+ assertEquals(expected.isLancerComparaison(), actual.isLancerComparaison());
+
}
private static void assertEquals(OtfaCampagneItem expected, OtfaCampagneItem actual) {
@@ -173,6 +181,9 @@
assertEquals(expected.getScenarioNom(), actual.getScenarioNom());
assertEquals(expected.getCoeurName(), actual.getCoeurName());
assertEquals(expected.isLaunchCompute(), actual.isLaunchCompute());
+ assertEquals(expected.getCheminCSV(), actual.getCheminCSV());
+ assertEquals(expected.getRapport(), actual.getRapport());
+ assertEquals(expected.isRapportOnTransitoire(), actual.isRapportOnTransitoire());
}
@Override
Modified: trunk/soft/fudaa-crue/crue-otfa/src/test/resources/otfa/campagne.otfa.xml
===================================================================
--- trunk/soft/fudaa-crue/crue-otfa/src/test/resources/otfa/campagne.otfa.xml 2014-03-04 23:29:03 UTC (rev 8650)
+++ trunk/soft/fudaa-crue/crue-otfa/src/test/resources/otfa/campagne.otfa.xml 2014-03-04 23:30:10 UTC (rev 8651)
@@ -30,12 +30,18 @@
<Scenario>Sc_M3-0_c9</Scenario>
<Coeur>Crue9</Coeur>
<LancerCalcul>true</LancerCalcul>
+ <Transitoire>true</Transitoire>
+ <Rapport>rapport1/test.xml</Rapport>
+ <CheminCSV>cheminCsv1</CheminCSV>
</Reference>
<Cible>
<Etude>C:/etudes/v10.2/Etu3-0</Etude>
<Scenario>Sc_M3-0_c9</Scenario>
<Coeur>Crue10.1</Coeur>
<LancerCalcul>true</LancerCalcul>
+ <Transitoire>false</Transitoire>
+ <Rapport>rapport2/test.xml</Rapport>
+ <CheminCSV>cheminCsv2</CheminCSV>
</Cible>
</LigneCampagne>
<LigneCampagne Numero="2">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|