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)) {