Playing with latest Spring ..

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/e2896bda
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/e2896bda
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/e2896bda

Branch: refs/heads/master
Commit: e2896bda5739c73d2b73a1b02f5be6f65b0e339b
Parents: 1030bbc
Author: Stian Soiland-Reyes <[email protected]>
Authored: Wed Sep 7 12:17:29 2016 +0100
Committer: Stian Soiland-Reyes <[email protected]>
Committed: Fri Oct 21 09:17:18 2016 +0200

----------------------------------------------------------------------
 taverna-workbench-impl/pom.xml                  |  10 +-
 .../workbench/ui/impl/WorkbenchImpl.java        |   3 +
 .../taverna/workbench/ui/impl/Application.java  |  31 +++
 .../workbench/ui/impl/WorkbenchLauncher.java    |  52 ++--
 .../workbench/ui/impl/WorkbenchTest.java        | 267 +++++++++++--------
 5 files changed, 230 insertions(+), 133 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/e2896bda/taverna-workbench-impl/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-impl/pom.xml b/taverna-workbench-impl/pom.xml
index 19f49e2..27d313b 100644
--- a/taverna-workbench-impl/pom.xml
+++ b/taverna-workbench-impl/pom.xml
@@ -77,7 +77,7 @@
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-test</artifactId>
-                       <version>1.3.6.RELEASE</version>
+                       <version>1.4.0.RELEASE</version>
                        <scope>test</scope>
                </dependency>
                <dependency>
@@ -138,7 +138,7 @@
                <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
-                       <version>${junit.version}</version>
+                       <version>4.12</version>
                        <scope>test</scope>
                </dependency>
                <dependency>
@@ -261,6 +261,12 @@
                        <version>${taverna.commonactivities.version}</version>
                        <scope>test</scope>
                </dependency>
+               <dependency>
+                       <groupId>org.apache.taverna.commonactivities</groupId>  
                                
+                       <artifactId>taverna-cwl-activity-ui</artifactId>
+                       <version>2.1.1-incubating-SNAPSHOT</version>
+                       <scope>test</scope>
+               </dependency>
 
                <dependency>
                        <groupId>org.apache.taverna.engine</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/e2896bda/taverna-workbench-impl/src/main/java/org/apache/taverna/workbench/ui/impl/WorkbenchImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-impl/src/main/java/org/apache/taverna/workbench/ui/impl/WorkbenchImpl.java
 
b/taverna-workbench-impl/src/main/java/org/apache/taverna/workbench/ui/impl/WorkbenchImpl.java
index 62e3cf1..40ecf90 100644
--- 
a/taverna-workbench-impl/src/main/java/org/apache/taverna/workbench/ui/impl/WorkbenchImpl.java
+++ 
b/taverna-workbench-impl/src/main/java/org/apache/taverna/workbench/ui/impl/WorkbenchImpl.java
@@ -86,6 +86,7 @@ import org.simplericity.macify.eawt.ApplicationAdapter;
 import org.simplericity.macify.eawt.ApplicationEvent;
 import org.simplericity.macify.eawt.ApplicationListener;
 import org.simplericity.macify.eawt.DefaultApplication;
+import org.springframework.stereotype.Component;
 
 /**
  * The main workbench frame.
@@ -93,6 +94,8 @@ import org.simplericity.macify.eawt.DefaultApplication;
  * @author David Withers
  * @author Stian Soiland-Reyes
  */
+
+@Component
 public class WorkbenchImpl extends JFrame implements Workbench {
        private static final String NIMBUS = 
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";
        private static final String LAUNCHER_LOGO_PNG = "/launcher_logo.png";

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/e2896bda/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/Application.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/Application.java
 
b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/Application.java
new file mode 100644
index 0000000..8ad7429
--- /dev/null
+++ 
b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/Application.java
@@ -0,0 +1,31 @@
+package org.apache.taverna.workbench.ui.impl;
+
+import java.util.Arrays;
+
+import org.apache.taverna.workbench.ui.Workbench;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ApplicationContext;
+
+@SpringBootApplication
+public class Application {
+
+               @Autowired
+               Workbench workbench;
+
+       
+           public static void main(String[] args) {
+               ApplicationContext ctx = 
SpringApplication.run(Application.class, args);
+               System.out.println("Oooo");
+
+               System.out.println("Let's inspect the beans provided by Spring 
Boot:");
+
+               String[] beanNames = ctx.getBeanDefinitionNames();
+               Arrays.sort(beanNames);
+               for (String beanName : beanNames) {
+                   System.out.println(beanName);
+               }               
+           }
+       
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/e2896bda/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchLauncher.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchLauncher.java
 
b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchLauncher.java
index 02e3d49..0e54033 100644
--- 
a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchLauncher.java
+++ 
b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchLauncher.java
@@ -1,23 +1,29 @@
-package org.apache.taverna.workbench.ui.impl;
-
-import org.apache.taverna.workbench.ui.Workbench;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.ContextHierarchy;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-public class WorkbenchLauncher {
-
-       @Autowired
-       Workbench workbench;
-
-       @Test
-       public void testName() throws Exception {
-               Thread.sleep(1000);
-               System.out.println(workbench.toString());
-       }
-       
-}
+//package org.apache.taverna.workbench.ui.impl;
+//
+//import org.apache.taverna.workbench.ui.Workbench;
+//import org.junit.Test;
+//import org.junit.runner.RunWith;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import 
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+//import org.springframework.boot.test.context.SpringBootTest;
+//import org.springframework.test.context.junit4.SpringRunner;
+//
+//
+//
+////@RunWith(SpringJUnit4ClassRunner.class)
+////@RunWith(SpringRunner.class)
+////@SpringBootTest
+////@AutoConfigureMockMvc
+////@AutoConfigureCache
+//public class WorkbenchLauncher {
+//
+////   @Autowired
+////   Workbench workbench;
+//
+//     @Test
+//     public void testName() throws Exception {
+//             Thread.sleep(1000);
+//             System.out.println(workbench.toString());
+//     }
+//     
+//}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/e2896bda/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 a62440e..006a1dd 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
@@ -35,7 +35,6 @@ 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;
@@ -106,6 +105,7 @@ 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.impl.EditsImpl;
 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;
@@ -119,10 +119,15 @@ public class WorkbenchTest {
                
                WorkbenchImpl w = new WorkbenchTest().getWorkbench();
                w.initialize();
+               // NOTE: The above will do w.setVisible(true);
+               // which blocks until the workbench window is closed.
+               System.out.println("Closing..");
+               
+               
                synchronized(w) {
                        // It won't actually get interrupted, but it means we 
persist 
-                       // as long as w rather than exiting
-                       w.wait();
+                       // as long as w, rather than exiting right away
+               //      w.wait();
                }
        }
 
@@ -138,6 +143,21 @@ public class WorkbenchTest {
        private WorkflowExplorerFactory workflowExplorerFactory;
        private ServiceDescriptionRegistryImpl serviceDescriptionRegistry;
        private ConfigurationManagerImpl configurationManager;
+       private DesignPerspective designPerspective;
+       private ResultsPerspective resultsPerspective;
+       private ContextualViewComponentFactory contextualViewComponentFactory;
+       private ApplicationConfiguration appConfig;
+       private List<StartupSPI> startupHooks;
+       private ServiceRegistryImpl serviceRegistry;
+       private ActivityServiceImpl activityService;
+       private DispatchLayerServiceImpl dispatchLayerService;
+       private RendererRegistryImpl rendererRegistry;
+       private ReferenceServiceImpl referenceService;
+       private LocalExecutionService localExecutionService;
+       private ExecutionEnvironmentServiceImpl executionEnvironmentService;
+       private RunServiceImpl runService;
+       private ActivityIconManagerImpl activityIconManager;
+       private GraphViewComponentFactory graphViewComponentFactory;
 
        public FileManager getFileManager() {
                if (fileManager == null) {
@@ -189,82 +209,88 @@ public class WorkbenchTest {
        }
 
        public ResultsPerspective getResultsPerspective() {
-               ResultsPerspective perspective = new ResultsPerspective();
-               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;
+               if (resultsPerspective == null) {
+                       resultsPerspective = new ResultsPerspective();
+                       
resultsPerspective.setActivityIconManager(getActivityIconManager());
+                       
resultsPerspective.setApplicationConfiguration(getApplicationConfiguration());
+                       resultsPerspective.setColourManager(getColourManager());
+                       
resultsPerspective.setRendererRegistry(getRendererRegistry());
+                       resultsPerspective.setRunService(getRunService());
+                       
resultsPerspective.setSaveAllResultsSPIs(serviceLoader(SaveAllResultsSPI.class));
+                       
resultsPerspective.setSaveIndividualResultSPIs(serviceLoader(SaveIndividualResultSPI.class));
+                       
resultsPerspective.setSelectionManager(getSelectionManager());
+                       
resultsPerspective.setWorkbenchConfiguration(getWorkbenchConfiguration());
+               }
+               return resultsPerspective;
        }
 
 
        public RunService getRunService() {
-               RunServiceImpl runServiceImpl = new RunServiceImpl();
-               runServiceImpl.setEventAdmin(getEventAdmin());
-               
runServiceImpl.setExecutionEnvironmentService(getExecutionEnvironmentService());
-               return runServiceImpl;
+               if (runService == null) {
+                       runService = new RunServiceImpl();
+                       runService.setEventAdmin(getEventAdmin());
+                       
runService.setExecutionEnvironmentService(getExecutionEnvironmentService());
+               }
+               return runService;
        }
 
        private ExecutionEnvironmentService getExecutionEnvironmentService() {
-               ExecutionEnvironmentServiceImpl serviceImpl = new 
ExecutionEnvironmentServiceImpl();
-               Set<ExecutionService> executionServices = 
Collections.singleton(getLocalExecutionService());
-               serviceImpl.setExecutionServices(executionServices);
-               return serviceImpl;
+               if (executionEnvironmentService == null) {
+                       executionEnvironmentService = new 
ExecutionEnvironmentServiceImpl();
+                       Set<ExecutionService> executionServices = 
Collections.singleton(getLocalExecutionService());
+                       
executionEnvironmentService.setExecutionServices(executionServices);
+               }
+               return executionEnvironmentService;
        }
 
        private ExecutionService getLocalExecutionService() {
-               LocalExecutionService localExecutionService = new 
LocalExecutionService();
-               localExecutionService.setActivityService(getActivityService());
-               
localExecutionService.setDispatchLayerService(getDispatchLayerService());
-               localExecutionService.setEdits(getEdits());
-               
localExecutionService.setReferenceService(getReferenceService());
+               if (localExecutionService == null) {
+                       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;
+               return new EditsImpl();
        }
 
        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));
              
+               if (referenceService == null) {
+                       // Adapted from 
org.apache.taverna.activities.testutils.ActivityInvoker         
+                       ReferenceSetServiceImpl referenceSetService = new 
ReferenceSetServiceImpl();
+                       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());
@@ -279,18 +305,22 @@ public class WorkbenchTest {
                return translators;
        }
 
-       private DispatchLayerService getDispatchLayerService() {
-               DispatchLayerServiceImpl dispatchLayerServiceImpl = new 
DispatchLayerServiceImpl();             
-               List<DispatchLayerFactory> list = new ArrayList<>();
-               list.add(new CoreDispatchLayerFactory());
-               dispatchLayerServiceImpl.setDispatchLayerFactories(list);
-               return dispatchLayerServiceImpl;
+       public DispatchLayerService getDispatchLayerService() {
+               if (dispatchLayerService == null) {
+                       dispatchLayerService = new DispatchLayerServiceImpl();  
        
+                       List<DispatchLayerFactory> list = new ArrayList<>();
+                       list.add(new CoreDispatchLayerFactory());
+                       dispatchLayerService.setDispatchLayerFactories(list);
+               }
+               return dispatchLayerService;
        }
 
-       private ActivityService getActivityService() {
-               ActivityServiceImpl serviceImpl = new ActivityServiceImpl();    
        
-               
serviceImpl.setActivityFactories(serviceLoader(ActivityFactory.class));
-               return serviceImpl;
+       public ActivityService getActivityService() {
+               if (activityService == null) {
+                       activityService = new ActivityServiceImpl();            
+                       
activityService.setActivityFactories(serviceLoader(ActivityFactory.class));
+               }       
+               return activityService;
        }
 
        private EventAdmin getEventAdmin() {
@@ -307,37 +337,43 @@ public class WorkbenchTest {
        }
 
        public RendererRegistry getRendererRegistry() {
-               RendererRegistryImpl rendererRegistryImpl = new 
RendererRegistryImpl();
-               
rendererRegistryImpl.setRenderers(serviceLoader(Renderer.class));
-               return rendererRegistryImpl;
+               if (rendererRegistry == null) {
+                       rendererRegistry = new RendererRegistryImpl();
+                       
rendererRegistry.setRenderers(serviceLoader(Renderer.class));
+               }
+               return rendererRegistry;
        }
 
        public DesignPerspective getDesignPerspective() {
-               DesignPerspective p = new DesignPerspective();
-               p.setEditManager(getEditManager());
-               p.setFileManager(getFileManager());
-               p.setMenuManager(getMenuManager());
-               p.setSelectionManager(getSelectionManager());
-
-               
p.setServicePanelComponentFactory(getServicePanelComponentFactory());
-               p.setWorkflowExplorerFactory(getWorkflowExplorerFactory());
-               
p.setReportViewComponentFactory(getReportViewComponentFactory());
-               
p.setContextualViewComponentFactory(getContextualViewComponentFactory());
-               p.setGraphViewComponentFactory(getGraphViewComponentFactory());
-               return p;
+               if (designPerspective == null) {
+                       designPerspective = new DesignPerspective();
+                       designPerspective.setEditManager(getEditManager());
+                       designPerspective.setFileManager(getFileManager());
+                       designPerspective.setMenuManager(getMenuManager());
+                       
designPerspective.setSelectionManager(getSelectionManager());
+       
+                       
designPerspective.setServicePanelComponentFactory(getServicePanelComponentFactory());
+                       
designPerspective.setWorkflowExplorerFactory(getWorkflowExplorerFactory());
+                       
designPerspective.setReportViewComponentFactory(getReportViewComponentFactory());
+                       
designPerspective.setContextualViewComponentFactory(getContextualViewComponentFactory());
+                       
designPerspective.setGraphViewComponentFactory(getGraphViewComponentFactory());
+               }
+               return designPerspective;
        }
 
        private UIComponentFactorySPI getGraphViewComponentFactory() {
-               GraphViewComponentFactory f = new GraphViewComponentFactory();
-               f.setColourManager(getColourManager());
-               f.setEditManager(getEditManager());
-               f.setFileManager(getFileManager());
-               f.setGraphViewConfiguration(getGraphViewConfiguration());
-               f.setMenuManager(getMenuManager());
-               f.setSelectionManager(getSelectionManager());
-               f.setServiceRegistry(getServiceRegistry());
-               f.setWorkbenchConfiguration(getWorkbenchConfiguration());
-               return f;
+               if (graphViewComponentFactory == null) {
+                       graphViewComponentFactory = new 
GraphViewComponentFactory();
+                       
graphViewComponentFactory.setColourManager(getColourManager());
+                       
graphViewComponentFactory.setEditManager(getEditManager());
+                       
graphViewComponentFactory.setFileManager(getFileManager());
+                       
graphViewComponentFactory.setGraphViewConfiguration(getGraphViewConfiguration());
+                       
graphViewComponentFactory.setMenuManager(getMenuManager());
+                       
graphViewComponentFactory.setSelectionManager(getSelectionManager());
+                       
graphViewComponentFactory.setServiceRegistry(getServiceRegistry());
+                       
graphViewComponentFactory.setWorkbenchConfiguration(getWorkbenchConfiguration());
+               }
+               return graphViewComponentFactory;
        }
 
        public GraphViewConfiguration getGraphViewConfiguration() {
@@ -468,9 +504,11 @@ public class WorkbenchTest {
        }
 
        public ActivityIconManager getActivityIconManager() {
-               ActivityIconManagerImpl activityIconManagerImpl = new 
ActivityIconManagerImpl();
-               
activityIconManagerImpl.setActivityIcons(serviceLoader(ActivityIconSPI.class));
-               return activityIconManagerImpl;
+               if (activityIconManager == null) {              
+                       activityIconManager = new ActivityIconManagerImpl();
+                       
activityIconManager.setActivityIcons(serviceLoader(ActivityIconSPI.class));
+               }
+               return activityIconManager;
        }
 
        @SuppressWarnings("unchecked")
@@ -502,7 +540,11 @@ public class WorkbenchTest {
        }
 
        public ServiceRegistry getServiceRegistry() {
-               return new ServiceRegistryImpl();
+               if (serviceRegistry == null) {
+                       serviceRegistry = new ServiceRegistryImpl();
+                       
serviceRegistry.setActivityService(getActivityService());
+               }
+               return serviceRegistry;
        }
 
        public ServiceDescriptionRegistry getServiceDescriptionRegistry() {
@@ -514,10 +556,12 @@ public class WorkbenchTest {
        }
 
        public UIComponentFactorySPI getContextualViewComponentFactory() {
-               ContextualViewComponentFactory contextualViewComponentFactory = 
new ContextualViewComponentFactory();
-               contextualViewComponentFactory.setEditManager(getEditManager());
-               
contextualViewComponentFactory.setSelectionManager(getSelectionManager());
-               
contextualViewComponentFactory.setContextualViewFactoryRegistry(getContextualViewFactoryRegistry());
+               if (contextualViewComponentFactory == null) {
+                       contextualViewComponentFactory = new 
ContextualViewComponentFactory();
+                       
contextualViewComponentFactory.setEditManager(getEditManager());
+                       
contextualViewComponentFactory.setSelectionManager(getSelectionManager());
+                       
contextualViewComponentFactory.setContextualViewFactoryRegistry(getContextualViewFactoryRegistry());
+               }
                return contextualViewComponentFactory;
        }
 
@@ -693,12 +737,15 @@ public class WorkbenchTest {
                };
        }
 
-       public List<StartupSPI> getStartupHooks() {
-               SetCredManAuthenticatorStartupHook 
credManAuthenticatorStartupHook = new SetCredManAuthenticatorStartupHook();
-               
credManAuthenticatorStartupHook.setCredentialManager(getCredentialManager());
-               InitialiseSSLStartupHook initialiseSSLStartupHook = new 
InitialiseSSLStartupHook();
-               
initialiseSSLStartupHook.setCredentialManager(getCredentialManager());
-               return Arrays.asList(initialiseSSLStartupHook, 
credManAuthenticatorStartupHook);
+       public List<StartupSPI> getStartupHooks() {     
+               if (startupHooks == null) {
+                       SetCredManAuthenticatorStartupHook 
credManAuthenticatorStartupHook = new SetCredManAuthenticatorStartupHook();
+                       
credManAuthenticatorStartupHook.setCredentialManager(getCredentialManager());
+                       InitialiseSSLStartupHook initialiseSSLStartupHook = new 
InitialiseSSLStartupHook();
+                       
initialiseSSLStartupHook.setCredentialManager(getCredentialManager());
+                       startupHooks = Arrays.asList(initialiseSSLStartupHook, 
credManAuthenticatorStartupHook);
+               }
+               return startupHooks;
        }
 
        public CredentialManager getCredentialManager() {
@@ -707,6 +754,7 @@ public class WorkbenchTest {
                                credentialManager = new 
CredentialManagerImpl();                        
                        } catch (CMException e) {
                                e.printStackTrace();
+                               throw new IllegalStateException(e);
                        }
                }
                return credentialManager;
@@ -717,7 +765,10 @@ public class WorkbenchTest {
        }
 
        public ApplicationConfiguration getApplicationConfiguration() {
-               return new ApplicationConfigurationImpl();
+               if (appConfig == null) {
+                       appConfig = new ApplicationConfigurationImpl(); 
+               }
+               return appConfig;
        }
        
 }

Reply via email to