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