User: juhalindfors
Date: 02/01/12 12:10:53
Modified: src/main/org/jboss/mx/server MBeanInvoker.java
MBeanServerImpl.java StandardMBeanInvoker.java
Log:
Revision Changes Path
1.3 +7 -3 jmx/src/main/org/jboss/mx/server/MBeanInvoker.java
Index: MBeanInvoker.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/org/jboss/mx/server/MBeanInvoker.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MBeanInvoker.java 2001/12/15 01:12:38 1.2
+++ MBeanInvoker.java 2002/01/12 20:10:53 1.3
@@ -42,18 +42,22 @@
*
*
* @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>.
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*
*/
public abstract class MBeanInvoker
implements DynamicMBean
{
-
// Attributes ----------------------------------------------------
protected Interceptor stack = null;
+ protected Object resource = null;
// Public --------------------------------------------------------
-
+ public Object getResource()
+ {
+ return resource;
+ }
+
// DynamicMBean implementation -----------------------------------
public Object invoke(String operationName, Object[] args, String[] signature)
throws MBeanException, ReflectionException
{
1.7 +37 -28 jmx/src/main/org/jboss/mx/server/MBeanServerImpl.java
Index: MBeanServerImpl.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/org/jboss/mx/server/MBeanServerImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MBeanServerImpl.java 2002/01/03 04:00:53 1.6
+++ MBeanServerImpl.java 2002/01/12 20:10:53 1.7
@@ -1,7 +1,9 @@
/*
- * LGPL
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
*/
-
package org.jboss.mx.server;
import javax.management.InstanceNotFoundException;
@@ -47,6 +49,14 @@
import org.jboss.mx.server.registry.MBeanRegistry;
import org.jboss.mx.server.registry.MBeanEntry;
+
+/**
+ *
+ * @see javax.management.MBeanServer
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>.
+ * @version $Revision: 1.7 $
+ */
public class MBeanServerImpl implements MBeanServer
{
public final static String MBEAN_SERVER_DELEGATE =
"JMImplementation:type=MBeanServerDelegate";
@@ -114,7 +124,7 @@
{
try
{
- ClassLoader loader = (ClassLoader)registry.get(loaderName).getInstance();
+ ClassLoader loader =
(ClassLoader)registry.get(loaderName).getResourceInstance();
if (loader == null)
loader = this.getClass().getClassLoader();
@@ -195,7 +205,7 @@
{
try
{
- ClassLoader cl = (ClassLoader)registry.get(loaderName).getInstance();
+ ClassLoader cl =
(ClassLoader)registry.get(loaderName).getResourceInstance();
if (cl == null)
cl = this.getClass().getClassLoader();
@@ -280,10 +290,6 @@
public ObjectInstance registerMBean(Object object, ObjectName name)
throws InstanceAlreadyExistsException, MBeanRegistrationException,
NotCompliantMBeanException
{
-
- if (isRegistered(name))
- throw new InstanceAlreadyExistsException("MBean " + name + " already
registered.");
-
MBeanRegistration registrationInterface = null;
MBeanEntry entry = null;
boolean registrationDone = true;
@@ -297,10 +303,10 @@
if (object instanceof MBeanRegistration)
{
- MBeanRegistration reg = (MBeanRegistration)object;
+ registrationInterface = (MBeanRegistration)object;
try
{
- ObjectName mbeanName = reg.preRegister(this, name);
+ ObjectName mbeanName = registrationInterface.preRegister(this, name);
if (name == null)
name = mbeanName;
}
@@ -310,11 +316,14 @@
}
}
- if (name == null)
- throw new RuntimeOperationsException(new NullPointerException("null object
name"));
-
if (registrationDone)
{
+ if (isRegistered(name))
+ {
+ registrationInterface.postRegister(new Boolean(false));
+ throw new InstanceAlreadyExistsException("MBean " + name + " already
registered.");
+ }
+
if (getMBeanType(object) == STANDARD_MBEAN)
{
try
@@ -326,8 +335,9 @@
throw new MBeanRegistrationException(e.getTargetException(),
"Registration of MBean '" + name + "' failed: " + e.getTargetException().toString());
}
}
+
else if (object instanceof DynamicMBean)
- entry = new MBeanEntry(name, object);
+ entry = new MBeanEntry(name, (DynamicMBean)object);
else
throw new NotCompliantMBeanException(object + " is not compliant MBean
(does not implement Standard or Dynamic MBean interface).");
@@ -348,17 +358,18 @@
registrationInterface.postRegister(new Boolean(registrationDone));
- return (registrationDone) ? new ObjectInstance(name, entry.getClassName())
+ return (registrationDone)
+ ? new ObjectInstance(name, entry.getResourceClassName())
: null;
}
public void unregisterMBean(ObjectName name) throws InstanceNotFoundException,
MBeanRegistrationException
{
- Object mbean = registry.get(name).getInstance();
+ // FIXME: security for unregister (mbean delegate)
+ Object mbean = registry.get(name).getResourceInstance();
MBeanRegistration registrationInterface = null;
boolean unregisterSuccessful = true;
- // FIXME: need to fix this for standard mbean
if (mbean instanceof MBeanRegistration)
{
registrationInterface = (MBeanRegistration)mbean;
@@ -394,8 +405,7 @@
if (!isRegistered(name))
throw new InstanceNotFoundException(name + " not registered.");
- // FIXME: check for std
- return new ObjectInstance(name, registry.get(name).getClassName());
+ return new ObjectInstance(name, registry.get(name).getResourceClassName());
}
public java.util.Set queryMBeans(ObjectName name, QueryExp query)
@@ -463,10 +473,9 @@
{
// FIXME: need to set source on outgoing notifications
- // FIXME: standard's instance
try
{
- NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getInstance();
+ NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getResourceInstance();
broadcaster.addNotificationListener(listener, filter, handback);
}
catch (ClassCastException e)
@@ -480,8 +489,8 @@
{
try
{
- NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getInstance();
-
broadcaster.addNotificationListener((NotificationListener)registry.get(listener).getInstance(),
filter, handback);
+ NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getResourceInstance();
+
broadcaster.addNotificationListener((NotificationListener)registry.get(listener).getResourceInstance(),
filter, handback);
}
catch (ClassCastException e)
{
@@ -494,7 +503,7 @@
{
try
{
- NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getInstance();
+ NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getResourceInstance();
broadcaster.removeNotificationListener(listener);
}
catch (ClassCastException e)
@@ -508,8 +517,8 @@
{
try
{
- NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getInstance();
-
broadcaster.removeNotificationListener((NotificationListener)registry.get(listener).getInstance());
+ NotificationBroadcaster broadcaster =
(NotificationBroadcaster)registry.get(name).getResourceInstance();
+
broadcaster.removeNotificationListener((NotificationListener)registry.get(listener).getResourceInstance());
}
catch (ClassCastException e)
{
@@ -531,7 +540,7 @@
{
try
{
- ClassLoader cl =
registry.get(name).getInstance().getClass().getClassLoader();
+ ClassLoader cl =
registry.get(name).getResourceInstance().getClass().getClassLoader();
return new ObjectInputStreamWithClassLoader(new
ByteArrayInputStream(data), cl);
}
catch (IOException e)
@@ -563,7 +572,7 @@
{
try
{
- ClassLoader cl = (ClassLoader)registry.get(loaderName).getInstance();
+ ClassLoader cl =
(ClassLoader)registry.get(loaderName).getResourceInstance();
return new ObjectInputStreamWithClassLoader(new
ByteArrayInputStream(data), cl);
}
catch (IOException e)
1.2 +2 -3 jmx/src/main/org/jboss/mx/server/StandardMBeanInvoker.java
Index: StandardMBeanInvoker.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/org/jboss/mx/server/StandardMBeanInvoker.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StandardMBeanInvoker.java 2001/12/12 23:53:23 1.1
+++ StandardMBeanInvoker.java 2002/01/12 20:10:53 1.2
@@ -43,7 +43,7 @@
* @see org.jboss.mx.interceptor.StandardMBeanInterceptor
*
* @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*
*/
public class StandardMBeanInvoker
@@ -52,12 +52,11 @@
// Attributes ----------------------------------------------------
private MBeanInfo info = null;
- private Object resource = null;
// Constructors --------------------------------------------------
public StandardMBeanInvoker(Object resource) throws NotCompliantMBeanException,
ReflectionException
{
- this.resource = resource;
+ super.resource = resource;
this.info = new StandardMetaData(resource).build();
Interceptor security = new SecurityInterceptor();
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development