Author: kevan
Date: Mon May 17 22:23:14 2010
New Revision: 945409

URL: http://svn.apache.org/viewvc?rev=945409&view=rev
Log:
OPENEJB-1280 Add support for configuration of a list of (comma delimited) peer 
multipoint servers. Also some cleanup. MultipointServer is now started after we 
create it. And the server socket bind ip address is now configurable.

Modified:
    
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
    
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
    
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint

Modified: 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java?rev=945409&r1=945408&r2=945409&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
 (original)
+++ 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
 Mon May 17 22:23:14 2010
@@ -36,6 +36,7 @@ import java.net.Socket;
 import java.net.SocketTimeoutException;
 import java.net.URI;
 import java.util.Properties;
+import java.util.StringTokenizer;
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -52,6 +53,8 @@ public class MultipointDiscoveryAgent im
     private String host = "127.0.0.1";
     private int port = 4212;
 
+    private String initialServers = "";
+
     private long heartRate = 500;
 
     private Tracker tracker;
@@ -62,6 +65,7 @@ public class MultipointDiscoveryAgent im
         Options options = new Options(props);
         host = props.getProperty("bind", host);
         port = options.get("port", port);
+        initialServers = options.get("initialServers", initialServers);
         heartRate = options.get("heart_rate", heartRate);
 
 
@@ -88,6 +92,10 @@ public class MultipointDiscoveryAgent im
         return port;
     }
 
+    public String getInitialServers() {
+        return initialServers;
+    }
+
     public void setDiscoveryListener(DiscoveryListener listener) {
         this.tracker.setDiscoveryListener(listener);
     }
@@ -116,7 +124,14 @@ public class MultipointDiscoveryAgent im
         try {
             if (running.compareAndSet(false, true)) {
 
-                multipointServer = new MultipointServer(port, tracker);
+                multipointServer = new MultipointServer(host, port, 
tracker).start();
+
+                // Connect the initial set of peer servers
+                StringTokenizer st = new StringTokenizer(initialServers, ",");
+                while (st.hasMoreTokens()) {
+                    
multipointServer.connect(URI.create("conn://"+st.nextToken()));
+                }
+
             }
         } catch (Exception e) {
             throw new ServiceException(e);

Modified: 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java?rev=945409&r1=945408&r2=945409&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
 (original)
+++ 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
 Mon May 17 22:23:14 2010
@@ -50,6 +50,7 @@ import java.util.concurrent.atomic.Atomi
 public class MultipointServer {
     private static final Logger log = 
Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery"), 
MultipointServer.class);
 
+    private final String host;
     private final int port;
     private final Selector selector;
     private final URI me;
@@ -59,17 +60,21 @@ public class MultipointServer {
     private final LinkedList<URI> connect = new LinkedList<URI>();
     private final Map<URI, Session> connections = new HashMap<URI, Session>();
 
-
     public MultipointServer(int port, Tracker tracker) throws IOException {
+        this("localhost", port, tracker);
+    }
+
+    public MultipointServer(String host, int port, Tracker tracker) throws 
IOException {
         if (tracker == null) throw new NullPointerException("tracker cannot be 
null");
+        this.host = host;
         this.port = port;
         this.tracker = tracker;
-        me = URI.create("conn://localhost:" + port);
+        me = URI.create("conn://" + host + ":" + port);
 
         ServerSocketChannel serverChannel = ServerSocketChannel.open();
 
         ServerSocket serverSocket = serverChannel.socket();
-        InetSocketAddress address = new InetSocketAddress(port);
+        InetSocketAddress address = new InetSocketAddress(host,port);
         serverSocket.bind(address);
         serverChannel.configureBlocking(false);
 

Modified: 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint?rev=945409&r1=945408&r2=945409&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint
 (original)
+++ 
openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint
 Mon May 17 22:23:14 2010
@@ -1,4 +1,5 @@
 server      = org.apache.openejb.server.discovery.MultipointDiscoveryAgent
 bind        = 127.0.0.1
 port        = 4212
+initialServers = 
 disabled    = true


Reply via email to