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