Author: rmannibucau
Date: Wed Aug 22 17:18:58 2012
New Revision: 1376148

URL: http://svn.apache.org/viewvc?rev=1376148&view=rev
Log:
TOMEE-399 exposing quartz in JMX

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

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=1376148&r1=1376147&r2=1376148&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
 Wed Aug 22 17:18:58 2012
@@ -24,6 +24,7 @@ import org.apache.openejb.RpcContainer;
 import org.apache.openejb.core.BaseContext;
 import org.apache.openejb.core.transaction.TransactionType;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.monitoring.LocalMBeanServer;
 import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
@@ -64,6 +65,7 @@ public class EjbTimerServiceImpl impleme
     private static final long serialVersionUID = 1L;
     private static final Logger log = Logger.getInstance(LogCategory.TIMER, 
"org.apache.openejb.util.resources");
 
+    public static final String QUARTZ_JMX = "org.quartz.scheduler.jmx.export";
     public static final String QUARTZ_MAKE_SCHEDULER_THREAD_DAEMON = 
"org.quartz.scheduler.makeSchedulerThreadDaemon";
 
     public static final String OPENEJB_TIMEOUT_JOB_NAME = 
"OPENEJB_TIMEOUT_JOB";
@@ -136,7 +138,13 @@ public class EjbTimerServiceImpl impleme
         putAll(properties, deployment.getProperties());
 
         // custom config -> don't use default scheduler
-        boolean newInstance = properties.size() > 0;
+        boolean newInstance = false;
+        for (String key : properties.stringPropertyNames()) {
+            if (key.startsWith("org.quartz.")) {
+                newInstance = true;
+                break;
+            }
+        }
 
         final SystemInstance systemInstance = SystemInstance.get();
 
@@ -150,6 +158,16 @@ public class EjbTimerServiceImpl impleme
         if (!properties.containsKey(QUARTZ_MAKE_SCHEDULER_THREAD_DAEMON)) {
             properties.put(QUARTZ_MAKE_SCHEDULER_THREAD_DAEMON, "true");
         }
+        if (!properties.containsKey(QUARTZ_JMX) && 
LocalMBeanServer.isJMXActive()) {
+            properties.put(QUARTZ_JMX, "true");
+        }
+        if 
(!properties.containsKey(StdSchedulerFactory.PROP_SCHED_INSTANCE_ID)) {
+            if (!newInstance) {
+                
properties.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_ID, "OpenEJB");
+            } else {
+                
properties.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_ID, 
deployment.getDeploymentID().toString());
+            }
+        }
 
         // adding our custom persister
         if (properties.containsKey("org.quartz.jobStore.class") && 
!properties.containsKey("org.quartz.jobStore.driverDelegateInitString")) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/monitoring/LocalMBeanServer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/monitoring/LocalMBeanServer.java?rev=1376148&r1=1376147&r2=1376148&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/monitoring/LocalMBeanServer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/monitoring/LocalMBeanServer.java
 Wed Aug 22 17:18:58 2012
@@ -19,7 +19,26 @@ package org.apache.openejb.monitoring;
 
 import org.apache.openejb.loader.SystemInstance;
 
-import javax.management. *;
+import javax.management.Attribute;
+import javax.management.AttributeList;
+import javax.management.AttributeNotFoundException;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.IntrospectionException;
+import javax.management.InvalidAttributeValueException;
+import javax.management.ListenerNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.NotCompliantMBeanException;
+import javax.management.NotificationFilter;
+import javax.management.NotificationListener;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import javax.management.OperationsException;
+import javax.management.QueryExp;
+import javax.management.ReflectionException;
 import javax.management.loading.ClassLoaderRepository;
 import java.io.ObjectInputStream;
 import java.lang.management.ManagementFactory;
@@ -38,7 +57,7 @@ public class LocalMBeanServer implements
         return INSTANCE;
     }
 
-    private static boolean isJMXActive() {
+    public static boolean isJMXActive() {
         return SystemInstance.get().getOptions().get(OPENEJB_JMX_ACTIVE, true);
     }
 


Reply via email to