summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/endpoint-tribes/src/main/java/org
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-06-17 16:14:58 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-06-17 16:14:58 +0000
commitd88b2af71307638c59e819285efaa91b8a1bd495 (patch)
tree30ee0e56a8b25e9e21a7b1d497cbdf9b57457669 /java/sca/modules/endpoint-tribes/src/main/java/org
parenta1c9138328d18948c1249d2853b3a15c171363fc (diff)
Add a LifeCycleListener interface so that extension points or extension can be called back upon the start/stop of the extension point registry
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@785699 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/endpoint-tribes/src/main/java/org')
-rw-r--r--java/sca/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java32
1 files changed, 19 insertions, 13 deletions
diff --git a/java/sca/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java b/java/sca/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java
index 3d6ba89a74..0786e0e267 100644
--- a/java/sca/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java
+++ b/java/sca/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java
@@ -33,17 +33,17 @@ import org.apache.catalina.tribes.group.GroupChannel;
import org.apache.catalina.tribes.membership.McastService;
import org.apache.catalina.tribes.tipis.AbstractReplicatedMap;
import org.apache.catalina.tribes.tipis.ReplicatedMap;
-import org.apache.catalina.tribes.tipis.AbstractReplicatedMap.MapEntry;
import org.apache.tuscany.sca.assembly.Endpoint;
import org.apache.tuscany.sca.assembly.EndpointReference;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.LifeCycleListener;
import org.apache.tuscany.sca.runtime.EndpointListener;
import org.apache.tuscany.sca.runtime.EndpointRegistry;
/**
* A replicated EndpointRegistry based on Apache Tomcat Tribes
*/
-public class ReplicatedEndpointRegistry implements EndpointRegistry {
+public class ReplicatedEndpointRegistry implements EndpointRegistry, LifeCycleListener {
private final static Logger logger = Logger.getLogger(ReplicatedEndpointRegistry.class.getName());
private static final String MULTICAST_ADDRESS = "228.0.0.100";
private static final int MULTICAST_PORT = 50000;
@@ -113,15 +113,18 @@ public class ReplicatedEndpointRegistry implements EndpointRegistry {
if (timeoutStr != null) {
timeout = Integer.parseInt(timeoutStr);
}
- start();
+ // start();
}
public ReplicatedEndpointRegistry(String domainURI) {
this.domainURI = domainURI;
- start();
+ // start();
}
public void start() {
+ if (map != null) {
+ throw new IllegalStateException("The registry has already been started");
+ }
map =
new ReplicatedMap(null, createChannel(address, port, bind), timeout, this.domainURI,
new ClassLoader[] {ReplicatedEndpointRegistry.class.getClassLoader()});
@@ -133,12 +136,15 @@ public class ReplicatedEndpointRegistry implements EndpointRegistry {
}
public void stop() {
- Channel channel = map.getChannel();
- map.breakdown();
- try {
- channel.stop(Channel.DEFAULT);
- } catch (ChannelException e) {
- throw new IllegalStateException(e);
+ if (map != null) {
+ Channel channel = map.getChannel();
+ map.breakdown();
+ try {
+ channel.stop(Channel.DEFAULT);
+ } catch (ChannelException e) {
+ throw new IllegalStateException(e);
+ }
+ map = null;
}
}
@@ -214,10 +220,10 @@ public class ReplicatedEndpointRegistry implements EndpointRegistry {
Endpoint endpoint = (Endpoint)v;
// TODO: implement more complete matching
if (matches(targetEndpoint.getURI(), endpoint.getURI())) {
- MapEntry entry = map.getInternal(endpoint.getURI());
- if (!entry.isPrimary()) {
+ // MapEntry entry = map.getInternal(endpoint.getURI());
+ // if (!entry.isPrimary()) {
endpoint.setExtensionPointRegistry(registry);
- }
+ // }
foundEndpoints.add(endpoint);
logger.info("EndpointRegistry: Found endpoint with matching service - " + endpoint);
}