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