You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/10/12 08:34:34 UTC

svn commit: r1182223 - in /openejb/branches/openejb-3.1.x: ./ container/openejb-core/src/main/java/org/apache/openejb/util/ container/openejb-core/src/test/java/org/apache/openejb/config/ examples/alternate-descriptors/src/main/resources/META-INF/ exam...

Author: dblevins
Date: Wed Oct 12 06:34:33 2011
New Revision: 1182223

URL: http://svn.apache.org/viewvc?rev=1182223&view=rev
Log:
svn merge -r 1182221:1182222 https://svn.apache.org/repos/asf/openejb/trunk/openejb

http://svn.apache.org/viewvc?view=revision&revision=1182222
------------------------------------------------------------------------
r1182222 | dblevins | 2011-10-11 23:32:01 -0700 (Tue, 11 Oct 2011) | 3 lines

OPENEJB-1701: Improved Multipoint and Multicast discovery logging
OPENEJB-1702: Multicast and Multipoint 'heart_rate' property ignored

------------------------------------------------------------------------

Modified:
    openejb/branches/openejb-3.1.x/   (props changed)
    openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
    openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java   (props changed)
    openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml   (props changed)
    openejb/branches/openejb-3.1.x/examples/injection-of-entitymanager/src/main/resources/META-INF/persistence.xml
    openejb/branches/openejb-3.1.x/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryBeanTest.java
    openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java
    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/Tracker.java
    openejb/branches/openejb-3.1.x/server/openejb-multicast/src/test/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgentTest.java

Propchange: openejb/branches/openejb-3.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 12 06:34:33 2011
@@ -1,2 +1,3 @@
 /openejb/branches/openejb-3.1.1:779593
+/openejb/trunk/openejb:1182222
 /openejb/trunk/openejb3:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948243,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172,1029528

Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java?rev=1182223&r1=1182222&r2=1182223&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java Wed Oct 12 06:34:33 2011
@@ -24,7 +24,15 @@ import org.apache.openejb.loader.SystemI
  */
 public class OptionsLog implements Options.Log {
 
-    private final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("options"), OptionsLog.class);
+    private final Logger logger;
+
+    public OptionsLog() {
+        this(Logger.getInstance(LogCategory.OPENEJB.createChild("options"), OptionsLog.class));
+    }
+
+    public OptionsLog(final Logger logger) {
+        this.logger = logger;
+    }
 
     public static void install() {
         SystemInstance.get().getOptions().setLogger(new OptionsLog());

Propchange: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 12 06:34:33 2011
@@ -1,2 +1,3 @@
 /openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
+/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:1182222
 /openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172,1029528

Propchange: openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 12 06:34:33 2011
@@ -1,2 +1,3 @@
 /openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
+/openejb/trunk/openejb/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:1182222
 /openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948243,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1029528

Modified: openejb/branches/openejb-3.1.x/examples/injection-of-entitymanager/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/examples/injection-of-entitymanager/src/main/resources/META-INF/persistence.xml?rev=1182223&r1=1182222&r2=1182223&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/examples/injection-of-entitymanager/src/main/resources/META-INF/persistence.xml (original)
+++ openejb/branches/openejb-3.1.x/examples/injection-of-entitymanager/src/main/resources/META-INF/persistence.xml Wed Oct 12 06:34:33 2011
@@ -22,8 +22,8 @@
   <persistence-unit name="movie-unit">
     <jta-data-source>movieDatabase</jta-data-source>
     <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+    <jar-file>libs/junit-4.1.jar</jar-file>
     <class>org.superbiz.injection.jpa.Movie</class>
-
     <properties>
       <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
     </properties>

Modified: openejb/branches/openejb-3.1.x/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryBeanTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryBeanTest.java?rev=1182223&r1=1182222&r2=1182223&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryBeanTest.java (original)
+++ openejb/branches/openejb-3.1.x/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryBeanTest.java Wed Oct 12 06:34:33 2011
@@ -30,7 +30,8 @@ public class ComponentRegistryBeanTest e
     public void test() throws Exception {
         Properties props = new Properties();
         props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
-
+        props.setProperty("openejb.descriptors.output", "true");
+        
         InitialContext context = new InitialContext(props);
 
         // Both references below will point to the exact same instance

Modified: openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java?rev=1182223&r1=1182222&r2=1182223&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java (original)
+++ openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java Wed Oct 12 06:34:33 2011
@@ -24,6 +24,7 @@ import org.apache.openejb.server.Discove
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.loader.Options;
+import org.apache.openejb.util.OptionsLog;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -45,7 +46,7 @@ import java.util.concurrent.atomic.Atomi
  */
 public class MulticastDiscoveryAgent implements DiscoveryAgent, ServerService, SelfManaging {
 
-    private static final Logger log = Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery"), MulticastDiscoveryAgent.class);
+    private static final Logger log = Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery").createChild("multicast"), MulticastDiscoveryAgent.class);
 
     private AtomicBoolean running = new AtomicBoolean(false);
 
@@ -63,6 +64,8 @@ public class MulticastDiscoveryAgent imp
     public void init(Properties props) {
 
         Options options = new Options(props);
+        options.setLogger(new OptionsLog(log));
+
         host = props.getProperty("bind", host);
         loopbackMode = options.get("loopback_mode", loopbackMode);
         port = options.get("port", port);
@@ -71,6 +74,7 @@ public class MulticastDiscoveryAgent imp
 
         Tracker.Builder builder = new Tracker.Builder();
         builder.setGroup(props.getProperty("group", builder.getGroup()));
+        builder.setHeartRate(heartRate);
         builder.setMaxMissedHeartbeats(options.get("max_missed_heartbeats", builder.getMaxMissedHeartbeats()));
         builder.setMaxReconnectDelay(options.get("max_reconnect_delay", builder.getMaxReconnectDelay()));
         builder.setReconnectDelay(options.get("reconnect_delay", builder.getReconnectDelay()));

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=1182223&r1=1182222&r2=1182223&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 Wed Oct 12 06:34:33 2011
@@ -24,6 +24,7 @@ import org.apache.openejb.server.Discove
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.loader.Options;
+import org.apache.openejb.util.OptionsLog;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -39,7 +40,7 @@ import java.util.concurrent.atomic.Atomi
  */
 public class MultipointDiscoveryAgent implements DiscoveryAgent, ServerService, SelfManaging {
 
-    private static final Logger log = Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery"), MultipointDiscoveryAgent.class);
+    private static final Logger log = Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery").createChild("multipoint"), MultipointDiscoveryAgent.class);
 
     private AtomicBoolean running = new AtomicBoolean(false);
 
@@ -56,6 +57,8 @@ public class MultipointDiscoveryAgent im
     public void init(Properties props) {
 
         Options options = new Options(props);
+        options.setLogger(new OptionsLog(log));
+
         host = props.getProperty("bind", host);
         port = options.get("port", port);
         initialServers = options.get("initialServers", initialServers);
@@ -63,6 +66,7 @@ public class MultipointDiscoveryAgent im
 
 
         Tracker.Builder builder = new Tracker.Builder();
+        builder.setHeartRate(heartRate);
         builder.setGroup(props.getProperty("group", builder.getGroup()));
         builder.setMaxMissedHeartbeats(options.get("max_missed_heartbeats", builder.getMaxMissedHeartbeats()));
         builder.setMaxReconnectDelay(options.get("max_reconnect_delay", builder.getMaxReconnectDelay()));

Modified: openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java?rev=1182223&r1=1182222&r2=1182223&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java (original)
+++ openejb/branches/openejb-3.1.x/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java Wed Oct 12 06:34:33 2011
@@ -37,7 +37,7 @@ import java.io.IOException;
 */
 public class Tracker {
     
-    private static final Logger log = Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery"), Tracker.class);
+    private final Logger log;
     
     private final String group;
     private final String groupPrefix;
@@ -49,7 +49,7 @@ public class Tracker {
     private final long exponentialBackoff;
     private final boolean useExponentialBackOff;
 
-    public Tracker(String group, long heartRate, int maxMissedHeartbeats, long reconnectDelay, long maxReconnectDelay, int maxReconnectAttempts, long exponentialBackoff) {
+    public Tracker(String group, long heartRate, int maxMissedHeartbeats, long reconnectDelay, long maxReconnectDelay, int maxReconnectAttempts, long exponentialBackoff, final Logger log) {
         this.group = group;
         this.groupPrefix = group + ":";
 
@@ -60,6 +60,9 @@ public class Tracker {
         this.maxReconnectAttempts = maxReconnectAttempts;
         this.exponentialBackoff = exponentialBackoff;
         this.useExponentialBackOff = exponentialBackoff > 1;
+        this.log = log;
+
+        this.log.info("Created " + this);
     }
 
     private Map<String, Service> registeredServices = new ConcurrentHashMap<String, Service>();
@@ -135,10 +138,19 @@ public class Tracker {
     }
 
     public void checkServices() {
-        long expireTime = System.currentTimeMillis() - (heartRate * maxMissedHeartbeats);
+        final long threshold = heartRate * maxMissedHeartbeats;
+
+        final long now = System.currentTimeMillis();
+
+        final long expireTime = now - threshold;
+
         for (ServiceVitals serviceVitals : discoveredServices.values()) {
             if (serviceVitals.getLastHeartbeat() < expireTime && !isSelf(serviceVitals.service)) {
 
+                if (log.isDebugEnabled()) {
+                    log.debug("Expired " + serviceVitals.service + String.format(" Timeout{lastSeen=%s, threshold=%s}", serviceVitals.getLastHeartbeat() - now, threshold ));
+                }
+
                 ServiceVitals vitals = discoveredServices.remove(serviceVitals.service.broadcastString);
                 if (vitals != null && !vitals.isDead()) {
                     fireServiceRemovedEvent(vitals.service.uri);
@@ -156,6 +168,10 @@ public class Tracker {
     });
 
     private void fireServiceRemovedEvent(final URI uri) {
+        if (log.isDebugEnabled()) {
+            log.debug(String.format("Removed Service{uri=%s}", uri));
+        }
+
         if (discoveryListener != null) {
             final DiscoveryListener discoveryListener = this.discoveryListener;
 
@@ -173,6 +189,10 @@ public class Tracker {
     }
 
     private void fireServiceAddedEvent(final URI uri) {
+        if (log.isDebugEnabled()) {
+            log.debug(String.format("Added Service{uri=%s}", uri));
+        }
+
         if (discoveryListener != null) {
             final DiscoveryListener discoveryListener = this.discoveryListener;
 
@@ -212,6 +232,14 @@ public class Tracker {
             this.uri = uri;
             this.broadcastString = uriString;
         }
+
+        @Override
+        public String toString() {
+            return "Service{" +
+                    "uri=" + uri +
+                    ", broadcastString='" + broadcastString + '\'' +
+                    '}';
+        }
     }
 
     private class ServiceVitals {
@@ -305,6 +333,16 @@ public class Tracker {
         public boolean isDead() {
             return dead;
         }
+
+        @Override
+        public String toString() {
+            return service + "Vitals{" +
+                    ", lastHeartBeat=" + lastHeartBeat +
+                    ", recoveryTime=" + recoveryTime +
+                    ", failureCount=" + failureCount +
+                    ", dead=" + dead +
+                    '}';
+        }
     }
 
 
@@ -318,6 +356,7 @@ public class Tracker {
         private long maxReconnectDelay = 1000 * 30;
         private long exponentialBackoff = 0;
         private int maxReconnectAttempts = 10; // todo: check this out
+        private Logger logger;
         // ---------------------------------
 
 
@@ -377,9 +416,34 @@ public class Tracker {
             this.maxReconnectDelay = maxReconnectDelay;
         }
 
+        public Logger getLogger() {
+            return logger;
+        }
+
+        public void setLogger(Logger logger) {
+            this.logger = logger;
+        }
+
         public Tracker build() {
-            return new Tracker(group, heartRate, maxMissedHeartbeats, reconnectDelay, maxReconnectDelay, maxReconnectAttempts, exponentialBackoff);
+            logger = Logger.getInstance(LogCategory.OPENEJB_SERVER.createChild("discovery"), Tracker.class);
+            return new Tracker(group, heartRate, maxMissedHeartbeats, reconnectDelay, maxReconnectDelay, maxReconnectAttempts, exponentialBackoff, logger);
         }
     }
 
+    @Override
+    public String toString() {
+        return "Tracker{" +
+                "group='" + group + '\'' +
+                ", groupPrefix='" + groupPrefix + '\'' +
+                ", heartRate=" + heartRate +
+                ", maxMissedHeartbeats=" + maxMissedHeartbeats +
+                ", reconnectDelay=" + reconnectDelay +
+                ", maxReconnectDelay=" + maxReconnectDelay +
+                ", maxReconnectAttempts=" + maxReconnectAttempts +
+                ", exponentialBackoff=" + exponentialBackoff +
+                ", useExponentialBackOff=" + useExponentialBackOff +
+                ", registeredServices=" + registeredServices.size() +
+                ", discoveredServices=" + discoveredServices.size() +
+                '}';
+    }
 }

Modified: openejb/branches/openejb-3.1.x/server/openejb-multicast/src/test/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgentTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-multicast/src/test/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgentTest.java?rev=1182223&r1=1182222&r2=1182223&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/server/openejb-multicast/src/test/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgentTest.java (original)
+++ openejb/branches/openejb-3.1.x/server/openejb-multicast/src/test/java/org/apache/openejb/server/discovery/MultipointDiscoveryAgentTest.java Wed Oct 12 06:34:33 2011
@@ -20,6 +20,8 @@ import junit.framework.TestCase;
 import org.apache.openejb.server.DiscoveryListener;
 import org.apache.openejb.server.DiscoveryRegistry;
 import org.apache.openejb.util.Join;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
 
 import java.net.URI;
 import java.util.ArrayList;
@@ -35,6 +37,7 @@ import java.util.concurrent.TimeUnit;
 public class MultipointDiscoveryAgentTest extends TestCase {
 
     public void test() throws Exception {
+        System.setProperty("log4j.category.OpenEJB.server.discovery", "debug");
 
         final URI testService = new URI("green://localhost:0");
 
@@ -112,6 +115,8 @@ public class MultipointDiscoveryAgentTes
             }
 
             props.put("initialServers", Join.join(",", uris));
+            props.put("max_missed_heartbeats", "2");
+            props.put("heart_rate", "200");
             agent.init(props);
 
             this.registry = new DiscoveryRegistry(agent);