Author: bdekruijff at gmail.com
Date: Wed Dec 22 12:22:15 2010
New Revision: 528
Log:
[sandbox] Removed shell/test code and fixed NPE in local svc reg
Removed:
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/shell/
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/test/
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/shell/
Modified:
sandbox/bdekruijff/fabric/pom.xml
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/osgi/Activator.java
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DiscoveryServiceImpl.java
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DistributionServiceImpl.java
Modified: sandbox/bdekruijff/fabric/pom.xml
==============================================================================
--- sandbox/bdekruijff/fabric/pom.xml (original)
+++ sandbox/bdekruijff/fabric/pom.xml Wed Dec 22 12:22:15 2010
@@ -24,13 +24,6 @@
<artifactId>juli</artifactId>
<version>6.0.29</version>
</dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.shell</artifactId>
- <type>bundle</type>
- <scope>provided</scope>
- <version>1.4.2</version>
- </dependency>
</dependencies>
<build>
Modified:
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/osgi/Activator.java
==============================================================================
---
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/osgi/Activator.java
(original)
+++
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/osgi/Activator.java
Wed Dec 22 12:22:15 2010
@@ -25,17 +25,14 @@
import org.amdatu.core.fabric.cluster.ClusterMessageService;
import org.amdatu.core.fabric.cluster.service.ClusterMessageServiceImpl;
import org.amdatu.core.fabric.cluster.service.tribes.ClusterMemberServiceImpl;
-import org.amdatu.core.fabric.cluster.shell.ClusterMessageCommand;
import org.amdatu.core.fabric.remote.DiscoveryService;
import org.amdatu.core.fabric.remote.DistributionService;
import org.amdatu.core.fabric.remote.RemotableServiceEndpoint;
import org.amdatu.core.fabric.remote.RemoteServiceEndPoint;
import org.amdatu.core.fabric.remote.service.DiscoveryServiceImpl;
import org.amdatu.core.fabric.remote.service.DistributionServiceImpl;
-import org.amdatu.core.fabric.remote.shell.DiscoveryListCommand;
import org.apache.felix.dm.DependencyActivatorBase;
import org.apache.felix.dm.DependencyManager;
-import org.apache.felix.shell.Command;
import org.osgi.framework.BundleContext;
import org.osgi.service.log.LogService;
@@ -78,6 +75,8 @@
.setImplementation(new DiscoveryServiceImpl())
.setInterface(DiscoveryService.class.getName(), cm1props)
.add(
+
createServiceDependency().setService(ClusterMemberService.class).setRequired(true))
+ .add(
createServiceDependency().setService(ClusterMessageService.class).setRequired(true))
.add(
createServiceDependency().setService(RemotableServiceEndpoint.class)
@@ -110,21 +109,6 @@
.setCallbacks("remoteServiceEndPointAdded",
"remoteServiceEndPointRemoved")
.setRequired(false))
.add(createServiceDependency().setService(LogService.class).setRequired(false)));
-
- // Shell
-
- manager.add(
- createComponent()
- .setImplementation(new ClusterMessageCommand())
- .setInterface(Command.class.getName(), null)
-
.add(createServiceDependency().setService(LogService.class).setRequired(false)));
-
- manager.add(
- createComponent()
- .setImplementation(new DiscoveryListCommand())
- .setInterface(Command.class.getName(), null)
-
.add(createServiceDependency().setService(LogService.class).setRequired(false)));
-
}
@Override
Modified:
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DiscoveryServiceImpl.java
==============================================================================
---
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DiscoveryServiceImpl.java
(original)
+++
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DiscoveryServiceImpl.java
Wed Dec 22 12:22:15 2010
@@ -16,12 +16,15 @@
*/
package org.amdatu.core.fabric.remote.service;
+import java.util.Dictionary;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+import org.amdatu.core.fabric.cluster.ClusterMemberService;
import org.amdatu.core.fabric.cluster.ClusterMessageService;
import org.amdatu.core.fabric.cluster.ClusterTopicListener;
import org.amdatu.core.fabric.remote.DiscoveryService;
@@ -50,6 +53,7 @@
new HashMap<ServiceEndPoint, Component>();
private final ReentrantReadWriteLock m_remoteEndPointComponentsLock = new
ReentrantReadWriteLock();
+ private volatile ClusterMemberService m_clusterMemberService;
private volatile ClusterMessageService m_clusterMessageService;
private volatile DependencyManager m_dependencyManager;
private volatile Component m_component;
@@ -156,11 +160,21 @@
try {
if (m_remoteEndPointComponents.containsKey(serviceEndPoint))
return;
+ Dictionary<String, Object> distributionProps = new
Hashtable<String, Object>();
+
distributionProps.put(ClusterMemberService.CLUSTER_CLUSTERID_PROP,
+ m_clusterMemberService.getClusterId());
+
distributionProps.put(ClusterMemberService.CLUSTER_MEMBERID_PROP,
m_clusterMemberService.getMemberId());
Component serviceComponent =
-
m_dependencyManager.createComponent().setInterface(RemoteServiceEndPoint.class.getName(),
null)
+ m_dependencyManager.createComponent()
+ .setInterface(RemoteServiceEndPoint.class.getName(),
distributionProps)
.setImplementation(new
RemoteServiceEndPointImpl(serviceEndPoint));
serviceComponent.add(m_dependencyManager.createServiceDependency().setService(
- DiscoveryService.class,
m_component.getServiceRegistration().getReference()));
+ DiscoveryService.class,
+ "(&(" + ClusterMemberService.CLUSTER_CLUSTERID_PROP + "="
+ +
m_component.getServiceProperties().get(ClusterMemberService.CLUSTER_CLUSTERID_PROP)
+ ")("
+ + ClusterMemberService.CLUSTER_MEMBERID_PROP + "="
+ +
m_component.getServiceProperties().get(ClusterMemberService.CLUSTER_MEMBERID_PROP)
+ "))")
+ .setRequired(true));
m_dependencyManager.add(serviceComponent);
m_remoteEndPointComponents.put(serviceEndPoint,
serviceComponent);
}
Modified:
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DistributionServiceImpl.java
==============================================================================
---
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DistributionServiceImpl.java
(original)
+++
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/remote/service/DistributionServiceImpl.java
Wed Dec 22 12:22:15 2010
@@ -107,13 +107,21 @@
.log(LogService.LOG_WARNING, "Unsupported ServiceEndPoint
configuration " + serviceEndPoint.toString());
return;
}
- Dictionary<String, Object> distributionProperties = new
Hashtable<String, Object>();
+ Dictionary<String, Object> distributionProps = new Hashtable<String,
Object>();
+ distributionProps.put(ClusterMemberService.CLUSTER_CLUSTERID_PROP,
m_clusterMemberService.getClusterId());
+ distributionProps.put(ClusterMemberService.CLUSTER_MEMBERID_PROP,
m_clusterMemberService.getMemberId());
Component serviceComponent =
m_dependencyManager.createComponent()
- .setInterface(RemotableServiceEndpoint.class.getName(),
distributionProperties)
+ .setInterface(RemotableServiceEndpoint.class.getName(),
distributionProps)
.setImplementation(new
RemotableServiceEndPointImpl(serviceEndPoint));
serviceComponent.add(m_dependencyManager.createServiceDependency().setService(
- DistributionService.class,
m_component.getServiceRegistration().getReference()));
+ DistributionService.class,
+ "(&(" + ClusterMemberService.CLUSTER_CLUSTERID_PROP + "="
+ +
m_component.getServiceProperties().get(ClusterMemberService.CLUSTER_CLUSTERID_PROP)
+ ")("
+ + ClusterMemberService.CLUSTER_MEMBERID_PROP + "="
+ +
m_component.getServiceProperties().get(ClusterMemberService.CLUSTER_MEMBERID_PROP)
+ "))")
+ .setRequired(true));
+
m_serviceEndPointServiceReferenceComponentsLock.writeLock().lock();
try {
if
(!m_serviceEndPointServiceReferenceComponents.containsKey(serviceEndPoint)) {