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)) {

Reply via email to