diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules')
6 files changed, 77 insertions, 18 deletions
diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java index a2ceeda5a7..4965b7c15a 100644 --- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/EndpointRegistry.java @@ -82,5 +82,6 @@ public interface EndpointRegistry { void addRunningComposite(Composite composite); void removeRunningComposite(QName name); - List<Composite> getRunningComposites(); + Composite getRunningComposite(QName name); + List<QName> getRunningCompositeNames(); } diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java index 1f03395040..6badcd74ef 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointRegistryImpl.java @@ -172,8 +172,17 @@ public class EndpointRegistryImpl extends BaseEndpointRegistry implements Endpoi } @Override - public List<Composite> getRunningComposites() { - return new ArrayList<Composite>(runningComposites.values()); + public Composite getRunningComposite(QName name) { + return runningComposites.get(name); + } + + @Override + public List<QName> getRunningCompositeNames() { + List<QName> compositeNames = new ArrayList<QName>(); + for (Composite composite : runningComposites.values()) { + compositeNames.add(composite.getName()); + } + return compositeNames; } } diff --git a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java index 1781e75d45..ed903134a7 100644 --- a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java +++ b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java @@ -846,7 +846,12 @@ public class DeployerImpl implements Deployer { } @Override - public List<Composite> getRunningComposites() { + public Composite getRunningComposite(QName name) { + return null; + } + + @Override + public List<QName> getRunningCompositeNames() { return null; } diff --git a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java index aa9abdf45f..7e22ceab2c 100644 --- a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java @@ -25,7 +25,6 @@ import java.io.StringReader; 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; @@ -82,12 +81,16 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E private final static Logger logger = Logger.getLogger(HazelcastEndpointRegistry.class.getName()); private HazelcastInstance hazelcastInstance; + protected Map<Object, Object> endpointMap; - protected Map<Object, Object> endpointWsdls; - protected Map<QName, Composite> runningComposites; - protected Map<String, Endpoint> localEndpoints = new ConcurrentHashMap<String, Endpoint>(); protected MultiMap<String, String> endpointOwners; + protected Map<QName, String> runningComposites; + protected MultiMap<String, QName> runningCompositeOwners; + + protected Map<Object, Object> endpointWsdls; + protected Map<String, Endpoint> localEndpoints = new ConcurrentHashMap<String, Endpoint>(); + protected AssemblyFactory assemblyFactory; protected Object shutdownMutex = new Object(); protected Properties properties; @@ -126,9 +129,8 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E endpointOwners = hazelcastInstance.getMultiMap(domainURI + "/EndpointOwners"); endpointWsdls = hazelcastInstance.getMap(domainURI + "/EndpointWsdls"); - // 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>(); + runningComposites = hazelcastInstance.getMap(domainURI + "/CompositeOwners"); + runningCompositeOwners = hazelcastInstance.getMultiMap(domainURI + "/CompositeOwners"); hazelcastInstance.getCluster().addMembershipListener(this); // } @@ -142,6 +144,8 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E endpointMap = null; endpointOwners = null; endpointWsdls = null; + runningComposites = null; + runningCompositeOwners = null; } } } @@ -434,6 +438,12 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E endpointWsdls.remove(k); } } + if (runningCompositeOwners.containsKey(memberAddr)) { + Collection<QName> keys = runningCompositeOwners.remove(memberAddr); + for (QName k : keys) { + runningComposites.remove(k); + } + } } finally { lock.unlock(); } @@ -465,18 +475,46 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E } return null; } + @Override public void addRunningComposite(Composite composite) { - runningComposites.put(composite.getName(), composite); + String localMemberAddr = hazelcastInstance.getCluster().getLocalMember().getInetSocketAddress().toString(); + String compositeXML = ""; // TODO: serialize composite + Transaction txn = hazelcastInstance.getTransaction(); + txn.begin(); + try { + runningComposites.put(composite.getName(), compositeXML); + runningCompositeOwners.put(localMemberAddr, composite.getName()); + txn.commit(); + } catch (Throwable e) { + txn.rollback(); + throw new ServiceRuntimeException(e); + } } @Override public void removeRunningComposite(QName name) { - runningComposites.remove(name); + String localMemberAddr = hazelcastInstance.getCluster().getLocalMember().getInetSocketAddress().toString(); + Transaction txn = hazelcastInstance.getTransaction(); + txn.begin(); + try { + runningComposites.remove(name); + runningCompositeOwners.remove(localMemberAddr, name); + txn.commit(); + } catch (Throwable e) { + txn.rollback(); + throw new ServiceRuntimeException(e); + } + } + + @Override + public Composite getRunningComposite(QName name) { + String compositeXML = runningComposites.get(name); + return null; // TODO: unserialize composite xml } @Override - public List<Composite> getRunningComposites() { - return new ArrayList<Composite>(runningComposites.values()); + public List<QName> getRunningCompositeNames() { + return new ArrayList<QName>(runningCompositeOwners.values()); } } diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java index c49f2f68fd..c7a8a6087e 100644 --- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java +++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java @@ -222,8 +222,8 @@ public class NodeImpl implements Node { domainComposite.setAutowire(false); domainComposite.setLocal(false); List<Composite> domainIncludes = domainComposite.getIncludes(); - for (Composite composite : endpointRegistry.getRunningComposites()) { - domainIncludes.add(composite); + for (QName compositeName : endpointRegistry.getRunningCompositeNames()) { + domainIncludes.add(endpointRegistry.getRunningComposite(compositeName)); } return domainComposite; } diff --git a/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java b/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java index 035418545f..d5e99132f1 100644 --- a/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java @@ -433,7 +433,13 @@ public class ReplicatedEndpointRegistry extends BaseEndpointRegistry implements } @Override - public List<Composite> getRunningComposites() { + public Composite getRunningComposite(QName name) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List<QName> getRunningCompositeNames() { // TODO Auto-generated method stub return null; } |