You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/05/21 11:25:58 UTC
svn commit: r1484712 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
Author: rmannibucau
Date: Tue May 21 09:25:57 2013
New Revision: 1484712
URL: http://svn.apache.org/r1484712
Log:
TOMEE-943 ensuring we use system.properties to check openejb.quartz.use-TCCL property
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1484712&r1=1484711&r2=1484712&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Tue May 21 09:25:57 2013
@@ -147,15 +147,16 @@ public class EjbTimerServiceImpl impleme
}
final Properties properties = new Properties();
- putAll(properties, SystemInstance.get().getProperties());
- putAll(properties, deployment.getModuleContext().getAppContext().getProperties());
- putAll(properties, deployment.getModuleContext().getProperties());
- putAll(properties, deployment.getProperties());
+ int quartzProps = 0;
+ quartzProps += putAll(properties, SystemInstance.get().getProperties());
+ quartzProps += putAll(properties, deployment.getModuleContext().getAppContext().getProperties());
+ quartzProps += putAll(properties, deployment.getModuleContext().getProperties());
+ quartzProps += putAll(properties, deployment.getProperties());
// custom config -> don't use default/global scheduler
// if one day we want to keep a global config for a global scheduler (SystemInstance.get().getProperties()) we'll need to manage resume/pause etc correctly by app
// since we have a scheduler by ejb today in such a case we don't need
- final boolean newInstance = properties.size() > 0;
+ final boolean newInstance = quartzProps > 0;
final SystemInstance systemInstance = SystemInstance.get();
@@ -216,7 +217,9 @@ public class EjbTimerServiceImpl impleme
try {
// start in container context to avoid thread leaks
final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
- if (!"true".equals(deployment.getProperties().getProperty(OPENEJB_QUARTZ_USE_TCCL, "false"))) {
+ if ("true".equalsIgnoreCase(properties.getProperty(OPENEJB_QUARTZ_USE_TCCL, "false"))) {
+ Thread.currentThread().setContextClassLoader(deployment.getClassLoader());
+ } else {
Thread.currentThread().setContextClassLoader(EjbTimerServiceImpl.class.getClassLoader());
}
try {
@@ -251,16 +254,23 @@ public class EjbTimerServiceImpl impleme
return thisScheduler;
}
- private static void putAll(final Properties a, final Properties b) {
+ private static int putAll(final Properties a, final Properties b) {
+ int number = 0;
for (final Map.Entry<Object, Object> entry : b.entrySet()) {
final String key = entry.getKey().toString();
if (key.startsWith("org.quartz.")
|| key.startsWith("openejb.quartz.")
|| DefaultTimerThreadPoolAdapter.OPENEJB_TIMER_POOL_SIZE.equals(key)
|| "org.terracotta.quartz.skipUpdateCheck".equals(key)) {
- a.put(entry.getKey(), entry.getValue());
+ number++;
+ }
+
+ final Object value = entry.getValue();
+ if (String.class.isInstance(value)) {
+ a.put(entry.getKey(), value);
}
}
+ return number;
}
@Override