|
From: <de...@us...> - 2012-12-05 14:00:39
|
Revision: 8098
http://fudaa.svn.sourceforge.net/fudaa/?rev=8098&view=rev
Author: deniger
Date: 2012-12-05 14:00:27 +0000 (Wed, 05 Dec 2012)
Log Message:
-----------
CRUE-349
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaExecutor.java
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/PostRunService.java
trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/CrueRunLauncher.java
trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java
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 2012-12-04 16:27:08 UTC (rev 8097)
+++ trunk/soft/fudaa-crue/crue-otfa/src/main/java/org/fudaa/dodico/crue/projet/otfa/OtfaExecutor.java 2012-12-05 14:00:27 UTC (rev 8098)
@@ -24,6 +24,7 @@
import org.fudaa.dodico.crue.io.ctfa.CrueCTFAReaderWriter;
import org.fudaa.dodico.crue.io.otfa.OtfaFileUtils;
import org.fudaa.dodico.crue.io.rtfa.CrueRTFAReaderWriter;
+import org.fudaa.dodico.crue.metier.CrueFileType;
import org.fudaa.dodico.crue.metier.emh.EMHScenario;
import org.fudaa.dodico.crue.metier.etude.EMHProjet;
import org.fudaa.dodico.crue.metier.etude.EMHRun;
@@ -34,8 +35,12 @@
import org.fudaa.dodico.crue.projet.ScenarioLoaderOperation;
import org.fudaa.dodico.crue.projet.calcul.CalculCrueContrat;
import org.fudaa.dodico.crue.projet.calcul.CalculCrueRunnerManager;
+import org.fudaa.dodico.crue.projet.calcul.Crue10OptionBuilder;
+import org.fudaa.dodico.crue.projet.calcul.ExecConfigurer;
import org.fudaa.dodico.crue.projet.calcul.ExecInputDefault;
import org.fudaa.dodico.crue.projet.create.InfosCreation;
+import org.fudaa.dodico.crue.projet.create.RunCalculOption;
+import org.fudaa.dodico.crue.projet.create.RunCreatorOptions;
import org.joda.time.LocalDateTime;
/**
@@ -43,7 +48,7 @@
*
*/
public class OtfaExecutor {
-
+
private final CoeurManager coeurManager;
private final ConnexionInformation user;
private final CalculCrueRunnerManager calculRunner;
@@ -59,22 +64,22 @@
this.user = user;
this.calculRunner = calculRunner;
}
-
+
public OtfaCampagneResult launch(OtfaCampagne in) {
OtfaCampagneResult result = new OtfaCampagneResult();
-
+
result.setCommentaire(in.getCommentaire());
result.setDate(new LocalDateTime());
-
+
OtfaContentValidator validator = new OtfaContentValidator(coeurManager);
CtuluLogGroup campagneLogs = validator.valid(in, true);
-
+
result.setGlobalValidation(campagneLogs);
CtuluLogGroup preloadSelector = executor.preloadSelector();
if (preloadSelector != null && preloadSelector.containsSomething()) {
campagneLogs.addGroup(preloadSelector);
}
-
+
if (campagneLogs.containsFatalError()) {
return result;
}
@@ -87,7 +92,7 @@
if (ctfaFile.isFile()) {
ctfaFile.delete();
}
-
+
if (rtfaFile.isFile()) {
rtfaFile.delete();
}
@@ -123,7 +128,7 @@
if (ctfaFile.isFile()) {
ctfaFile.delete();
}
-
+
if (rtfaFile.isFile()) {
rtfaFile.delete();
}
@@ -133,10 +138,10 @@
cftaWriter.writeXMLMetier(resu, ctfaFile, saveRtfaCtfalogs.createLog(), null);
final CrueRTFAReaderWriter rftaWriter = new CrueRTFAReaderWriter("1.2");
rftaWriter.writeXMLMetier(resu, rtfaFile, saveRtfaCtfalogs.createLog(), null);
-
+
return result;
}
-
+
private List<OtfaCampagneLineResult> processAllLines(OtfaCampagne in, CtuluLogGroup campagneLogs) {
if (in.getReferenceOptions().isEffacerRunAvant() || in.getCibleOptions().isEffacerRunAvant()) {
CtuluLogGroup logsBefore = campagneLogs.createGroup("otfa.deleteRunBefore.logs");
@@ -156,13 +161,13 @@
}
return linesResult;
}
-
+
private OtfaCampagneLineResult launch(OtfaCampagne campagne, OtfaCampagneLine line) {
final OtfaCampagneLineResult result = new OtfaCampagneLineResult();
final CtuluLogGroup logs = new CtuluLogGroup(BusinessMessages.RESOURCE_BUNDLE);
logs.setDescription("otfa.launchLine");
logs.setDescriptionArgs(Integer.toString(line.getIndice()));
-
+
result.setInitialLine(line);
result.setLogs(logs);
@@ -179,23 +184,23 @@
if (stoppedAskedByUser()) {
return result;
}
-
-
+
+
final CoeurConfigContrat coeurForItem = getCoeurForItem(campagne, line.getReference());
//la config est celle de la référence.
CrueConfigMetier config = coeurForItem.getCrueConfigMetier();
final EMHScenario refScenario = referenceResult == null ? null : referenceResult.getResult();
final EMHScenario cibleScenario = cibleResult == null ? null : cibleResult.getResult();
-
-
+
+
if ((refScenario != null) && (cibleScenario != null)) {
result.setComparisonResult(executor.compare(config, refScenario, cibleScenario, getSelectorType(line)));
}
-
+
return result;
}
-
+
protected ComparaisonSelectorEnum getSelectorType(OtfaCampagneLine line) {
if (line.getReference().isCrue9() && line.getFinalCible().isCrue9()) {
return ComparaisonSelectorEnum.C9_C9;
@@ -205,7 +210,7 @@
}
return ComparaisonSelectorEnum.C9_C10;
}
-
+
public CoeurConfigContrat getCoeurForItem(OtfaCampagne campagne, OtfaCampagneItem item) {
File etuFile = item.getEtuFile(campagne.getOtfaDir());
final CoeurConfigContrat coeur;
@@ -219,11 +224,11 @@
}
CalculCrueContrat currentRunner;
boolean batch;
-
+
public boolean isBatch() {
return batch;
}
-
+
public void setBatch(boolean batch) {
this.batch = batch;
}
@@ -246,10 +251,10 @@
if (projetResult.getResult() == null || stoppedAskedByUser()) {
return new CrueOperationResult<EMHScenario>(null, logs.createCleanGroup());
}
-
+
EMHProjet projet = projetResult.getResult();
EMHProjetController controller = new EMHProjetController(projet, user);
-
+
ManagerEMHScenario managerScenario = projet.getScenario(item.getScenarioNom());
// Conversion
if (ref != null) {
@@ -259,11 +264,11 @@
final CrueOperationResult<EMHScenarioContainer> conversionResult = controller.convertScenario(ref.getScenarioNom(), infos,
ref.getEtuFile(
campagne.getOtfaDir()));
-
+
logs.addGroup(conversionResult.getLogs().createCleanGroup());
EMHProjetController.writeProjet(etuFile, projet, logs, user);
projetResult = this.loadProjet(etuFile, getCoeurForItem(campagne, item));
-
+
logs.addGroup(projetResult.getLogs().createCleanGroup());
if (projetResult.getResult() == null) {
return new CrueOperationResult<EMHScenario>(null, (CtuluLog) null);
@@ -273,12 +278,14 @@
managerScenario = projet.getScenario(item.getScenarioNom());
controller = new EMHProjetController(projet, user);//important de faire cela pour la reference a projet.
}
-
+
if (item.isLaunchCompute()) {
-
-
// Création du run et sauvegarde dans l'étude
- CrueOperationResult<EMHRun> runResult = controller.createRun(managerScenario.getNom(),
+ //pour créer le runs on utilise des options sans run afin de forcer le lancement complet des calculs.
+ //fait suite à la demande:CRUE-349
+ final RunCreatorOptions runOptions = new RunCreatorOptions(null);
+ runOptions.setComputeAll(RunCalculOption.FORCE_EXCUTE);
+ CrueOperationResult<EMHRun> runResult = controller.createRun(managerScenario.getNom(), runOptions,
item.getEtuFile(campagne.getOtfaDir()));
logs.addGroup(runResult.getLogs().createCleanGroup());
if (runResult.getResult() != null) {
@@ -289,13 +296,15 @@
} else {
final ExecInputDefault execInput = new ExecInputDefault(projet, managerScenario,
runResult.getResult());
- currentRunner = calculRunner.getCrue10Runner(projet.getCoeurConfig()).createRunner(execInput, null);
+ Crue10OptionBuilder optionsBuilder = new Crue10OptionBuilder(calculRunner.getExecOptions());
+ ExecConfigurer defaultConfigurer = optionsBuilder.createConfigurer(execInput, RunCreatorOptions.createMap(RunCalculOption.FORCE_EXCUTE));
+ currentRunner = calculRunner.getCrue10Runner(projet.getCoeurConfig()).createRunner(execInput, defaultConfigurer);
currentRunner.run();
}
}
}
ScenarioLoader loader = new ScenarioLoader(managerScenario, projet, projet.getCoeurConfig());
-
+
ScenarioLoaderOperation load = loader.load(managerScenario.getRunCourant());//on charge le run courant:
logs.addGroup(load.getLogs().createCleanGroup());
@@ -303,14 +312,13 @@
if (!load.getLogs().containsFatalError()) {
emhScenario = load.getResult();
}
-
return new CrueOperationResult<EMHScenario>(emhScenario, logs.createCleanGroup());
}
-
+
private CrueOperationResult<EMHProjet> loadProjet(File etuFile, CoeurConfigContrat version) {
return EMHProjetController.readProjet(etuFile, version);
}
-
+
public void deleteRuns(OtfaCampagne in, boolean reference, boolean cible, CtuluLogGroup logs) {
//rien a faire:
if (!reference && !cible) {
@@ -332,7 +340,7 @@
}
}
}
-
+
private void deleteRuns(File referenceFile, String scenarioNom, OtfaCampagne campagne,
OtfaCampagneItem item, CtuluLogGroup logs) {
CrueOperationResult<EMHProjet> projetResult = this.loadProjet(referenceFile, getCoeurForItem(campagne, item));
@@ -362,10 +370,10 @@
scenario.setRunCourant(null);
controller.saveProjet(referenceFile, logs);
}
-
-
+
+
}
-
+
}
private volatile boolean stoppedByUser;
@@ -378,7 +386,7 @@
currentRunner.stop();
}
}
-
+
private boolean stoppedAskedByUser() {
return Thread.currentThread().isInterrupted() || stoppedByUser;
}
Modified: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java 2012-12-04 16:27:08 UTC (rev 8097)
+++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java 2012-12-05 14:00:27 UTC (rev 8098)
@@ -46,11 +46,12 @@
}
public static Map<CrueFileType, RunCalculOption> createDefaultMap() {
+ return createMap(RunCalculOption.EXECUTE_IF_NEEDED);
+ }
+
+ public static Map<CrueFileType, RunCalculOption> createMap(RunCalculOption runCalculOption) {
Map<CrueFileType, RunCalculOption> res = new EnumMap<CrueFileType, RunCalculOption>(CrueFileType.class);
- res.put(CrueFileType.RPTR, RunCalculOption.EXECUTE_IF_NEEDED);
- res.put(CrueFileType.RPTG, RunCalculOption.EXECUTE_IF_NEEDED);
- res.put(CrueFileType.RPTI, RunCalculOption.EXECUTE_IF_NEEDED);
- res.put(CrueFileType.RCAL, RunCalculOption.EXECUTE_IF_NEEDED);
+ setComputeAll(res, runCalculOption);
return res;
}
@@ -64,4 +65,20 @@
public void setCompute(CrueFileType crueFileType, RunCalculOption calculOption) {
optionsByCompute.put(crueFileType, calculOption);
}
+
+ /**
+ * permet d'initialiser le type de calcul identique pour chaque moteur
+ *
+ * @param runCalculOption
+ */
+ public void setComputeAll(RunCalculOption runCalculOption) {
+ setComputeAll(optionsByCompute, runCalculOption);
+ }
+
+ public static void setComputeAll(Map<CrueFileType, RunCalculOption> map, RunCalculOption runCalculOption) {
+ map.put(CrueFileType.RPTR, runCalculOption);
+ map.put(CrueFileType.RPTG, runCalculOption);
+ map.put(CrueFileType.RPTI, runCalculOption);
+ map.put(CrueFileType.RCAL, runCalculOption);
+ }
}
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/PostRunService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/PostRunService.java 2012-12-04 16:27:08 UTC (rev 8097)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/PostRunService.java 2012-12-05 14:00:27 UTC (rev 8098)
@@ -32,7 +32,7 @@
void run(final ExecInputDefault execInputDefault, Map<CrueFileType, RunCalculOption> options);
- CalculCrueRunnerManager getCalculCrueRunnerManagerBatch();
+ CalculCrueRunnerManager getCalculCrueRunnerManagerOtfa();
boolean isRunLoaded();
Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2012-12-04 16:27:08 UTC (rev 8097)
+++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/service/OtfaService.java 2012-12-05 14:00:27 UTC (rev 8098)
@@ -217,7 +217,8 @@
}
OtfaExecutor executor = new OtfaExecutor(configurationManagerService.getCoeurManager(),
installationService.getConnexionInformation(),
- postRunService.getCalculCrueRunnerManagerBatch());
+ postRunService.getCalculCrueRunnerManagerOtfa());
+
final LaunchOtfaCampagneRunner process = new LaunchOtfaCampagneRunner(executor, getCurrentOTFA().getOtfaCampagne(), this);
process.go();
Modified: trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/CrueRunLauncher.java
===================================================================
--- trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/CrueRunLauncher.java 2012-12-04 16:27:08 UTC (rev 8097)
+++ trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/CrueRunLauncher.java 2012-12-05 14:00:27 UTC (rev 8098)
@@ -52,7 +52,7 @@
return true;
}
- public CalculCrueRunnerManager getCalculCrueRunnerManager() {
+ public CalculCrueRunnerManager createCalculCrueRunnerManager() {
CalculCrueRunnerManagerImpl manager = new CalculCrueRunnerManagerImpl();
final Option option = configurationManagerService.getOptionsManager().getOption(OptionsEnum.CRUE9_EXE);
if (option != null) {
@@ -75,7 +75,7 @@
}
public CalculCrueRunner getCrue10Runner(CoeurConfigContrat coeur) {
- return getCalculCrueRunnerManager().getCrue10Runner(coeur);
+ return createCalculCrueRunnerManager().getCrue10Runner(coeur);
}
public void run(final ExecInputDefault execInputDefault, Map<CrueFileType, RunCalculOption> options, Runnable runAfter) {
@@ -155,6 +155,6 @@
public CalculCrueRunner getCrue9Runner() {
validCrue9();
- return new CalculCrue9RunnerWrapper(getCalculCrueRunnerManager().getCrue9Runner());
+ return new CalculCrue9RunnerWrapper(createCalculCrueRunnerManager().getCrue9Runner());
}
}
Modified: trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java
===================================================================
--- trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java 2012-12-04 16:27:08 UTC (rev 8097)
+++ trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java 2012-12-05 14:00:27 UTC (rev 8098)
@@ -75,8 +75,9 @@
}
@Override
- public CalculCrueRunnerManager getCalculCrueRunnerManagerBatch() {
- return getRunLauncher().getCalculCrueRunnerManager();
+ public CalculCrueRunnerManager getCalculCrueRunnerManagerOtfa() {
+ final CalculCrueRunnerManager createCalculCrueRunnerManager = getRunLauncher().createCalculCrueRunnerManager();
+ return createCalculCrueRunnerManager;
}
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|