Repository: incubator-taverna-workbench Updated Branches: refs/heads/master 5877a03a1 -> 8769df25c
Add results perspective with engine Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/commit/d88fca09 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/d88fca09 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/d88fca09 Branch: refs/heads/master Commit: d88fca09e9e69a808660f8bc9b9b2d2162a79a6e Parents: 745f0a7 Author: Stian Soiland-Reyes <[email protected]> Authored: Thu Aug 18 16:37:14 2016 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Fri Oct 21 09:16:26 2016 +0200 ---------------------------------------------------------------------- taverna-workbench-impl/pom.xml | 58 +++++++ .../workbench/ui/impl/WorkbenchTest.java | 174 +++++++++++++++++-- 2 files changed, 222 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/d88fca09/taverna-workbench-impl/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-impl/pom.xml b/taverna-workbench-impl/pom.xml index 6fda97b..bcb0a54 100644 --- a/taverna-workbench-impl/pom.xml +++ b/taverna-workbench-impl/pom.xml @@ -219,10 +219,54 @@ <dependency> <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-capability-impl</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-workflowmodel-extensions</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-dataflow-activity</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-stringconstant-activity</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.taverna.commonactivities</groupId> + <artifactId>taverna-beanshell-activity</artifactId> + <version>${taverna.commonactivities.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.taverna.engine</groupId> <artifactId>taverna-services-impl</artifactId> <version>${taverna.engine.version}</version> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-run-impl</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-execution-impl</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>${project.parent.groupId}</groupId> <artifactId>taverna-contextual-views-impl</artifactId> @@ -242,6 +286,20 @@ <scope>test</scope> </dependency> <dependency> + <groupId>${project.parent.groupId}</groupId> + <artifactId>taverna-renderers-impl</artifactId> + <version>${project.parent.version}</version> + <scope>test</scope> + </dependency> + <!-- Not really needed for testing, disabled to avoid classpath issues + <dependency> + <groupId>${project.parent.groupId}</groupId> + <artifactId>taverna-renderers-exts</artifactId> + <version>${project.parent.version}</version> + <scope>test</scope> + </dependency> + --> + <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/d88fca09/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java index 653894a..a62440e 100644 --- a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java +++ b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java @@ -14,16 +14,47 @@ import java.util.Set; import javax.swing.ImageIcon; import org.apache.commons.beanutils.BeanUtils; -import org.apache.taverna.configuration.Configurable; import org.apache.taverna.configuration.ConfigurationManager; import org.apache.taverna.configuration.app.ApplicationConfiguration; import org.apache.taverna.configuration.app.impl.ApplicationConfigurationImpl; import org.apache.taverna.configuration.impl.ConfigurationManagerImpl; import org.apache.taverna.lang.observer.Observer; +import org.apache.taverna.platform.capability.activity.impl.ActivityServiceImpl; +import org.apache.taverna.platform.capability.api.ActivityService; +import org.apache.taverna.platform.capability.api.DispatchLayerService; +import org.apache.taverna.platform.capability.dispatch.impl.DispatchLayerServiceImpl; +import org.apache.taverna.platform.execution.api.ExecutionEnvironmentService; +import org.apache.taverna.platform.execution.api.ExecutionService; +import org.apache.taverna.platform.execution.impl.ExecutionEnvironmentServiceImpl; +import org.apache.taverna.platform.execution.impl.local.LocalExecutionService; +import org.apache.taverna.platform.run.api.RunService; +import org.apache.taverna.platform.run.impl.RunServiceImpl; import org.apache.taverna.plugin.Plugin; import org.apache.taverna.plugin.PluginException; import org.apache.taverna.plugin.PluginManager; import org.apache.taverna.plugin.xml.jaxb.PluginVersions; +import org.apache.taverna.reference.ExternalReferenceBuilderSPI; +import org.apache.taverna.reference.ExternalReferenceTranslatorSPI; +import org.apache.taverna.reference.ListService; +import org.apache.taverna.reference.ReferenceService; +import org.apache.taverna.reference.StreamToValueConverterSPI; +import org.apache.taverna.reference.ValueToReferenceConverterSPI; +import org.apache.taverna.reference.impl.ErrorDocumentServiceImpl; +import org.apache.taverna.reference.impl.InMemoryErrorDocumentDao; +import org.apache.taverna.reference.impl.InMemoryListDao; +import org.apache.taverna.reference.impl.InMemoryReferenceSetDao; +import org.apache.taverna.reference.impl.ListServiceImpl; +import org.apache.taverna.reference.impl.ReferenceServiceImpl; +import org.apache.taverna.reference.impl.ReferenceSetAugmentorImpl; +import org.apache.taverna.reference.impl.ReferenceSetServiceImpl; +import org.apache.taverna.reference.impl.SimpleT2ReferenceGenerator; +import org.apache.taverna.reference.impl.external.object.InlineByteArrayReferenceBuilder; +import org.apache.taverna.reference.impl.external.object.InlineByteToInlineStringTranslator; +import org.apache.taverna.reference.impl.external.object.InlineStringReferenceBuilder; +import org.apache.taverna.reference.impl.external.object.InlineStringToInlineByteTranslator; +import org.apache.taverna.renderers.Renderer; +import org.apache.taverna.renderers.RendererRegistry; +import org.apache.taverna.renderers.impl.RendererRegistryImpl; import org.apache.taverna.scufl2.api.common.WorkflowBean; import org.apache.taverna.scufl2.api.profiles.Profile; import org.apache.taverna.scufl2.validation.Status; @@ -70,9 +101,16 @@ import org.apache.taverna.workbench.ui.workflowexplorer.WorkflowExplorerFactory; import org.apache.taverna.workbench.ui.zaria.PerspectiveSPI; import org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI; import org.apache.taverna.workbench.ui.zaria.UIComponentSPI; -import org.apache.taverna.workbench.views.graph.GraphViewComponent; import org.apache.taverna.workbench.views.graph.GraphViewComponentFactory; import org.apache.taverna.workbench.views.graph.config.GraphViewConfiguration; +import org.apache.taverna.workbench.views.results.saveactions.SaveAllResultsSPI; +import org.apache.taverna.workbench.views.results.saveactions.SaveIndividualResultSPI; +import org.apache.taverna.workflowmodel.Edits; +import org.apache.taverna.workflowmodel.processor.activity.ActivityFactory; +import org.apache.taverna.workflowmodel.processor.dispatch.DispatchLayerFactory; +import org.apache.taverna.workflowmodel.processor.dispatch.layers.CoreDispatchLayerFactory; +import org.osgi.service.event.Event; +import org.osgi.service.event.EventAdmin; public class WorkbenchTest { @@ -152,10 +190,128 @@ public class WorkbenchTest { public ResultsPerspective getResultsPerspective() { ResultsPerspective perspective = new ResultsPerspective(); - // TODO: Various setters + perspective.setActivityIconManager(getActivityIconManager()); + perspective.setApplicationConfiguration(getApplicationConfiguration()); + perspective.setColourManager(getColourManager()); + perspective.setRendererRegistry(getRendererRegistry()); + perspective.setRunService(getRunService()); + perspective.setSaveAllResultsSPIs(serviceLoader(SaveAllResultsSPI.class)); + perspective.setSaveIndividualResultSPIs(serviceLoader(SaveIndividualResultSPI.class)); + perspective.setSelectionManager(getSelectionManager()); + perspective.setWorkbenchConfiguration(getWorkbenchConfiguration()); return perspective; } + + public RunService getRunService() { + RunServiceImpl runServiceImpl = new RunServiceImpl(); + runServiceImpl.setEventAdmin(getEventAdmin()); + runServiceImpl.setExecutionEnvironmentService(getExecutionEnvironmentService()); + return runServiceImpl; + } + + private ExecutionEnvironmentService getExecutionEnvironmentService() { + ExecutionEnvironmentServiceImpl serviceImpl = new ExecutionEnvironmentServiceImpl(); + Set<ExecutionService> executionServices = Collections.singleton(getLocalExecutionService()); + serviceImpl.setExecutionServices(executionServices); + return serviceImpl; + } + + private ExecutionService getLocalExecutionService() { + LocalExecutionService localExecutionService = new LocalExecutionService(); + localExecutionService.setActivityService(getActivityService()); + localExecutionService.setDispatchLayerService(getDispatchLayerService()); + localExecutionService.setEdits(getEdits()); + localExecutionService.setReferenceService(getReferenceService()); + return localExecutionService; + } + + private Edits getEdits() { + // TODO Auto-generated method stub + return null; + } + + private ReferenceService getReferenceService() { + // Adapted from org.apache.taverna.activities.testutils.ActivityInvoker + + ReferenceServiceImpl referenceServiceImpl = new ReferenceServiceImpl(); + ReferenceSetServiceImpl referenceSetService = new ReferenceSetServiceImpl(); + ReferenceServiceImpl referenceService = new ReferenceServiceImpl(); + + SimpleT2ReferenceGenerator referenceGenerator = new SimpleT2ReferenceGenerator(); + ReferenceSetAugmentorImpl referenceSetAugmentor = new ReferenceSetAugmentorImpl(); + referenceSetAugmentor.setBuilders(getBuilders()); + referenceSetAugmentor.setTranslators(getTranslators()); + referenceSetService.setReferenceSetAugmentor(referenceSetAugmentor); + + referenceSetService.setT2ReferenceGenerator(referenceGenerator); + referenceSetService.setReferenceSetDao(new InMemoryReferenceSetDao()); + referenceService.setReferenceSetService(referenceSetService); + + ListServiceImpl listService = new ListServiceImpl(); + listService.setT2ReferenceGenerator(referenceGenerator); + listService.setListDao(new InMemoryListDao()); + referenceService.setListService(listService); + + ErrorDocumentServiceImpl errorDocumentService = new ErrorDocumentServiceImpl(); + errorDocumentService.setT2ReferenceGenerator(referenceGenerator); + errorDocumentService.setErrorDao(new InMemoryErrorDocumentDao()); + + referenceService.setErrorDocumentService(errorDocumentService); + referenceService.setConverters(serviceLoader(ValueToReferenceConverterSPI.class)); + referenceService.setValueBuilders(serviceLoader(StreamToValueConverterSPI.class)); + return referenceService; + + } + + @SuppressWarnings("unchecked") + private List<ExternalReferenceBuilderSPI<?>> getBuilders() { + List<ExternalReferenceBuilderSPI<?>> builders = new ArrayList<>(); + builders.add(new InlineByteArrayReferenceBuilder()); + builders.add(new InlineStringReferenceBuilder()); + return builders; + } + + private List<ExternalReferenceTranslatorSPI<?, ?>> getTranslators() { + List<ExternalReferenceTranslatorSPI<?, ?>> translators = new ArrayList<>(); + translators.add(new InlineByteToInlineStringTranslator()); + translators.add(new InlineStringToInlineByteTranslator()); + return translators; + } + + private DispatchLayerService getDispatchLayerService() { + DispatchLayerServiceImpl dispatchLayerServiceImpl = new DispatchLayerServiceImpl(); + List<DispatchLayerFactory> list = new ArrayList<>(); + list.add(new CoreDispatchLayerFactory()); + dispatchLayerServiceImpl.setDispatchLayerFactories(list); + return dispatchLayerServiceImpl; + } + + private ActivityService getActivityService() { + ActivityServiceImpl serviceImpl = new ActivityServiceImpl(); + serviceImpl.setActivityFactories(serviceLoader(ActivityFactory.class)); + return serviceImpl; + } + + private EventAdmin getEventAdmin() { + // We're outside osgi, so we'll have to make a fake one + return new EventAdmin() { + @Override + public void postEvent(Event event) { + System.out.println("Posted event: " + event.getTopic()); + } + @Override + public void sendEvent(Event event) { + System.out.println("Sent event: " + event.getTopic()); + }}; + } + + public RendererRegistry getRendererRegistry() { + RendererRegistryImpl rendererRegistryImpl = new RendererRegistryImpl(); + rendererRegistryImpl.setRenderers(serviceLoader(Renderer.class)); + return rendererRegistryImpl; + } + public DesignPerspective getDesignPerspective() { DesignPerspective p = new DesignPerspective(); p.setEditManager(getEditManager()); @@ -168,8 +324,6 @@ public class WorkbenchTest { p.setReportViewComponentFactory(getReportViewComponentFactory()); p.setContextualViewComponentFactory(getContextualViewComponentFactory()); p.setGraphViewComponentFactory(getGraphViewComponentFactory()); - - // TODO: More setters return p; } @@ -186,11 +340,11 @@ public class WorkbenchTest { return f; } - private GraphViewConfiguration getGraphViewConfiguration() { + public GraphViewConfiguration getGraphViewConfiguration() { return new GraphViewConfiguration(getConfigurationManager()); } - private ColourManager getColourManager() { + public ColourManager getColourManager() { return new ColourManagerImpl(getConfigurationManager()); } @@ -201,7 +355,7 @@ public class WorkbenchTest { return configurationManager; } - private UIComponentFactorySPI getReportViewComponentFactory() { + public UIComponentFactorySPI getReportViewComponentFactory() { // The report view is broken, so we'll return a dummy instead. return dummyUiComponentFactory("Report view not implemented"); } @@ -313,7 +467,7 @@ public class WorkbenchTest { }; } - private ActivityIconManager getActivityIconManager() { + public ActivityIconManager getActivityIconManager() { ActivityIconManagerImpl activityIconManagerImpl = new ActivityIconManagerImpl(); activityIconManagerImpl.setActivityIcons(serviceLoader(ActivityIconSPI.class)); return activityIconManagerImpl; @@ -328,7 +482,7 @@ public class WorkbenchTest { BeanUtils.copyProperties(this, impl); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); - // continue; + // continue ? } } return spis;
