[jboss-cvs] JBossAS SVN: r59642 - trunk/system-jmx/src/main/org/jboss/system/microcontainer.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 15 07:59:03 EST 2007


Author: alesj
Date: 2007-01-15 07:59:00 -0500 (Mon, 15 Jan 2007)
New Revision: 59642

Modified:
   trunk/system-jmx/src/main/org/jboss/system/microcontainer/ServiceControllerContext.java
Log:
adding DispatchContext to ServiceControllerContext

Modified: trunk/system-jmx/src/main/org/jboss/system/microcontainer/ServiceControllerContext.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/microcontainer/ServiceControllerContext.java	2007-01-15 10:30:56 UTC (rev 59641)
+++ trunk/system-jmx/src/main/org/jboss/system/microcontainer/ServiceControllerContext.java	2007-01-15 12:59:00 UTC (rev 59642)
@@ -21,18 +21,8 @@
 */
 package org.jboss.system.microcontainer;
 
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.Iterator;
-
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
 import org.jboss.dependency.plugins.AbstractControllerContext;
-import org.jboss.dependency.spi.Controller;
-import org.jboss.dependency.spi.ControllerMode;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.dependency.spi.*;
 import org.jboss.system.Service;
 import org.jboss.system.ServiceContext;
 import org.jboss.system.ServiceController;
@@ -40,13 +30,20 @@
 import org.jboss.system.metadata.ServiceMetaDataVisitor;
 import org.jboss.system.metadata.ServiceMetaDataVisitorNode;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.Attribute;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Iterator;
+
 /**
  * ServiceControllerContext.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
-public class ServiceControllerContext extends AbstractControllerContext
+public class ServiceControllerContext extends AbstractControllerContext implements DispatchContext
 {
    /** The ObjectName */
    private ObjectName objectName;
@@ -112,6 +109,44 @@
       setMode(ControllerMode.MANUAL);
    }
 
+   private MBeanServer getMBeanServer()
+   {
+      MBeanServer server = serviceController.getMBeanServer();
+      if (server == null)
+      {
+         throw new IllegalStateException("MBeanServer not available.");
+      }
+      return server;
+   }
+
+   public Object get(String name) throws Throwable
+   {
+      return getMBeanServer().getAttribute(objectName, name);
+   }
+
+   public void set(String name, Object value) throws Throwable
+   {
+      Attribute attribute = new Attribute(name, value);
+      getMBeanServer().setAttribute(objectName, attribute);
+   }
+
+   public Object invoke(String name, Object parameters[], String[] signature) throws Throwable
+   {
+      return getMBeanServer().invoke(objectName, name, parameters, signature);
+   }
+
+   public ClassLoader getClassLoader() throws Throwable
+   {
+      if (serviceMetaData != null)
+      {
+         return getMBeanServer().getClassLoader(serviceMetaData.getClassLoaderName());
+      }
+      else
+      {
+         return getMBeanServer().getClassLoaderFor(objectName);
+      }
+   }
+
    /**
     * Get the ObjectName.
     * 




More information about the jboss-cvs-commits mailing list