Author: dblevins
Date: Wed Sep 10 11:29:30 2008
New Revision: 693920

URL: http://svn.apache.org/viewvc?rev=693920&view=rev
Log:
Small tweaks. Logging.
Allow DiscoveryRegistry to have several DiscoveryAgents registered

Modified:
    openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
    
openejb/trunk/openejb3/assembly/openejb-standalone/src/main/resources/openejb
    
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java
    
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
    
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java
    
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java

Modified: openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml?rev=693920&r1=693919&r2=693920&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml Wed Sep 10 
11:29:30 2008
@@ -165,6 +165,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-multicast</artifactId>
+      <version>${version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-hsql</artifactId>
       <version>${version}</version>
       <optional>true</optional>

Modified: 
openejb/trunk/openejb3/assembly/openejb-standalone/src/main/resources/openejb
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-standalone/src/main/resources/openejb?rev=693920&r1=693919&r2=693920&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-standalone/src/main/resources/openejb 
(original)
+++ 
openejb/trunk/openejb3/assembly/openejb-standalone/src/main/resources/openejb 
Wed Sep 10 11:29:30 2008
@@ -79,5 +79,7 @@
 OPENEJB_CORE_JAR="$OPENEJB_HOME/lib/openejb-core-${version}.jar"
 OPENEJB_JAVAAGENT_JAR="$OPENEJB_HOME/lib/openejb-javaagent-${version}.jar"
 
+## Uncomment for easy debug setup
+# OPENEJB_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
 
 java $OPENEJB_OPTS "-javaagent:$OPENEJB_JAVAAGENT_JAR" -jar 
"$OPENEJB_CORE_JAR" "$@"

Modified: 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java?rev=693920&r1=693919&r2=693920&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java
 Wed Sep 10 11:29:30 2008
@@ -23,6 +23,7 @@
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Exceptions;
+import org.apache.openejb.util.Join;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -67,6 +68,14 @@
         ClusterMetaData currentClusterMetaData = data.current();
 
         if (req.getClusterMetaDataVersion() < 
currentClusterMetaData.getVersion()){
+            if (logger.isDebugEnabled()) {
+                URI[] locations = currentClusterMetaData.getLocations();
+                if (locations.length < 10) {
+                    logger.debug("Sending client updated cluster locations: [" 
+ Join.join(", ", locations) + "]");
+                } else {
+                    logger.debug("Sending client updated cluster locations: " 
+ locations.length + " locations total");
+                }
+            }
             res.setUpdatedMetaData(currentClusterMetaData);
         } else {
             res.setCurrent();
@@ -98,6 +107,7 @@
             URI service = unwrap(type);
 
             if ("ejb".equals(type.getScheme())) {
+                logger.info("Peer discovered: " + service.toString());
                 data.add(service);
             }
         } catch (URISyntaxException e) {
@@ -116,6 +126,7 @@
             URI service = unwrap(type);
 
             if ("ejb".equals(type.getScheme())) {
+                logger.info("Peer removed: " + service.toString());
                 data.remove(service);
             }
         } catch (URISyntaxException e) {

Modified: 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java?rev=693920&r1=693919&r2=693920&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
 Wed Sep 10 11:29:30 2008
@@ -190,6 +190,10 @@
                         // Socket closed.
                         break;
                     }
+                    if (i == -1){
+                        // client hung up
+                        break;
+                    }
                     KeepAliveStyle style = KeepAliveStyle.values()[i];
 
                     try {

Modified: 
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java?rev=693920&r1=693919&r2=693920&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java
 Wed Sep 10 11:29:30 2008
@@ -38,9 +38,10 @@
  */
 public class DiscoveryRegistry implements DiscoveryListener, DiscoveryAgent {
 
-    private final DiscoveryAgent agent;
+    private final List<DiscoveryAgent> agents = new 
ArrayList<DiscoveryAgent>();
     private final List<DiscoveryListener> listeners = new 
ArrayList<DiscoveryListener>();
     private final Map<String, URI> services = new ConcurrentHashMap<String, 
URI>();
+    private final Map<String, URI> registered = new ConcurrentHashMap<String, 
URI>();
 
     private final Executor executor = new ThreadPoolExecutor(1, 10, 30, 
TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new ThreadFactory() {
         public Thread newThread(Runnable runable) {
@@ -50,11 +51,26 @@
         }
     });
 
+    public DiscoveryRegistry() {
+        SystemInstance.get().setComponent(DiscoveryRegistry.class, this);
+        SystemInstance.get().setComponent(DiscoveryAgent.class, this);
+    }
+
     public DiscoveryRegistry(DiscoveryAgent agent) {
-        this.agent = agent;
-        agent.setDiscoveryListener(this);
         SystemInstance.get().setComponent(DiscoveryRegistry.class, this);
         SystemInstance.get().setComponent(DiscoveryAgent.class, this);
+        addDiscoveryAgent(agent);
+    }
+
+    public void addDiscoveryAgent(DiscoveryAgent agent) {
+        agents.add(agent);
+        agent.setDiscoveryListener(this);
+        for (URI uri : registered.values()) {
+            try {
+                agent.registerService(uri);
+            } catch (IOException e) {
+            }
+        }
     }
 
     public Set<URI> getServices() {
@@ -62,15 +78,24 @@
     }
 
     public void registerService(URI serviceUri) throws IOException {
-        agent.registerService(serviceUri);
+        registered.put(serviceUri.toString(), serviceUri);
+        for (DiscoveryAgent agent : agents) {
+            agent.registerService(serviceUri);
+        }
     }
 
     public void reportFailed(URI serviceUri) throws IOException {
-        agent.reportFailed(serviceUri);
+        registered.remove(serviceUri.toString());
+        for (DiscoveryAgent agent : agents) {
+            agent.reportFailed(serviceUri);
+        }
     }
 
     public void unregisterService(URI serviceUri) throws IOException {
-        agent.unregisterService(serviceUri);
+        registered.remove(serviceUri.toString());
+        for (DiscoveryAgent agent : agents) {
+            agent.unregisterService(serviceUri);
+        }
     }
 
     public void setDiscoveryListener(DiscoveryListener listener) {

Modified: 
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java?rev=693920&r1=693919&r2=693920&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
 Wed Sep 10 11:29:30 2008
@@ -27,7 +27,6 @@
 import org.apache.openejb.finder.ResourceFinder;
 import org.apache.xbean.recipe.ObjectRecipe;
 import org.apache.xbean.recipe.Option;
-import org.apache.xbean.recipe.MissingFactoryMethodException;
 
 import javax.naming.NamingException;
 import javax.naming.Binding;
@@ -43,9 +42,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import java.util.Set;
-import java.util.LinkedHashMap;
-import java.util.Collections;
 
 /**
  * @version $Rev$ $Date$
@@ -144,6 +140,9 @@
         } catch (Throwable e) {
         }
 
+        DiscoveryRegistry registry = new DiscoveryRegistry();
+        SystemInstance.get().setComponent(DiscoveryRegistry.class, registry);
+
         ServiceFinder serviceFinder = new ServiceFinder("META-INF/");
 
         Map<String, Properties> availableServices = 
serviceFinder.mapAvailableServices(ServerService.class);
@@ -203,8 +202,7 @@
 
                     if (service instanceof DiscoveryAgent){
                         DiscoveryAgent agent = (DiscoveryAgent) service;
-                        DiscoveryRegistry registry = new 
DiscoveryRegistry(agent);
-                        
SystemInstance.get().setComponent(DiscoveryRegistry.class, registry);
+                        registry.addDiscoveryAgent(agent);
                     }
 
                     if (!(service instanceof SelfManaging)) {


Reply via email to