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. |