use of org.dkpro.lab.engine.TaskExecutionEngine in project dkpro-lab by dkpro.
the class DefaultTaskExecutionService method createEngine.
@Override
public TaskExecutionEngine createEngine(Task aConfiguration) {
try {
for (Class<? extends Task> taskClass : map.keySet()) {
if (taskClass.isAssignableFrom(aConfiguration.getClass())) {
TaskExecutionEngine engine = map.get(taskClass).newInstance();
engine.setContextFactory(contextFactory);
beanFactory.autowireBean(engine);
return engine;
}
}
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
throw new IllegalArgumentException("No engine registered for type [" + aConfiguration.getClass().getName() + "]");
}
use of org.dkpro.lab.engine.TaskExecutionEngine in project dkpro-lab by dkpro.
the class SimpleExecutionEngineTest method testInit.
@Test
public void testInit() throws Exception {
File repo = new File("target/repository");
FileUtils.deleteDirectory(repo);
((FileSystemStorageService) storageService).setStorageRoot(repo);
assertNotNull(executionService);
assertNotNull(contextFactory);
TypeSystemDescription tsd = createTypeSystemDescription(new String[0]);
AnalysisEngineDescription desc = createEngineDescription(DummyAE.class, tsd);
DefaultUimaTask cfg = new DefaultUimaTask();
cfg.setReaderDescription(createReaderDescription(TestReader.class, tsd));
cfg.setAnalysisEngineDescription(desc);
TaskExecutionEngine runner = executionService.createEngine(cfg);
String uuid = runner.run(cfg);
System.out.println("=== Experiments in repository ===");
List<TaskContextMetadata> experiments = storageService.getContexts();
for (TaskContextMetadata e : experiments) {
System.out.println(e);
}
final StringBuilder sb = new StringBuilder();
storageService.retrieveBinary(uuid, "test", new StreamReader() {
@Override
public void read(InputStream aInputStream) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Util.shoveAndClose(aInputStream, bos);
sb.append(new String(bos.toByteArray(), "UTF-8"));
}
});
assertEquals("works", sb.toString());
}
use of org.dkpro.lab.engine.TaskExecutionEngine in project dkpro-lab by dkpro.
the class UimaAsExecutionEngineTest method testInit.
@Test
public void testInit() throws Exception {
File repo = new File("target/repository");
FileUtils.deleteQuietly(repo);
((FileSystemStorageService) storageService).setStorageRoot(repo);
assertNotNull(executionService);
assertNotNull(contextFactory);
AnalysisEngineDescription desc = createEngineDescription(DummyAE.class);
DefaultUimaTask cfg = new DefaultUimaTask();
cfg.setReaderDescription(createReaderDescription(TestReader.class));
cfg.setAnalysisEngineDescription(desc);
TaskExecutionEngine runner = executionService.createEngine(cfg);
String uuid = runner.run(cfg);
System.out.println("=== Experiments in repository ===");
List<TaskContextMetadata> experiments = storageService.getContexts();
for (TaskContextMetadata e : experiments) {
System.out.println(e);
}
final StringBuilder sb = new StringBuilder();
storageService.retrieveBinary(uuid, "test", new StreamReader() {
@Override
public void read(InputStream aInputStream) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Util.shoveAndClose(aInputStream, bos);
sb.append(new String(bos.toByteArray(), "UTF-8"));
}
});
assertEquals("works", sb.toString());
}
use of org.dkpro.lab.engine.TaskExecutionEngine in project dkpro-lab by dkpro.
the class BatchTaskEngine method runNewExecution.
/**
* Execute the given task with the given task configuration.
*
* @param aContext
* the context of the current batch task.
* @param aTask
* the the task whose task to be executed.
* @param aConfig
* the current parameter configuration.
* @return the context meta data.
*/
protected TaskContextMetadata runNewExecution(TaskContext aContext, Task aTask, Map<String, Object> aConfig, Set<String> aScope) throws ExecutionException, LifeCycleException {
TaskExecutionService execService = aContext.getExecutionService();
TaskExecutionEngine engine = execService.createEngine(aTask);
engine.setContextFactory(new ScopedTaskContextFactory(contextFactory, aConfig, aScope));
String uuid = engine.run(aTask);
return aContext.getStorageService().getContext(uuid);
}
Aggregations