Author: rmannibucau
Date: Mon Aug 20 20:18:03 2012
New Revision: 1375199

URL: http://svn.apache.org/viewvc?rev=1375199&view=rev
Log:
updating quartz to use new properties config hierarchy

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java?rev=1375199&r1=1375198&r2=1375199&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java
 Mon Aug 20 20:18:03 2012
@@ -39,6 +39,8 @@ public class DefaultTimerThreadPoolAdapt
 
     private static final Logger logger = Logger.getInstance(LogCategory.TIMER, 
"org.apache.openejb.util.resources");
 
+    public static final String OPENEJB_TIMER_POOL_SIZE = 
"openejb.timer.pool.size";
+
     private Executor executor;
 
     private String instanceId;
@@ -64,7 +66,7 @@ public class DefaultTimerThreadPoolAdapt
 
         if (this.executor == null) {
 
-            int size = 
Integer.parseInt(SystemInstance.get().getProperty("openejb.timer.pool.size", 
"3"));
+            int size = 
Integer.parseInt(SystemInstance.get().getProperty(OPENEJB_TIMER_POOL_SIZE, 
"3"));
             if (size < 3) {
                 size = 3;
             }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1375199&r1=1375198&r2=1375199&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
 Mon Aug 20 20:18:03 2012
@@ -64,6 +64,7 @@ public class EjbTimerServiceImpl impleme
     private static final Logger log = Logger.getInstance(LogCategory.TIMER, 
"org.apache.openejb.util.resources");
 
     public static final String QUARTZ_THREAD_POOL_ADAPTER = 
"openejb.org.quartz.threadPool.class";
+    public static final String QUARTZ_MAKE_SCHEDULER_THREAD_DAEMON = 
"org.quartz.scheduler.makeSchedulerThreadDaemon";
 
     public static final String OPENEJB_TIMEOUT_JOB_NAME = 
"OPENEJB_TIMEOUT_JOB";
     public static final String OPENEJB_TIMEOUT_JOB_GROUP_NAME = 
"OPENEJB_TIMEOUT_GROUP";
@@ -129,31 +130,40 @@ public class EjbTimerServiceImpl impleme
         properties.putAll(deployment.getModuleContext().getProperties());
         properties.putAll(deployment.getProperties());
 
-        // TODO just iterate over these properties and look for 
"org.quartz.scheduler*" props
+        boolean newInstance = false;
+        for (String key : properties.stringPropertyNames()) {
+            if (key.startsWith("org.quartz.")) { // custom config -> don't use 
default scheduler
+                newInstance = true;
+                break;
+            }
+        }
 
         final SystemInstance systemInstance = SystemInstance.get();
 
-
         final String defaultThreadPool = 
DefaultTimerThreadPoolAdapter.class.getName();
-        properties.put(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, 
systemInstance.hasProperty(QUARTZ_THREAD_POOL_ADAPTER) ? 
systemInstance.getOptions().get(QUARTZ_THREAD_POOL_ADAPTER, 
SimpleThreadPool.class.getName())
-                : defaultThreadPool);
-        properties.put(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, 
"OpenEJB-TimerService-Scheduler");
-        properties.put("org.quartz.scheduler.makeSchedulerThreadDaemon", 
"true");
-
-        updateProperties(properties, null);
-
-        boolean newInstance = updateProperties(properties, 
deployment.getEjbName() + ".")
-                || updateProperties(properties, deployment.getModuleName() + 
"." + deployment.getEjbName() + ".");
+        if 
(!properties.containsKey(StdSchedulerFactory.PROP_THREAD_POOL_CLASS)) {
+            properties.put(StdSchedulerFactory.PROP_THREAD_POOL_CLASS,
+                systemInstance.hasProperty(QUARTZ_THREAD_POOL_ADAPTER) ?
+                    
systemInstance.getOptions().get(QUARTZ_THREAD_POOL_ADAPTER, 
SimpleThreadPool.class.getName()) : defaultThreadPool);
+        }
+        if 
(!properties.containsKey(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME)) {
+            properties.put(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, 
"OpenEJB-TimerService-Scheduler");
+        }
+        if (!properties.containsKey(QUARTZ_MAKE_SCHEDULER_THREAD_DAEMON)) {
+            properties.put(QUARTZ_MAKE_SCHEDULER_THREAD_DAEMON, "true");
+        }
 
         // adding our custom persister
         if (properties.containsKey("org.quartz.jobStore.class") && 
!properties.containsKey("org.quartz.jobStore.driverDelegateInitString")) {
-            properties.put("org.quartz.jobStore.driverDelegateInitString", 
"triggerPersistenceDelegateClasses=" + 
EJBCronTriggerPersistenceDelegate.class.getName());
+            properties.put("org.quartz.jobStore.driverDelegateInitString",
+                    "triggerPersistenceDelegateClasses=" + 
EJBCronTriggerPersistenceDelegate.class.getName());
         }
 
         if 
(defaultThreadPool.equals(properties.get(StdSchedulerFactory.PROP_THREAD_POOL_CLASS))
                 && properties.containsKey("org.quartz.threadPool.threadCount")
-                & !properties.containsKey("openejb.timer.pool.size")) {
-            log.info("Found property 'org.quartz.threadPool.threadCount' for 
default thread pool, please use 'openejb.timer.pool.size' instead");
+                && 
!properties.containsKey(DefaultTimerThreadPoolAdapter.OPENEJB_TIMER_POOL_SIZE)) 
{
+            log.info("Found property 'org.quartz.threadPool.threadCount' for 
default thread pool, please use '"
+                            + 
DefaultTimerThreadPoolAdapter.OPENEJB_TIMER_POOL_SIZE + "' instead");
         }
 
         // to ensure we can shutdown correctly, default doesn't support such a 
configuration
@@ -191,26 +201,6 @@ public class EjbTimerServiceImpl impleme
         return thisScheduler;
     }
 
-    private static boolean updateProperties(final Properties properties, final 
String prefix) {
-        boolean updated = false;
-        for (String key : 
SystemInstance.get().getProperties().stringPropertyNames()) {
-            if (key.startsWith("org.quartz")) { // global config
-                final String value = 
SystemInstance.get().getOptions().get(key, (String) null);
-                if (value != null) {
-                    properties.setProperty(key, value);
-                    updated = true;
-                }
-            } else if (key.startsWith(prefix + "org.quartz")) {
-                final String value = 
SystemInstance.get().getOptions().get(key.substring(prefix.length()), (String) 
null); // specific config
-                if (value != null) {
-                    properties.setProperty(key, value);
-                    updated = true;
-                }
-            }
-        }
-        return updated;
-    }
-
     public void shutdownMe() {
         // if specific instance
         if (scheduler != null && scheduler != 
SystemInstance.get().getComponent(Scheduler.class)) {


Reply via email to