@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2008 the original author or authors .
* Copyright 2002 - 201 0 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -17,7 +17,6 @@
@@ -17,7 +17,6 @@
package org.springframework.jca.work.jboss ;
import java.lang.reflect.Method ;
import javax.management.MBeanServerConnection ;
import javax.management.MBeanServerInvocationHandler ;
import javax.management.ObjectName ;
@ -37,23 +36,33 @@ public abstract class JBossWorkManagerUtils {
@@ -37,23 +36,33 @@ public abstract class JBossWorkManagerUtils {
private static final String MBEAN_SERVER_CONNECTION_JNDI_NAME = "jmx/invoker/RMIAdaptor" ;
private static final String WORK_MANAGER_OBJECT _NAME = "jboss.jca:service=WorkManager" ;
private static final String DEFAULT_WORK_MANAGER_MBEAN _NAME = "jboss.jca:service=WorkManager" ;
/ * *
* Obtain the default JBoss JCA WorkManager through a JMX lookup
* for the JBossWorkManagerMBean .
* for the default JBossWorkManagerMBean .
* @see org . jboss . resource . work . JBossWorkManagerMBean
* /
public static WorkManager getWorkManager ( ) {
return getWorkManager ( DEFAULT_WORK_MANAGER_MBEAN_NAME ) ;
}
/ * *
* Obtain the default JBoss JCA WorkManager through a JMX lookup
* for the JBossWorkManagerMBean .
* @param workManagerObjectName the JMX object name to use
* @see org . jboss . resource . work . JBossWorkManagerMBean
* /
public static WorkManager getWorkManager ( String mbeanName ) {
try {
Class mbeanClass = JBossWorkManagerUtils . class . getClassLoader ( ) . loadClass ( JBOSS_WORK_MANAGER_MBEAN_CLASS_NAME ) ;
Class < ? > mbeanClass = JBossWorkManagerUtils . class . getClassLoader ( ) . loadClass ( JBOSS_WORK_MANAGER_MBEAN_CLASS_NAME ) ;
InitialContext jndiContext = new InitialContext ( ) ;
MBeanServerConnection mconn = ( MBeanServerConnection ) jndiContext . lookup ( MBEAN_SERVER_CONNECTION_JNDI_NAME ) ;
ObjectName objectName = ObjectName . getInstance ( WORK_MANAGER_OBJECT_NAME ) ;
ObjectName objectName = ObjectName . getInstance ( mbeanName ) ;
Object workManagerMBean = MBeanServerInvocationHandler . newProxyInstance ( mconn , objectName , mbeanClass , false ) ;
Method getInstanceMethod = workManagerMBean . getClass ( ) . getMethod ( "getInstance" , new Class [ 0 ] ) ;
return ( WorkManager ) getInstanceMethod . invoke ( workManagerMBean , new Object [ 0 ] ) ;
Method getInstanceMethod = workManagerMBean . getClass ( ) . getMethod ( "getInstance" ) ;
return ( WorkManager ) getInstanceMethod . invoke ( workManagerMBean ) ;
}
catch ( Exception ex ) {
throw new IllegalStateException (