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);