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