Author: kevan
Date: Thu May 20 19:11:05 2010
New Revision: 946761

URL: http://svn.apache.org/viewvc?rev=946761&view=rev
Log:
OPENEJB-1280 Merge from openejb-3.1.x: 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/trunk/openejb3/   (props changed)
    
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
   (props changed)
    
openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
   (props changed)
    
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
    
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
    
openejb/trunk/openejb3/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint

Propchange: openejb/trunk/openejb3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 20 19:11:05 2010
@@ -1 +1,2 @@
 /openejb/branches/openejb-3.1.1:779593
+/openejb/branches/openejb-3.1.x:945409

Propchange: 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 20 19:11:05 2010
@@ -1 +1,2 @@
 
/openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
+/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409

Propchange: 
openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 20 19:11:05 2010
@@ -1 +1,2 @@
 
/openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
+/openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409

Modified: 
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java?rev=946761&r1=946760&r2=946761&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgent.java
 Thu May 20 19:11:05 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/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java?rev=946761&r1=946760&r2=946761&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java
 Thu May 20 19:11:05 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/trunk/openejb3/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint?rev=946761&r1=946760&r2=946761&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-multicast/src/main/resources/META-INF/org.apache.openejb.server.ServerService/multipoint
 Thu May 20 19:11:05 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