You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/03/31 11:36:47 UTC

svn commit: r642938 - in /incubator/tuscany/java/sca: modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/ modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/we...

Author: jsdelfino
Date: Mon Mar 31 02:36:39 2008
New Revision: 642938

URL: http://svn.apache.org/viewvc?rev=642938&view=rev
Log:
Fix for TUSCANY-2166, fixed configuration of the Tuscany library buildpath. Added progress monitor to the plugin. Removed unused exception.

Removed:
    incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/Node2Exception.java
Modified:
    incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java
    incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java
    incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java
    incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java
    incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java
    incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
    incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
    incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launcher/DomainManagerLauncherBootstrap.java
    incubator/tuscany/java/sca/tools/eclipse/plugins/core/META-INF/MANIFEST.MF
    incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java
    incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java
    incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchShortcut.java

Modified: incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java Mon Mar 31 02:36:39 2008
@@ -20,7 +20,6 @@
 package org.apache.tuscany.sca.implementation.node.launcher;
 
 import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.apache.tuscany.sca.node.Node2Exception;
 import org.apache.tuscany.sca.node.SCANode2;
 
 /**
@@ -42,7 +41,7 @@
             runtimeClassLoader = Thread.currentThread().getContextClassLoader();
         }
         
-        public void start() throws Node2Exception {
+        public void start() {
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);
@@ -52,7 +51,7 @@
             }
         }
         
-        public void stop() throws Node2Exception {
+        public void stop() {
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);

Modified: incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java Mon Mar 31 02:36:39 2008
@@ -19,7 +19,6 @@
 
 package org.apache.tuscany.sca.implementation.node.launcher;
 
-import org.apache.tuscany.sca.node.Node2Exception;
 import org.apache.tuscany.sca.node.SCAClient;
 import org.apache.tuscany.sca.node.SCANode2;
 import org.apache.tuscany.sca.node.SCANode2Factory;
@@ -48,7 +47,7 @@
             this.delegate = delegate;
         }
         
-        public void start() throws Node2Exception {
+        public void start() {
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);
@@ -58,7 +57,7 @@
             }
         }
         
-        public void stop() throws Node2Exception {
+        public void stop() {
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);

Modified: incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java Mon Mar 31 02:36:39 2008
@@ -47,7 +47,6 @@
 import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint;
 import org.apache.tuscany.sca.host.http.ServletMappingException;
 import org.apache.tuscany.sca.implementation.node.launcher.NodeImplementationLauncherUtil;
-import org.apache.tuscany.sca.node.Node2Exception;
 import org.apache.tuscany.sca.node.SCAClient;
 import org.apache.tuscany.sca.node.SCANode2;
 import org.apache.tuscany.sca.node.SCANode2Factory;
@@ -114,11 +113,7 @@
         
         // Create the SCA node
         SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
-        try {
-            node = nodeFactory.createSCANode(nodeImage);
-        } catch (Node2Exception e) {
-            throw new ServletException(e);
-        }
+        node = nodeFactory.createSCANode(nodeImage);
         
         // Register the Servlet host
         ServletHostExtensionPoint servletHosts = servletHosts(node);
@@ -129,11 +124,7 @@
         servletContext.setAttribute(SCAClient.class.getName(), node);
         
         // Start the node
-        try {
-            node.start();
-        } catch (Node2Exception e) {
-            throw new ServletException(e);
-        }
+        node.start();
 
         // Initialize the registered Servlets
         for (Servlet servlet : servlets.values()) {
@@ -278,13 +269,9 @@
             servlet.destroy();
         }
 
-        // Close the SCA domain
+        // Stop the node
         if (node != null) {
-            try {
-                node.stop();
-            } catch (Node2Exception e) {
-                throw new RuntimeException(e);
-            }
+            node.stop();
         }
     }
 

Modified: incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java (original)
+++ incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java Mon Mar 31 02:36:39 2008
@@ -32,11 +32,11 @@
     /**
      * Start the composite loaded in the node.
      */
-    void start() throws Node2Exception;
+    void start();
 
     /**
      * Stop the composite loaded in the node.
      */
-    void stop() throws Node2Exception;
+    void stop();
 
 }

Modified: incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java (original)
+++ incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java Mon Mar 31 02:36:39 2008
@@ -71,7 +71,7 @@
      * @param configurationURI the URI of the node configuration 
      * @return a new SCA node.
      */
-    public abstract SCANode2 createSCANode(String configurationURI) throws Node2Exception;
+    public abstract SCANode2 createSCANode(String configurationURI);
 
     /**
      * Creates a new SCA node.
@@ -80,7 +80,7 @@
      * @param contributions the URI of the composite to use 
      * @return a new SCA node.
      */
-    public abstract SCANode2 createSCANode(String compositeURI, SCAContribution... contributions) throws Node2Exception;
+    public abstract SCANode2 createSCANode(String compositeURI, SCAContribution... contributions);
 
     /**
      * Represents an SCA contribution uri + location.

Modified: incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java Mon Mar 31 02:36:39 2008
@@ -19,7 +19,6 @@
 
 package org.apache.tuscany.sca.node.impl;
 
-import org.apache.tuscany.sca.node.Node2Exception;
 import org.apache.tuscany.sca.node.SCANode2;
 import org.apache.tuscany.sca.node.SCANode2Factory;
 
@@ -34,12 +33,12 @@
     }
 
     @Override
-    public SCANode2 createSCANode(String configurationURI) throws Node2Exception {
+    public SCANode2 createSCANode(String configurationURI) {
         return new NodeImpl(configurationURI);
     }
     
     @Override
-    public SCANode2 createSCANode(String compositeURI, SCAContribution... contributions) throws Node2Exception {
+    public SCANode2 createSCANode(String compositeURI, SCAContribution... contributions) {
         return new NodeImpl(compositeURI, contributions);
     }
 }

Modified: incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Mon Mar 31 02:36:39 2008
@@ -50,7 +50,6 @@
 import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime;
 import org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation;
 import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory;
-import org.apache.tuscany.sca.node.Node2Exception;
 import org.apache.tuscany.sca.node.SCAClient;
 import org.apache.tuscany.sca.node.SCANode2;
 import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution;
@@ -86,9 +85,8 @@
      * Constructs a new SCA node.
      *  
      * @param configurationURI the URI of the node configuration information.
-     * @throws Node2Exception
      */
-    NodeImpl(String configurationURI) throws Node2Exception {
+    NodeImpl(String configurationURI) {
         configurationName = configurationURI;
         logger.log(Level.INFO, "Creating node: " + configurationName);               
 
@@ -119,7 +117,7 @@
             configureNode(configuration);
 
         } catch (Exception e) {
-            throw new Node2Exception(e);
+            throw new ServiceRuntimeException(e);
         }        
     }
     
@@ -128,9 +126,8 @@
      *  
      * @param compositeURI
      * @param contributions
-     * @throws Node2Exception
      */
-    NodeImpl(String compositeURI, SCAContribution[] contributions) throws Node2Exception {
+    NodeImpl(String compositeURI, SCAContribution[] contributions) {
         configurationName = compositeURI;
         logger.log(Level.INFO, "Creating node: " + configurationName);               
 
@@ -163,7 +160,7 @@
             configureNode(configuration);
 
         } catch (Exception e) {
-            throw new Node2Exception(e);
+            throw new ServiceRuntimeException(e);
         }        
     }
     
@@ -246,7 +243,7 @@
         runtime.buildComposite(composite);
     }
     
-    public void start() throws Node2Exception {
+    public void start() {
         logger.log(Level.INFO, "Starting node: " + configurationName);               
         
         try {
@@ -258,11 +255,11 @@
             compositeActivator.start(composite);
             
         } catch (ActivationException e) {
-            throw new Node2Exception(e);
+            throw new ServiceRuntimeException(e);
         }
     }
     
-    public void stop() throws Node2Exception {
+    public void stop() {
         logger.log(Level.INFO, "Stopping node: " + configurationName);               
         
         try {
@@ -274,7 +271,7 @@
             compositeActivator.deactivate(composite);
             
         } catch (ActivationException e) {
-            throw new Node2Exception(e);
+            throw new ServiceRuntimeException(e);
         }
     }
     

Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launcher/DomainManagerLauncherBootstrap.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launcher/DomainManagerLauncherBootstrap.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launcher/DomainManagerLauncherBootstrap.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launcher/DomainManagerLauncherBootstrap.java Mon Mar 31 02:36:39 2008
@@ -20,7 +20,6 @@
 package org.apache.tuscany.sca.workspace.admin.launcher;
 
 import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.apache.tuscany.sca.node.Node2Exception;
 import org.apache.tuscany.sca.node.SCANode2;
 
 /**
@@ -42,7 +41,7 @@
             runtimeClassLoader = Thread.currentThread().getContextClassLoader();
         }
         
-        public void start() throws Node2Exception {
+        public void start() {
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);
@@ -52,7 +51,7 @@
             }
         }
         
-        public void stop() throws Node2Exception {
+        public void stop() {
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);

Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/META-INF/MANIFEST.MF?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/META-INF/MANIFEST.MF (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/META-INF/MANIFEST.MF Mon Mar 31 02:36:39 2008
@@ -15,6 +15,7 @@
  org.eclipse.jdt.launching,
  org.eclipse.jdt.ui.wizards,
  org.eclipse.jface.dialogs,
+ org.eclipse.jface.operation,
  org.eclipse.jface.resource,
  org.eclipse.jface.viewers,
  org.eclipse.jface.wizard,
@@ -23,6 +24,7 @@
  org.eclipse.swt.graphics,
  org.eclipse.swt.widgets,
  org.eclipse.ui,
+ org.eclipse.ui.progress,
  org.osgi.framework;version="1.4.0"
 Bundle-Vendor: Apache Software Foundation
 Bundle-RequiredExecutionEnvironment: J2SE-1.5

Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java Mon Mar 31 02:36:39 2008
@@ -104,19 +104,6 @@
         // Add the JARs from runtime/lib and runtime/modules as classpath entries
         if (runtimePath != null) {
             
-            // Add the JARs from runtime/lib
-            File libDirectory = runtimePath.append("lib").toFile();
-            if (libDirectory != null && libDirectory.exists()) {
-                for (File file : libDirectory.listFiles()) {
-                    IPath path = new Path(file.getPath());
-                    String extension = path.getFileExtension();
-                    if (!"jar".equals(extension)) {
-                        continue;
-                    }
-                    list.add(JavaCore.newLibraryEntry(path, sourcePath, null));
-                }
-            }
-
             // Add the jars from runtime/modules
             File modulesDirectory = runtimePath.append("modules").toFile();
             if (modulesDirectory != null && modulesDirectory.exists()) {
@@ -132,7 +119,7 @@
                     if (name.indexOf("-api-") == -1 && name.indexOf("-launcher-") == -1) {
                         continue;
                     }
-                    if (name.startsWith("tuscany-node-api-")) {
+                    if (name.startsWith("tuscany-node-api-") || name.startsWith("tuscany-domain-api-")) {
                         continue;
                     }
 

Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java Mon Mar 31 02:36:39 2008
@@ -22,11 +22,8 @@
 import java.io.File;
 import java.util.Map;
 
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
@@ -35,7 +32,6 @@
 import org.eclipse.jdt.launching.IVMInstall;
 import org.eclipse.jdt.launching.IVMRunner;
 import org.eclipse.jdt.launching.VMRunnerConfiguration;
-import org.osgi.framework.Bundle;
 
 /**
  * Launch configuration delegate for the Tuscany launch configuration.

Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchShortcut.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchShortcut.java?rev=642938&r1=642937&r2=642938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchShortcut.java (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchShortcut.java Mon Mar 31 02:36:39 2008
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.net.MalformedURLException;
 import java.net.Socket;
 
@@ -33,8 +34,10 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunchConfigurationType;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
@@ -45,9 +48,11 @@
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
 
 /**
  * A launch shortcut for SCA .composite files.
@@ -58,7 +63,7 @@
     
     private final static String TUSCANY_SCA_DOMAIN_PROJECT = "tuscany-sca-domain"; 
 
-    public void launch(ISelection selection, String mode) {
+    public void launch(final ISelection selection, final String mode) {
 
         try {
             
@@ -70,27 +75,53 @@
             if (selections.length == 0) {
                 return;
             }
-            IFile file = (IFile)selections[0];
+            final IFile file = (IFile)selections[0];
             if (!file.getFileExtension().equals("composite")) {
                 return;
             }
+            
+            // Run with a progress monitor
+            PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true, true, new IRunnableWithProgress() {
 
-            // Get our launch configuration type
-            ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
-            ILaunchConfigurationType launchConfigurationType =launchManager.getLaunchConfigurationType(
-                                                                                           "org.apache.tuscany.sca.core.launch.configurationtype");
-
-            // If the SCA domain controller is not running yet, launch it
-            if (!isDomainManagerRunning()) {
-                launchDomainManager(mode, file, launchManager, launchConfigurationType);
-                if (!waitForDomainManager()) {
-                    throw new RuntimeException("SCA Domain Manager could not be started.");
+                public void run(IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException {
+                    progressMonitor.beginTask("Starting SCA Composite", 100);
+                    
+                    // Get our launch configuration type
+                    ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
+                    ILaunchConfigurationType launchConfigurationType =launchManager.getLaunchConfigurationType(
+                                                                                                   "org.apache.tuscany.sca.core.launch.configurationtype");
+                    progressMonitor.worked(10);
+                    if (progressMonitor.isCanceled()) {
+                        return;
+                    }
+
+                    try {
+                        // If the SCA domain controller is not running yet, launch it
+                        if (!isDomainManagerRunning()) {
+                            launchDomainManager(mode, file, launchManager, launchConfigurationType, progressMonitor);
+                            if (progressMonitor.isCanceled()) {
+                                return;
+                            }
+                            if (!waitForDomainManager(progressMonitor)) {
+                                throw new RuntimeException("SCA Domain Manager could not be started.");
+                            }
+                        }
+                        if (progressMonitor.isCanceled()) {
+                            return;
+                        }
+                        progressMonitor.worked(50);
+
+                        // Launch an SCA node 
+                        launchNode(mode, file, launchManager, launchConfigurationType, progressMonitor);
+                        
+                        progressMonitor.done();
+                        
+                    } catch (Exception e) {
+                        throw new InvocationTargetException(e);
+                    }
                 }
-            }
+            });
 
-            // Launch an SCA node 
-            launchNode(mode, file, launchManager, launchConfigurationType);
-            
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -113,7 +144,12 @@
     private void launchNode(String mode,
                             IFile file,
                             ILaunchManager launchManager,
-                            ILaunchConfigurationType launchConfigurationType) throws CoreException, JavaModelException, IOException {
+                            ILaunchConfigurationType launchConfigurationType,
+                            IProgressMonitor progressMonitor) throws CoreException, JavaModelException, IOException {
+        progressMonitor.subTask("- starting SCA node");
+        if (progressMonitor.isCanceled()) {
+            return;
+        }
         
         // Get the Java project
         IJavaProject javaProject = JavaCore.create(file.getProject());
@@ -126,7 +162,7 @@
         String compositeURI = compositeURI(javaProject, file);
         
         // Configure the node
-        String nodeName = configureNode(contributionURI, contributionLocation, compositeURI);
+        String nodeName = configureNode(contributionURI, contributionLocation, compositeURI, progressMonitor);
 
         // Create a launch configuration
         ILaunchConfigurationWorkingCopy configuration = launchConfigurationType.newInstance(null,
@@ -159,10 +195,15 @@
     private void launchDomainManager(String mode,
                             IFile file,
                             ILaunchManager launchManager,
-                            ILaunchConfigurationType launchConfigurationType) throws CoreException, JavaModelException {
+                            ILaunchConfigurationType launchConfigurationType,
+                            IProgressMonitor progressMonitor) throws CoreException, JavaModelException {
+        progressMonitor.subTask("- starting SCA domain manager");
+        if (progressMonitor.isCanceled()) {
+            return;
+        }
         
         // Get the SCA domain project
-        IProject domainProject = domainProject();
+        IProject domainProject = domainProject(progressMonitor);
 
         // Create a launch configuration
         ILaunchConfigurationWorkingCopy configuration = launchConfigurationType.newInstance(null,
@@ -216,8 +257,12 @@
      * 
      * @return
      */
-    private static boolean waitForDomainManager() throws InterruptedException {
-        for (int i = 0; i < 30; i++) {
+    private static boolean waitForDomainManager(IProgressMonitor progressMonitor) throws InterruptedException {
+        progressMonitor.subTask("- waiting for SCA domain manager");
+        for (int i = 0; i < 40; i++) {
+            if (progressMonitor.isCanceled()) {
+                return false;
+            }
             if (isDomainManagerRunning()) {
                 return true;
             }
@@ -327,7 +372,9 @@
      * @return
      * @throws IOException
      */
-    private static String configureNode(String contributionURI, String contributionLocation, String compositeURI) throws IOException, CoreException {
+    private static String configureNode(String contributionURI, String contributionLocation, String compositeURI,
+                                        IProgressMonitor progressMonitor) throws IOException, CoreException {
+        progressMonitor.subTask("- configuring node");
         
         // Send the request to configure the node
         Socket client = new Socket("localhost", 9990);
@@ -340,7 +387,7 @@
         String response = read(client);
         
         // Refresh the domain project
-        domainProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+        domainProject(progressMonitor).refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
         
         int i = response.indexOf("<span id=\"node\">");
         if (i != -1) {
@@ -362,11 +409,17 @@
      * @return
      * @throws CoreException
      */
-    private static IProject domainProject() throws CoreException {
+    private static IProject domainProject(IProgressMonitor progressMonitor) throws CoreException {
+        
         IProject domainProject = ResourcesPlugin.getWorkspace().getRoot().getProject(TUSCANY_SCA_DOMAIN_PROJECT);
+        if (progressMonitor.isCanceled()) {
+            return domainProject;
+        }
         if (!domainProject.exists()) {
-            domainProject.create(new NullProgressMonitor());
-            domainProject.open(new NullProgressMonitor());
+            progressMonitor.subTask("- creating SCA domain resources");
+            
+            domainProject.create(new SubProgressMonitor(progressMonitor, 5));
+            domainProject.open(new SubProgressMonitor(progressMonitor, 5));
             
             String html = "<html>\n" +
                 "<head>\n" +
@@ -378,7 +431,7 @@
                 "</html>"; 
             
             IFile file = domainProject.getFile(new Path("domain.html"));
-            file.create(new ByteArrayInputStream(html.getBytes()), true, new NullProgressMonitor());
+            file.create(new ByteArrayInputStream(html.getBytes()), true, new SubProgressMonitor(progressMonitor, 5));
         }
         return domainProject;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org