Author: bdekruijff at gmail.com
Date: Fri Dec 17 17:58:03 2010
New Revision: 514

Log:
[sandbox] fabric code improvements

Added:
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/TopicMessageWrapper.java
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/AbstractClusterMemberService.java
      - copied, changed from r512, 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/AbstractClusterMemberService.java
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/ClusterMessageServiceImpl.java
      - copied, changed from r513, 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMessageServiceImpl.java
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/tribes/
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/tribes/ClusterMemberServiceImpl.java
      - copied, changed from r512, 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMemberServiceImpl.java
Removed:
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/AbstractClusterMemberService.java
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMemberServiceImpl.java
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMessageServiceImpl.java
Modified:
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/ClusterMemberImpl.java
   
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/osgi/Activator.java

Modified: 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/ClusterMemberImpl.java
==============================================================================
--- 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/ClusterMemberImpl.java
      (original)
+++ 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/ClusterMemberImpl.java
      Fri Dec 17 17:58:03 2010
@@ -22,14 +22,26 @@
 
     public final String m_id;
 
+    /********************************************************
+     * Constructors
+     ********************************************************/
+
     public ClusterMemberImpl(final String id) {
         m_id = id;
     }
 
+    /********************************************************
+     * ClusterMember
+     ********************************************************/
+
     public String getId() {
         return m_id;
     }
 
+    /********************************************************
+     * Object
+     ********************************************************/
+
     @Override
     public boolean equals(Object obj) {
         return m_id.equals(((ClusterMemberImpl) obj).getId());

Added: 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/TopicMessageWrapper.java
==============================================================================
--- (empty file)
+++ 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/TopicMessageWrapper.java
    Fri Dec 17 17:58:03 2010
@@ -0,0 +1,38 @@
+/*
+    Copyright (C) 2010 Amdatu.org
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.amdatu.core.fabric.cluster.internal;
+
+import java.io.Serializable;
+
+public class TopicMessageWrapper implements Serializable {
+
+    private String m_topic;
+    private Object m_message;
+
+    public TopicMessageWrapper(String topic, Object message) {
+        m_topic = topic;
+        m_message = message;
+    }
+
+    public String getTopic() {
+        return m_topic;
+    }
+
+    public Object getMessage() {
+        return m_message;
+    }
+}

Copied: 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/AbstractClusterMemberService.java
 (from r512, 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/AbstractClusterMemberService.java)
==============================================================================
--- 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/AbstractClusterMemberService.java
  (original)
+++ 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/AbstractClusterMemberService.java
    Fri Dec 17 17:58:03 2010
@@ -14,7 +14,7 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-package org.amdatu.core.fabric.cluster.internal;
+package org.amdatu.core.fabric.cluster.service;
 
 import java.util.Dictionary;
 import java.util.Enumeration;
@@ -34,13 +34,16 @@
 public abstract class AbstractClusterMemberService implements 
ClusterMemberService {
 
     private final Set<ClusterMember> m_clusterMembers = new 
HashSet<ClusterMember>();
-
     private final Set<ClusterMessageListener> m_clusterMessageListeners = new 
HashSet<ClusterMessageListener>();
 
     private final String m_clusterId;
     private final String m_memberId;
     private final Map<String, Object> m_properties;
 
+    /********************************************************
+     * Constructors
+     ********************************************************/
+
     public AbstractClusterMemberService(String clusterId, String memberId, 
Dictionary<String, Object> properties) {
         m_clusterId = clusterId;
         m_memberId = memberId;
@@ -54,9 +57,9 @@
         }
     }
 
-    /*
-     * ClusterMemberService interface
-     */
+    /********************************************************
+     * ClusterMemberService
+     ********************************************************/
 
     public final String getClusterId() {
         return m_clusterId;
@@ -72,8 +75,9 @@
     }
 
     public final ClusterMember[] getClusterMembers() {
-        // TODO defend
-        return m_clusterMembers.toArray(new 
ClusterMember[m_clusterMembers.size()]);
+        synchronized (m_clusterMembers) {
+            return m_clusterMembers.toArray(new 
ClusterMember[m_clusterMembers.size()]);
+        }
     }
 
     public final void broadcast(Object message) {
@@ -94,9 +98,10 @@
         onUnsubscribe(clusterMessageListener);
     }
 
-    /*
-     * SPI
-     */
+    /********************************************************
+     * for implementing concrete classes
+     ********************************************************/
+
     protected final void addClusterMember(ClusterMember clusterMember) {
         synchronized (m_clusterMembers) {
             m_clusterMembers.add(clusterMember);
@@ -110,7 +115,6 @@
     }
 
     protected final void dispatchMessage(Object message) {
-        // TODO async
         synchronized (m_clusterMessageListeners) {
             for (ClusterMessageListener clm : m_clusterMessageListeners) {
                 clm.recieveMessage(message);

Copied: 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/ClusterMessageServiceImpl.java
 (from r513, 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMessageServiceImpl.java)
==============================================================================
--- 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMessageServiceImpl.java
      (original)
+++ 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/ClusterMessageServiceImpl.java
       Fri Dec 17 17:58:03 2010
@@ -14,9 +14,8 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-package org.amdatu.core.fabric.cluster.internal.tribes;
+package org.amdatu.core.fabric.cluster.service;
 
-import java.io.Serializable;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -26,6 +25,7 @@
 import org.amdatu.core.fabric.cluster.ClusterMessageListener;
 import org.amdatu.core.fabric.cluster.ClusterMessageService;
 import org.amdatu.core.fabric.cluster.ClusterTopicListener;
+import org.amdatu.core.fabric.cluster.internal.TopicMessageWrapper;
 
 public class ClusterMessageServiceImpl implements ClusterMessageService, 
ClusterMessageListener {
 
@@ -36,6 +36,14 @@
     private volatile ClusterMemberService m_clusterMemberService;
 
     /********************************************************
+     * Constructors
+     ********************************************************/
+
+    public ClusterMessageServiceImpl() {
+
+    }
+
+    /********************************************************
      * Service lifecycle
      ********************************************************/
 
@@ -97,25 +105,4 @@
             }
         }
     }
-}
-
-class TopicMessageWrapper implements Serializable {
-
-    private static final long serialVersionUID = 5182436896635654588L;
-
-    private String m_topic;
-    private Object m_message;
-
-    public TopicMessageWrapper(String topic, Object message) {
-        m_topic = topic;
-        m_message = message;
-    }
-
-    public String getTopic() {
-        return m_topic;
-    }
-
-    public Object getMessage() {
-        return m_message;
-    }
-}
+}
\ No newline at end of file

Copied: 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/tribes/ClusterMemberServiceImpl.java
 (from r512, 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMemberServiceImpl.java)
==============================================================================
--- 
/sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/internal/tribes/ClusterMemberServiceImpl.java
       (original)
+++ 
sandbox/bdekruijff/fabric/src/main/java/org/amdatu/core/fabric/cluster/service/tribes/ClusterMemberServiceImpl.java
 Fri Dec 17 17:58:03 2010
@@ -14,7 +14,7 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-package org.amdatu.core.fabric.cluster.internal.tribes;
+package org.amdatu.core.fabric.cluster.service.tribes;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -23,8 +23,9 @@
 import java.util.Dictionary;
 import java.util.Properties;
 
-import org.amdatu.core.fabric.cluster.internal.AbstractClusterMemberService;
 import org.amdatu.core.fabric.cluster.internal.ClusterMemberImpl;
+import org.amdatu.core.fabric.cluster.internal.tribes.ChannelCreator;
+import org.amdatu.core.fabric.cluster.service.AbstractClusterMemberService;
 import org.apache.catalina.tribes.Channel;
 import org.apache.catalina.tribes.ChannelException;
 import org.apache.catalina.tribes.ChannelListener;
@@ -41,13 +42,17 @@
 
     private ManagedChannel m_managedChannel;
 
+    /********************************************************
+     * Constructors
+     ********************************************************/
+
     public ClusterMemberServiceImpl(String clusterId, String memberId, 
Dictionary<String, Object> properties) {
         super(clusterId, memberId, properties);
     }
 
-    /*
-     * lifecycle
-     */
+    /********************************************************
+     * Service lifecycle
+     ********************************************************/
 
     public void start() {
         try {
@@ -80,9 +85,9 @@
         }
     }
 
-    /*
-     * ClusterMemberService interface
-     */
+    /********************************************************
+     * ClusterMemberService
+     ********************************************************/
 
     @Override
     public void doBroadcast(Object message) {
@@ -98,9 +103,9 @@
         }
     }
 
-    /*
-     * MembershipListener interface
-     */
+    /********************************************************
+     * MembershipListener
+     ********************************************************/
 
     public void memberAdded(Member member) {
         try {
@@ -124,9 +129,9 @@
         }
     }
 
-    /*
-     * ChannelListener interface
-     */
+    /********************************************************
+     * ChannelListener
+     ********************************************************/
 
     public boolean accept(Serializable message, Member arg1) {
         return true;
@@ -136,9 +141,9 @@
         dispatchMessage(message);
     }
 
-    /*
-     * private methods
-     */
+    /********************************************************
+     * private
+     ********************************************************/
 
     private byte[] getPayload(Properties props) throws IOException {
         ByteArrayOutputStream bout = new ByteArrayOutputStream();

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
  Fri Dec 17 17:58:03 2010
@@ -23,8 +23,8 @@
 
 import org.amdatu.core.fabric.cluster.ClusterMemberService;
 import org.amdatu.core.fabric.cluster.ClusterMessageService;
-import org.amdatu.core.fabric.cluster.internal.tribes.ClusterMemberServiceImpl;
-import 
org.amdatu.core.fabric.cluster.internal.tribes.ClusterMessageServiceImpl;
+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;

Reply via email to