auto exp. headless
diff --git a/org.eclipse.stem/core/org.eclipse.stem.ui.headless/META-INF/MANIFEST.MF b/org.eclipse.stem/core/org.eclipse.stem.ui.headless/META-INF/MANIFEST.MF index 54499ce..0006b1f 100644 --- a/org.eclipse.stem/core/org.eclipse.stem.ui.headless/META-INF/MANIFEST.MF +++ b/org.eclipse.stem/core/org.eclipse.stem.ui.headless/META-INF/MANIFEST.MF
@@ -10,7 +10,9 @@ org.eclipse.core.resources, org.eclipse.stem.util.loggers, org.eclipse.stem.ui, - org.eclipse.stem.model.common + org.eclipse.stem.model.common, + org.eclipse.stem.analysis;bundle-version="3.0.0", + org.eclipse.stem.analysis.automaticexperiment;bundle-version="3.0.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: org.eclipse.stem.ui.headless
diff --git a/org.eclipse.stem/core/org.eclipse.stem.ui.headless/src/org/eclipse/stem/ui/headless/HeadlessSimulationRunner.java b/org.eclipse.stem/core/org.eclipse.stem.ui.headless/src/org/eclipse/stem/ui/headless/HeadlessSimulationRunner.java index 17c688a..a034ecc 100644 --- a/org.eclipse.stem/core/org.eclipse.stem.ui.headless/src/org/eclipse/stem/ui/headless/HeadlessSimulationRunner.java +++ b/org.eclipse.stem/core/org.eclipse.stem.ui.headless/src/org/eclipse/stem/ui/headless/HeadlessSimulationRunner.java
@@ -13,6 +13,7 @@ package org.eclipse.stem.ui.headless; import java.io.File; +import java.nio.file.Paths; import java.util.Calendar; import java.util.Date; import java.util.HashSet; @@ -26,8 +27,14 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.URI; +import org.eclipse.stem.analysis.LogInitializationException; +import org.eclipse.stem.analysis.automaticexperiment.AutomaticExperiment; +import org.eclipse.stem.analysis.automaticexperiment.AutomaticExperimentManager; +import org.eclipse.stem.analysis.automaticexperiment.ErrorAnalysisAlgorithm; +import org.eclipse.stem.analysis.automaticexperiment.OptimizerAlgorithm; import org.eclipse.stem.core.Utility; import org.eclipse.stem.core.common.impl.DublinCoreImpl; import org.eclipse.stem.core.model.Decorator; @@ -176,29 +183,56 @@ // Loop through the list of scenario URIs found for (URI scenarioUri : scenariosUrisToRun) { try { - // Attempt to load the scenario by its URI - System.out.println("Creating simulation for " + scenarioUri); - Scenario simulationScenario = (Scenario) Utility - .getIdentifiable(scenarioUri); - if (simulationScenario != null) { - // Create the simulation from the scenario - ISimulation sim = MANAGER.createSimulation( - simulationScenario, new NullProgressMonitor()); - if (log) { - addLogger(sim); + + String lastSegment = scenarioUri.lastSegment(); + System.out.println(lastSegment); + if (lastSegment.indexOf("automaticexperiment")>=0) { + // process and launch and experiment + // Attempt to load the scenario by its URI + System.out.println("Creating automated experiment for " + scenarioUri); + AutomaticExperiment ac = (AutomaticExperiment) Utility.getIdentifiable(scenarioUri); + + AutomaticExperimentManager manager = AutomaticExperimentManager.getInstance(); + ErrorAnalysisAlgorithm algorithm = manager.createAlgorithm(ac); + try { + algorithm.init(ac, algorithm); + algorithm.execute(); + //manager.executeAlgorithm(algorithm, (AutomaticExperiment)ac); + } catch(LogInitializationException lie) { + Utility.handleException(lie.getMessage(), true, null); } - - System.out.println("Running simulation " - + sim.getUniqueIDString() + " for " + scenarioUri); - - // Add the local simulation logger - sim.addSimulationListenerSync(logger); - - // Run the simulation - sim.run(); + } else { - System.err.println("Scenario " + scenarioUri + " not fond"); - } + // Attempt to load the scenario by its URI + System.out.println("Creating simulation for " + scenarioUri); + Scenario simulationScenario = (Scenario) Utility + .getIdentifiable(scenarioUri); + if (simulationScenario != null) { + // Create the simulation from the scenario + ISimulation sim = MANAGER.createSimulation( + simulationScenario, new NullProgressMonitor()); + if (log) { + addLogger(sim); + } + + System.out.println("Running simulation " + + sim.getUniqueIDString() + " for " + scenarioUri); + + // Add the local simulation logger + sim.addSimulationListenerSync(logger); + + // Run the simulation + sim.run(); + } else { + System.err.println("Scenario " + scenarioUri + " not fond"); + } + } // else scenario + + + + + + } catch (Exception e) { System.err.println("Error creating simulation for URI " + scenarioUri);