Skip to content

Instantly share code, notes, and snippets.

@Hylke1982
Created September 25, 2015 09:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hylke1982/c4c0fcea2779093edbf9 to your computer and use it in GitHub Desktop.
Save Hylke1982/c4c0fcea2779093edbf9 to your computer and use it in GitHub Desktop.
Start the Gareth application
import org.craftsmenlabs.gareth.api.ExperimentEngine;
import org.craftsmenlabs.gareth.api.ExperimentEngineConfig;
import org.craftsmenlabs.gareth.core.ExperimentEngineConfigImpl;
import org.craftsmenlabs.gareth.core.ExperimentEngineImpl;
import org.craftsmenlabs.gareth.examples.definition.SampleDefinition;
public class ExampleApplication {
public static void main(final String[] args) {
final ExperimentEnginePersistence experimentEnginePersistence = new FileSystemExperimentEnginePersistence.Builder().build();
final ExperimentEngineConfig experimentEngineConfig = new ExperimentEngineConfigImpl
.Builder()
.addDefinitionClass(SampleDefinition.class)
.addInputStreams(ExampleApplication.class.getClass().getResourceAsStream("/experiments/businessgoal-01.experiment"))
.setIgnoreInvocationExceptions(true)
.build();
final ExperimentEngine experimentEngine = new ExperimentEngineImpl
.Builder(experimentEngineConfig)
.setExperimentEnginePersistence(experimentEnginePersistence)
.build();
experimentEngine.start();
Runtime.getRuntime().addShutdownHook(new ShutdownHook(experimentEngine));
}
/**
* Shutdown hook when application is stopped then also stop the experiment engine.
*/
static class ShutdownHook extends Thread {
private final ExperimentEngine experimentEngine;
private ShutdownHook(final ExperimentEngine experimentEngine) {
this.experimentEngine = experimentEngine;
}
@Override
public void run() {
experimentEngine.stop();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment