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 2011/05/09 16:01:00 UTC

svn commit: r1101031 - in /tuscany/sca-java-2.x/trunk/modules: core-spi/src/main/java/org/apache/tuscany/sca/runtime/ core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/ deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/ domain-...

Author: antelder
Date: Mon May  9 14:00:59 2011
New Revision: 1101031

URL: http://svn.apache.org/viewvc?rev=1101031&view=rev
Log:
Start looking at support for a Shell command to show the domain level composite, this includes adding info about the running composites to the domain registry and a the new shell command to access it.

Modified:
    tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java
    tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java
    tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java
    tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
    tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
    tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
    tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java
    tuscany/sca-java-2.x/trunk/modules/shell/src/main/java/org/apache/tuscany/sca/shell/Shell.java

Modified: tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java Mon May  9 14:00:59 2011
@@ -22,6 +22,9 @@ package org.apache.tuscany.sca.runtime;
 import java.util.Collection;
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.assembly.EndpointReference;
 
@@ -76,4 +79,8 @@ public interface EndpointRegistry {
     void removeListener(EndpointListener listener);
 
     String getDomainURI();
+
+    void addRunningComposite(Composite composite);
+    void removeRunningComposite(QName name);
+    List<Composite> getRunningComposites();
 }

Modified: tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java Mon May  9 14:00:59 2011
@@ -20,13 +20,18 @@
 package org.apache.tuscany.sca.core.assembly.impl;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.xml.namespace.QName;
+
 import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.LifeCycleListener;
@@ -43,6 +48,7 @@ public class EndpointRegistryImpl extend
     private final Logger logger = Logger.getLogger(EndpointRegistryImpl.class.getName());
 
     private List<Endpoint> endpoints = new ArrayList<Endpoint>();
+    private Map<QName, Composite> runningComposites = new HashMap<QName, Composite>();
     
     protected boolean quietLogging;
 
@@ -155,4 +161,19 @@ public class EndpointRegistryImpl extend
         listeners.clear();
     }
 
+    @Override
+    public void addRunningComposite(Composite composite) {
+        runningComposites.put(composite.getName(), composite);
+    }
+
+    @Override
+    public void removeRunningComposite(QName name) {
+        runningComposites.remove(name);
+    }
+
+    @Override
+    public List<Composite> getRunningComposites() {
+        return new ArrayList<Composite>(runningComposites.values());
+    }
+
 }

Modified: tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java Mon May  9 14:00:59 2011
@@ -836,5 +836,19 @@ public class DeployerImpl implements Dep
 
         public void stop() {
         }
+
+        @Override
+        public void addRunningComposite(Composite composite) {
+        }
+
+        @Override
+        public void removeRunningComposite(QName name) {
+        }
+
+        @Override
+        public List<Composite> getRunningComposites() {
+            return null;
+        }
+
     }
 }

Modified: tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java Mon May  9 14:00:59 2011
@@ -23,6 +23,7 @@ import java.io.FileNotFoundException;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -30,7 +31,10 @@ import java.util.concurrent.ConcurrentHa
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.xml.namespace.QName;
+
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
@@ -69,10 +73,13 @@ public class HazelcastEndpointRegistry e
     protected Map<Object, Object> endpointMap;
     protected Map<String, Endpoint> localEndpoints = new ConcurrentHashMap<String, Endpoint>();
     protected MultiMap<String, String> endpointOwners;
+    protected Map<QName, Composite> runningComposites;
+
     protected AssemblyFactory assemblyFactory;
     protected Object shutdownMutex = new Object();
     protected Properties properties;
 
+
     public HazelcastEndpointRegistry(ExtensionPointRegistry registry, Properties properties, String endpointRegistryURI, String domainURI) {
         super(registry, null, endpointRegistryURI, domainURI);
         this.assemblyFactory = registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(AssemblyFactory.class);
@@ -106,6 +113,10 @@ public class HazelcastEndpointRegistry e
             
             endpointOwners = hazelcastInstance.getMultiMap(domainURI + "/EndpointOwners");
 
+            // TODO: get going in-JVM first then fix this which needs to serialize/deserialize the composite
+            // runningComposites = hazelcastInstance.getMap(domainURI + "/composites");
+            runningComposites = new HashMap<QName, Composite>();
+
             hazelcastInstance.getCluster().addMembershipListener(this);
 //        }
     }
@@ -395,4 +406,19 @@ public class HazelcastEndpointRegistry e
         }
         return null;
     }
+
+    @Override
+    public void addRunningComposite(Composite composite) {
+        runningComposites.put(composite.getName(), composite);
+    }
+
+    @Override
+    public void removeRunningComposite(QName name) {
+        runningComposites.remove(name);
+    }
+
+    @Override
+    public List<Composite> getRunningComposites() {
+        return new ArrayList<Composite>(runningComposites.values());
+    }
 }

Modified: tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java Mon May  9 14:00:59 2011
@@ -85,6 +85,7 @@ public class DeployedComposite {
 
         Monitor monitor = deployer.createMonitor();
         builtComposite = deployer.build(contribution, dependedOnContributions, new HashMap<QName, List<String>>(), monitor);
+        builtComposite.setName(composite.getName());
         monitor.analyzeProblems();
 
         compositeContext = new CompositeContext(extensionPointRegistry, 
@@ -100,9 +101,11 @@ public class DeployedComposite {
     public void start() throws ActivationException {
         compositeActivator.activate(compositeContext, builtComposite);
         compositeActivator.start(compositeContext, builtComposite);
+        endpointRegistry.addRunningComposite(builtComposite);
     }
 
     public void stop() throws ActivationException {
+        endpointRegistry.removeRunningComposite(builtComposite.getName());
         compositeActivator.stop(compositeContext, builtComposite);
         compositeActivator.deactivate(builtComposite);
     }

Modified: tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java Mon May  9 14:00:59 2011
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.impl;
 
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.Reader;
 import java.util.ArrayList;
@@ -29,11 +30,13 @@ import java.util.Map;
 import java.util.Set;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.tuscany.sca.Node;
 import org.apache.tuscany.sca.TuscanyRuntime;
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Base;
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.ComponentReference;
 import org.apache.tuscany.sca.assembly.ComponentService;
@@ -48,6 +51,9 @@ import org.apache.tuscany.sca.contributi
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.ContributionMetadata;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
@@ -209,15 +215,32 @@ public class NodeImpl implements Node {
     }
 
     public Composite getDomainLevelComposite() {
-        // TODO Auto-generated method stub
-        return null;
+        FactoryExtensionPoint factories = extensionPointRegistry.getExtensionPoint(FactoryExtensionPoint.class);
+        AssemblyFactory assemblyFactory = factories.getFactory(AssemblyFactory.class);
+        Composite domainComposite = assemblyFactory.createComposite();
+        domainComposite.setName(new QName(Base.SCA11_TUSCANY_NS, "domainCompoiste"));
+        List<Composite> domainIncludes = domainComposite.getIncludes();
+        for (Composite composite : endpointRegistry.getRunningComposites()) {
+            domainIncludes.add(composite);
+        }
+        return domainComposite;
     }
 
     public String getDomainLevelCompositeAsString() {
-        // TODO Auto-generated method stub
-        return null;
-    }
+        StAXArtifactProcessorExtensionPoint xmlProcessors = extensionPointRegistry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+        StAXArtifactProcessor<Composite> compositeProcessor = xmlProcessors.getProcessor(Composite.class);
+        XMLOutputFactory outputFactory = extensionPointRegistry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(XMLOutputFactory.class);
+
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        try {
+            compositeProcessor.write(getDomainLevelComposite(), outputFactory.createXMLStreamWriter(bos), new ProcessorContext(extensionPointRegistry));
+        } catch(Exception e) {
+            throw new RuntimeException(e);
+        }
 
+        String result = bos.toString();
+        return  result;
+    }
     public Object getQNameDefinition(String contributionURI, QName definition, QName symbolSpace) {
         // TODO Auto-generated method stub
         return null;

Modified: tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java Mon May  9 14:00:59 2011
@@ -34,6 +34,8 @@ import java.util.StringTokenizer;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.xml.namespace.QName;
+
 import org.apache.catalina.tribes.Channel;
 import org.apache.catalina.tribes.ChannelException;
 import org.apache.catalina.tribes.ChannelReceiver;
@@ -43,6 +45,7 @@ import org.apache.catalina.tribes.group.
 import org.apache.catalina.tribes.membership.McastService;
 import org.apache.catalina.tribes.membership.StaticMember;
 import org.apache.catalina.tribes.transport.ReceiverBase;
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.LifeCycleListener;
@@ -417,4 +420,22 @@ public class ReplicatedEndpointRegistry 
         }
     }
 
+    @Override
+    public void addRunningComposite(Composite composite) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public void removeRunningComposite(QName name) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public List<Composite> getRunningComposites() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }

Modified: tuscany/sca-java-2.x/trunk/modules/shell/src/main/java/org/apache/tuscany/sca/shell/Shell.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/shell/src/main/java/org/apache/tuscany/sca/shell/Shell.java?rev=1101031&r1=1101030&r2=1101031&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/shell/src/main/java/org/apache/tuscany/sca/shell/Shell.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/shell/src/main/java/org/apache/tuscany/sca/shell/Shell.java Mon May  9 14:00:59 2011
@@ -67,7 +67,7 @@ public class Shell {
     private Map<String, Node> standaloneNodes = new HashMap<String, Node>();
     private Map<String, Node> nodes = new HashMap<String, Node>();
 
-    public static final String[] COMMANDS = new String[] {"bye", "domain", "domains", "help", "install", "installed", "invoke",
+    public static final String[] COMMANDS = new String[] {"bye", "domain", "domains", "domainComposite", "help", "install", "installed", "invoke",
                                                           "load", "remove", "run", "save", "services", "start", "started", "stop"};
 
     public static void main(final String[] args) throws Exception {
@@ -135,6 +135,11 @@ public class Shell {
         return true;
     }
 
+    boolean domainComposite() {
+        System.out.println(getNode().getDomainLevelCompositeAsString());
+        return true;
+    }
+
     boolean install(final List<String> toks) throws ContributionReadException, ActivationException, ValidationException {
         if (getNode() == null) {
             out.println("not in domain, use domain command first");
@@ -531,12 +536,18 @@ public class Shell {
                     return domain(toks.size() > 1 ? toks.get(1) : "");
                 }
             };
-            if (op.equalsIgnoreCase("domains"))
-                return new Callable<Boolean>() {
-                    public Boolean call() throws Exception {
-                        return domains();
-                    }
-                };
+        if (op.equalsIgnoreCase("domains"))
+            return new Callable<Boolean>() {
+                public Boolean call() throws Exception {
+                    return domains();
+                }
+            };
+        if (op.equalsIgnoreCase("domainComposite"))
+            return new Callable<Boolean>() {
+                public Boolean call() throws Exception {
+                    return domainComposite();
+                }
+            };
         if (op.equalsIgnoreCase("install"))
             return new Callable<Boolean>() {
                 public Boolean call() throws Exception {