You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2007/07/17 14:00:32 UTC

svn commit: r556897 - in /incubator/tuscany/java/sca/modules/host-embedded/src: main/java/org/apache/tuscany/sca/host/embedded/ main/java/org/apache/tuscany/sca/host/embedded/impl/ main/java/org/apache/tuscany/sca/host/embedded/management/ main/java/or...

Author: antelder
Date: Tue Jul 17 05:00:28 2007
New Revision: 556897

URL: http://svn.apache.org/viewvc?view=rev&rev=556897
Log:
Updates for component start/stop: add componentmanager to abstract SCADomain, ename ComponentManager pkg, add support for isStarted

Added:
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/
      - copied from r556862, incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/management/
Removed:
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/management/
Modified:
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ComponentManagerImpl.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentListener.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentManager.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java Tue Jul 17 05:00:28 2007
@@ -28,6 +28,7 @@
 import java.security.PrivilegedAction;
 
 import org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain;
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ServiceReference;
 import org.osoa.sca.ServiceRuntimeException;
@@ -262,6 +263,10 @@
         } catch (Exception e) {
             throw new ServiceRuntimeException(e);
         }
+    }
+
+    public ComponentManager getComponentManager() {
+        return null; 
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java Tue Jul 17 05:00:28 2007
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.host.embedded;
 
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ServiceReference;
 
@@ -107,5 +108,13 @@
             instance.close();
             instance = null;
         }
+    }
+
+    @Override
+    public ComponentManager getComponentManager() {
+        if (instance == null) {
+            instance = SCADomain.createNewInstance(uri, location, composites);
+        }
+        return instance.getComponentManager();
     }
 }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ComponentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ComponentManagerImpl.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ComponentManagerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ComponentManagerImpl.java Tue Jul 17 05:00:28 2007
@@ -19,18 +19,19 @@
 
 package org.apache.tuscany.sca.host.embedded.impl;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.core.runtime.ActivationException;
-import org.apache.tuscany.sca.host.management.ComponentListener;
-import org.apache.tuscany.sca.host.management.ComponentManager;
+import org.apache.tuscany.sca.core.runtime.RuntimeComponentImpl;
+import org.apache.tuscany.sca.host.embedded.management.ComponentListener;
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 
 public class ComponentManagerImpl implements ComponentManager {
 
-    protected List<ComponentListener> listeners = new ArrayList<ComponentListener>();
+    protected List<ComponentListener> listeners = new CopyOnWriteArrayList<ComponentListener>();
     protected EmbeddedSCADomain domain;
 
     public ComponentManagerImpl(EmbeddedSCADomain domain) {
@@ -87,6 +88,11 @@
                 e.printStackTrace(); // TODO: log
             }
         }
+    }
+
+    public boolean isComponentStarted(String componentName) {
+        RuntimeComponentImpl runtimeComponent = (RuntimeComponentImpl)getComponent(componentName);
+        return runtimeComponent.isStarted();
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java Tue Jul 17 05:00:28 2007
@@ -24,7 +24,11 @@
 import java.net.URI;
 import java.net.URL;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import javax.xml.namespace.QName;
 
@@ -42,7 +46,10 @@
 import org.apache.tuscany.sca.contribution.service.util.FileHelper;
 import org.apache.tuscany.sca.core.runtime.ActivationException;
 import org.apache.tuscany.sca.core.runtime.CompositeActivator;
+import org.apache.tuscany.sca.core.runtime.RuntimeComponentImpl;
 import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.host.embedded.management.ComponentListener;
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ComponentContext;
 import org.osoa.sca.Constants;
@@ -63,6 +70,7 @@
     private Contribution contribution;
     private Map<String, Component> components = new HashMap<String, Component>();
     private ReallySmallRuntime runtime;
+    private ComponentManager componentManager;
 
     /**
      * Constructs a new domain facade.
@@ -152,6 +160,8 @@
         for (Component component : domainComposite.getComponents()) {
             components.put(component.getName(), component);
         }
+        
+        this.componentManager = new DefaultSCADomainComponentManager(this);
     }
 
     @Override
@@ -346,6 +356,114 @@
     @Override
     public String getURI() {
         return uri;
+    }
+
+    @Override
+    public ComponentManager getComponentManager() {
+        return componentManager;
+    }
+
+    public Set<String> getComponentNames() {
+        Set<String> componentNames = new HashSet<String>();
+        for (DeployedArtifact artifact : contribution.getArtifacts()) {
+            if (artifact.getModel() instanceof Composite) {
+                for (Component component : ((Composite)artifact.getModel()).getComponents()) {
+                    componentNames.add(component.getName());
+                }
+            }
+        }
+        return componentNames;
+    }
+    
+    
+    public Component getComponent(String componentName) {
+        for (DeployedArtifact artifact : contribution.getArtifacts()) {
+            if (artifact.getModel() instanceof Composite) {
+                for (Component component : ((Composite)artifact.getModel()).getComponents()) {
+                    if (component.getName().equals(componentName)) {
+                        return component;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+    
+    public void startComponent(String componentName) throws ActivationException {
+        Component component = getComponent(componentName);
+        if (component == null) {
+            throw new IllegalArgumentException("no component: " + componentName);
+        }
+        CompositeActivator compositeActivator = runtime.getCompositeActivator();
+        compositeActivator.start(component);
+    }
+
+    public void stopComponent(String componentName) throws ActivationException {
+        Component component = getComponent(componentName);
+        if (component == null) {
+            throw new IllegalArgumentException("no component: " + componentName);
+        }
+        CompositeActivator compositeActivator = runtime.getCompositeActivator();
+        compositeActivator.stop(component);
+    }
+}
+
+class DefaultSCADomainComponentManager implements ComponentManager {
+
+    protected DefaultSCADomain scaDomain;
+    protected List<ComponentListener> listeners = new CopyOnWriteArrayList<ComponentListener>();
+
+    public DefaultSCADomainComponentManager(DefaultSCADomain scaDomain) {
+        this.scaDomain = scaDomain;
+    }
+
+    public void addComponentListener(ComponentListener listener) {
+        this.listeners.add(listener);
+    }
+
+    public void removeComponentListener(ComponentListener listener) {
+        this.listeners.remove(listener);
+    }
+
+    public Set<String> getComponentNames() {
+        return scaDomain.getComponentNames();
+    }
+
+    public Component getComponent(String componentName) {
+        return scaDomain.getComponent(componentName);
+    }
+
+    public void startComponent(String componentName) throws ActivationException {
+        scaDomain.startComponent(componentName);
+    }
+
+    public void stopComponent(String componentName) throws ActivationException {
+        scaDomain.stopComponent(componentName);
+    }
+
+    public void notifyComponentStarted(String componentName) {
+        for (ComponentListener listener : listeners) {
+            try {
+                listener.componentStarted(componentName);
+            } catch (Exception e) {
+                e.printStackTrace(); // TODO: log
+            }
+        }
+    }
+
+    public void notifyComponentStopped(String componentName) {
+        for (ComponentListener listener : listeners) {
+            try {
+                listener.componentStopped(componentName);
+            } catch (Exception e) {
+                e.printStackTrace(); // TODO: log
+            }
+        }
+    }
+
+    public boolean isComponentStarted(String componentName) {
+        RuntimeComponentImpl runtimeComponent = (RuntimeComponentImpl)getComponent(componentName);
+        return runtimeComponent.isStarted();
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java Tue Jul 17 05:00:28 2007
@@ -36,7 +36,7 @@
 import org.apache.tuscany.sca.core.runtime.ActivationException;
 import org.apache.tuscany.sca.core.runtime.CompositeActivator;
 import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.apache.tuscany.sca.host.management.ComponentManager;
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ComponentContext;
 import org.osoa.sca.Constants;
@@ -209,6 +209,7 @@
         return domainCompositeHelper;
     }
     
+    @Override
     public ComponentManager getComponentManager() {
         return componentManager;
     }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java Tue Jul 17 05:00:28 2007
@@ -38,7 +38,7 @@
 import org.apache.tuscany.sca.contribution.service.util.FileHelper;
 import org.apache.tuscany.sca.core.runtime.ActivationException;
 import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.apache.tuscany.sca.host.management.ComponentManager;
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ServiceReference;
 import org.osoa.sca.ServiceRuntimeException;

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentListener.java?view=diff&rev=556897&r1=556862&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentListener.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentListener.java Tue Jul 17 05:00:28 2007
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.host.management;
+package org.apache.tuscany.sca.host.embedded.management;
 
 import java.util.EventListener;
 

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentManager.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentManager.java?view=diff&rev=556897&r1=556862&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentManager.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/management/ComponentManager.java Tue Jul 17 05:00:28 2007
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.host.management;
+package org.apache.tuscany.sca.host.embedded.management;
 
 import java.util.Set;
 
@@ -29,6 +29,8 @@
     Set<String> getComponentNames();
 
     Component getComponent(String componentName);
+    
+    boolean isComponentStarted(String componentName);
 
     void startComponent(String componentName) throws ActivationException;
 

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java Tue Jul 17 05:00:28 2007
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.sca.host.embedded.impl;
 
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
+
 import junit.framework.TestCase;
 import crud.CRUD;
 
@@ -41,6 +43,18 @@
         assertNotNull(service);
     }
 
+    public void testComponentManager() throws Exception {
+        ComponentManager componentManager = domain.getComponentManager();
+        assertEquals(1, componentManager.getComponentNames().size());
+        assertEquals("CRUDServiceComponent", componentManager.getComponentNames().iterator().next());
+        assertNotNull(componentManager.getComponent("CRUDServiceComponent"));
+        
+        assertFalse(componentManager.isComponentStarted("CRUDServiceComponent"));
+        componentManager.startComponent("CRUDServiceComponent");
+        assertTrue(componentManager.isComponentStarted("CRUDServiceComponent"));
+        componentManager.stopComponent("CRUDServiceComponent");
+        assertFalse(componentManager.isComponentStarted("CRUDServiceComponent"));
+    }
     /**
      * @throws java.lang.Exception
      */

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java?view=diff&rev=556897&r1=556896&r2=556897
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java Tue Jul 17 05:00:28 2007
@@ -29,8 +29,8 @@
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.host.management.ComponentListener;
-import org.apache.tuscany.sca.host.management.ComponentManager;
+import org.apache.tuscany.sca.host.embedded.management.ComponentListener;
+import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 
 import crud.CRUD;
 
@@ -149,13 +149,17 @@
         MyComponentListener cl = new MyComponentListener();
         componentManager.addComponentListener(cl);
 
+        assertTrue(componentManager.isComponentStarted("CRUDServiceComponent"));
+        
         assertFalse(cl.stopCalled);
         componentManager.stopComponent("CRUDServiceComponent");
         assertTrue(cl.stopCalled);
+        assertFalse(componentManager.isComponentStarted("CRUDServiceComponent"));
         
         assertFalse(cl.startCalled);
         componentManager.startComponent("CRUDServiceComponent");
         assertTrue(cl.startCalled);
+        assertTrue(componentManager.isComponentStarted("CRUDServiceComponent"));
 
         // Stop my composite
         domainHelper.stopComposite(myComposite);



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