Method from org.apache.geronimo.openejb.cluster.infra.NetworkConnectorMonitor Detail: |
protected URI buildURI(NetworkConnector connector) {
String uriAsString = connector.getProtocol() + "://" + connector.getHost() + ":" + connector.getPort();
URI uri;
try {
uri = new URI(uriAsString);
} catch (URISyntaxException e) {
throw new IllegalStateException("URI [" + uriAsString + "] is invalid", e);
}
return uri;
}
|
public void doFail() {
try {
doStop();
} catch (Exception e) {
log.error("See nested", e);
}
}
|
public void doStart() throws Exception {
trackerProxyFactory = newNetworkConnectorTrackerProxy();
localTracker = locateLocalNetworkConnectorTracker();
for (NetworkConnector connector : connectors) {
URI uri = buildURI(connector);
synchronized (locations) {
locations.add(uri);
}
}
for (EjbDeploymentIdAccessor deploymentIdAccessor : idAccessors) {
String deploymentId = deploymentIdAccessor.getDeploymentId();
updateTracker(deploymentId);
}
}
|
public void doStop() throws Exception {
synchronized (locations) {
locations.clear();
}
}
|
public static GBeanInfo getGBeanInfo() {
return GBEAN_INFO;
}
|
protected NetworkConnectorTracker locateLocalNetworkConnectorTracker() {
ServiceSpace serviceSpace = sessionManager.getServiceSpace();
ServiceRegistry serviceRegistry = serviceSpace.getServiceRegistry();
try {
return (NetworkConnectorTracker) serviceRegistry.getStartedService(NetworkConnectorTracker.NAME);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
|
protected ServiceProxyFactory newNetworkConnectorTrackerProxy() {
ServiceSpace serviceSpace = sessionManager.getServiceSpace();
ServiceProxyFactory proxyFactory = serviceSpace.getServiceProxyFactory(NetworkConnectorTracker.NAME,
new Class[] { NetworkConnectorTracker.class });
InvocationMetaData invocationMetaData = proxyFactory.getInvocationMetaData();
invocationMetaData.setOneWay(true);
return proxyFactory;
}
|
protected void registerListenerForConnectorUpdates(ReferenceCollection connectors) {
connectors.addReferenceCollectionListener(new ReferenceCollectionListener() {
public void memberAdded(ReferenceCollectionEvent event) {
URI uri = buildURI(event);
synchronized (locations) {
locations.add(uri);
}
Set< URI > uris = new HashSet< URI >();
uris.add(uri);
for (EjbDeploymentIdAccessor deploymentIdAccessor : idAccessors) {
String deploymentId = deploymentIdAccessor.getDeploymentId();
updateTracker(deploymentId, uris);
}
}
public void memberRemoved(ReferenceCollectionEvent event) {
URI uri = buildURI(event);
synchronized (locations) {
locations.remove(uri);
}
Set< URI > uris = new HashSet< URI >();
uris.add(uri);
for (EjbDeploymentIdAccessor deploymentIdAccessor : idAccessors) {
String deploymentId = deploymentIdAccessor.getDeploymentId();
removeTracker(deploymentId, uris);
}
}
protected URI buildURI(ReferenceCollectionEvent event) {
NetworkConnector connector = (NetworkConnector) event.getMember();
return NetworkConnectorMonitor.this.buildURI(connector);
}
});
}
|
protected void registerListenerForDeploymentUpdates(ReferenceCollection deploymentIdAccessors) {
deploymentIdAccessors.addReferenceCollectionListener(new ReferenceCollectionListener() {
public void memberAdded(ReferenceCollectionEvent event) {
EjbDeploymentIdAccessor idAccessor = (EjbDeploymentIdAccessor) event.getMember();
String deploymentId = idAccessor.getDeploymentId();
updateTracker(deploymentId);
}
public void memberRemoved(ReferenceCollectionEvent event) {
EjbDeploymentIdAccessor idAccessor = (EjbDeploymentIdAccessor) event.getMember();
String deploymentId = idAccessor.getDeploymentId();
removeTracker(deploymentId);
}
});
}
|
protected void registerListenerForMembershipUpdates(WADISessionManager sessionManager) {
sessionManager.registerSessionManagerListener(new SessionManagerListener() {
public void onJoin(Node joiningNode, Set< Node > newHostingNodes) {
Set< URI > clonedLocations;
synchronized (locations) {
clonedLocations = new HashSet< URI >(locations);
}
for (EjbDeploymentIdAccessor deploymentIdAccessor : NetworkConnectorMonitor.this.idAccessors) {
String deploymentId = deploymentIdAccessor.getDeploymentId();
ServiceProxy proxy = trackerProxyFactory.getProxy();
RemoteNode remoteNode = (RemoteNode) joiningNode;
proxy.getInvocationMetaData().setTargets(new Peer[] {remoteNode.getPeer()});
NetworkConnectorTracker tracker = (NetworkConnectorTracker) proxy;
tracker.registerNetworkConnectorLocations(deploymentId, nodeName, clonedLocations);
}
}
public void onLeave(Node leavingNode, Set< Node > newHostingNodes) {
String leavingNodeName = leavingNode.getName();
localTracker.unregisterNetworkConnectorLocations(leavingNodeName);
}
});
}
|
protected void removeTracker(Object deploymentId) {
Set< URI > clonedLocations;
synchronized (locations) {
clonedLocations = new HashSet< URI >(locations);
}
removeTracker(deploymentId, clonedLocations);
}
|
protected void removeTracker(Object deploymentId,
Set<URI> locationsToUnregister) {
NetworkConnectorTracker tracker = (NetworkConnectorTracker) trackerProxyFactory.getProxy();
tracker.unregisterNetworkConnectorLocations(deploymentId, nodeName, locationsToUnregister);
}
|
protected void updateTracker(Object deploymentId) {
Set< URI > clonedLocations;
synchronized (locations) {
clonedLocations = new HashSet< URI >(locations);
}
updateTracker(deploymentId, clonedLocations);
}
|
protected void updateTracker(Object deploymentId,
Set<URI> locationsToRegister) {
NetworkConnectorTracker tracker = (NetworkConnectorTracker) trackerProxyFactory.getProxy();
tracker.registerNetworkConnectorLocations(deploymentId, nodeName, locationsToRegister);
}
|
protected void updateTrackerForAllDeploymentIds() {
for (EjbDeploymentIdAccessor deploymentIdAccessor : idAccessors) {
String deploymentId = deploymentIdAccessor.getDeploymentId();
updateTracker(deploymentId);
}
}
|