[jboss-cvs] JBossAS SVN: r76027 - in projects/demos/trunk: jmx/src/main and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jul 20 09:50:29 EDT 2008


Author: alesj
Date: 2008-07-20 09:50:28 -0400 (Sun, 20 Jul 2008)
New Revision: 76027

Added:
   projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JBossJMXKernel.java
   projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojo.java
   projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojoMBean.java
Modified:
   projects/demos/trunk/bootstrap/src/main/log4j.properties
   projects/demos/trunk/jmx/src/main/log4j.properties
   projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JMXKernel.java
   projects/demos/trunk/jmx/src/resources/META-INF/system-jmx-beans.xml
   projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/Pojo.java
   projects/demos/trunk/models/src/resources/META-INF/jmx-beans.xml
   projects/demos/trunk/models/src/resources/META-INF/mbeans-service.xml
Log:
Fix jmx usage.

Modified: projects/demos/trunk/bootstrap/src/main/log4j.properties
===================================================================
--- projects/demos/trunk/bootstrap/src/main/log4j.properties	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/bootstrap/src/main/log4j.properties	2008-07-20 13:50:28 UTC (rev 76027)
@@ -1,4 +1,4 @@
-log4j.rootLogger=INFO, stdout
+log4j.rootLogger=DEBUG, stdout
 
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

Modified: projects/demos/trunk/jmx/src/main/log4j.properties
===================================================================
--- projects/demos/trunk/jmx/src/main/log4j.properties	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/jmx/src/main/log4j.properties	2008-07-20 13:50:28 UTC (rev 76027)
@@ -1,4 +1,4 @@
-log4j.rootLogger=INFO, stdout
+log4j.rootLogger=DEBUG, stdout
 
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

Copied: projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JBossJMXKernel.java (from rev 75793, projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JMXKernel.java)
===================================================================
--- projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JBossJMXKernel.java	                        (rev 0)
+++ projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JBossJMXKernel.java	2008-07-20 13:50:28 UTC (rev 76027)
@@ -0,0 +1,55 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.demos.system.jmx;
+
+import org.jboss.beans.metadata.api.annotations.Constructor;
+import org.jboss.beans.metadata.api.annotations.Inject;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class JBossJMXKernel extends JMXKernel
+{
+   private static final String MBEAN_SERVER_BUILDER_CLASS_PROPERTY = "javax.management.builder.initial";
+   private static final String DEFAULT_MBEAN_SERVER_BUILDER_CLASS = "org.jboss.mx.server.MBeanServerBuilderImpl";
+
+   @Constructor
+   public JBossJMXKernel(@Inject(bean = KernelConstants.KERNEL_NAME) Kernel kernel, @Inject ClassLoaderSystem system)
+   {
+      super(kernel, system);
+   }
+
+   protected void addProperties()
+   {
+      System.setProperty(MBEAN_SERVER_BUILDER_CLASS_PROPERTY, DEFAULT_MBEAN_SERVER_BUILDER_CLASS);
+      super.addProperties();
+   }
+
+   protected void removeProperties()
+   {
+      System.clearProperty(MBEAN_SERVER_BUILDER_CLASS_PROPERTY);
+      super.removeProperties();
+   }
+}
\ No newline at end of file

Modified: projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JMXKernel.java
===================================================================
--- projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JMXKernel.java	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/jmx/src/main/org/jboss/demos/system/jmx/JMXKernel.java	2008-07-20 13:50:28 UTC (rev 76027)
@@ -21,11 +21,15 @@
 */
 package org.jboss.demos.system.jmx;
 
+import java.util.Properties;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
 
 import org.jboss.beans.metadata.api.annotations.Constructor;
 import org.jboss.beans.metadata.api.annotations.Inject;
+import org.jboss.classloader.spi.ClassLoaderSystem;
 import org.jboss.kernel.Kernel;
 import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
 import org.jboss.system.ServiceController;
@@ -35,19 +39,54 @@
  */
 public class JMXKernel
 {
+   private static final ObjectName CLASSLOADER_SYSTEM_OBJECT_NAME;
+
    private Kernel kernel;
+   private ClassLoaderSystem system;
+
+   private Properties properties;
    private MBeanServer mbeanServer;
    private boolean createdMBeanServer;
    private ServiceController serviceController;
 
+   static
+   {
+      try
+      {
+         CLASSLOADER_SYSTEM_OBJECT_NAME = new ObjectName("demos:type=ClassLoaderSystem");
+      }
+      catch (MalformedObjectNameException e)
+      {
+         throw new RuntimeException("Unexpected error", e);
+      }
+   }
+
    @Constructor
-   public JMXKernel(@Inject(bean = KernelConstants.KERNEL_NAME) Kernel kernel)
+   public JMXKernel(@Inject(bean = KernelConstants.KERNEL_NAME) Kernel kernel, @Inject ClassLoaderSystem system)
    {
       this.kernel = kernel;
+      this.system = system;
    }
 
+   protected void addProperties()
+   {
+      if (properties != null)
+         System.setProperties(properties);
+   }
+
+   protected void removeProperties()
+   {
+      if (properties != null)
+      {
+         for (Object key : properties.keySet())
+            System.clearProperty(key.toString());
+      }
+   }
+
    public void create()
    {
+      addProperties();
+
       if (mbeanServer == null)
       {
          mbeanServer = MBeanServerFactory.createMBeanServer("jboss");
@@ -55,24 +94,35 @@
       }
    }
 
-   public void start()
+   public void start() throws Throwable
    {
+      mbeanServer.registerMBean(system, CLASSLOADER_SYSTEM_OBJECT_NAME);
+
       serviceController = new ServiceController();
       serviceController.setKernel(kernel);
       serviceController.setMBeanServer(mbeanServer);
    }
 
-   public void stop()
+   public void stop() throws Throwable
    {
       serviceController.shutdown();
+
+      mbeanServer.unregisterMBean(CLASSLOADER_SYSTEM_OBJECT_NAME);
    }
 
    public void destroy()
    {
       if (createdMBeanServer)
          MBeanServerFactory.releaseMBeanServer(mbeanServer);
+
+      removeProperties();
    }
 
+   public void setProperties(Properties properties)
+   {
+      this.properties = properties;
+   }
+
    public void setMbeanServer(MBeanServer mbeanServer)
    {
       this.mbeanServer = mbeanServer;

Modified: projects/demos/trunk/jmx/src/resources/META-INF/system-jmx-beans.xml
===================================================================
--- projects/demos/trunk/jmx/src/resources/META-INF/system-jmx-beans.xml	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/jmx/src/resources/META-INF/system-jmx-beans.xml	2008-07-20 13:50:28 UTC (rev 76027)
@@ -2,7 +2,7 @@
 
   <!-- JMX Deployment -->
 
-  <bean name="JMXKernel" class="org.jboss.demos.system.jmx.JMXKernel"/>
+  <bean name="JMXKernel" class="org.jboss.demos.system.jmx.JBossJMXKernel"/>
 
   <bean name="ServiceMetaDataICF" class="org.jboss.system.deployers.managed.ServiceMetaDataICF">
      <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>

Copied: projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojo.java (from rev 75793, projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/Pojo.java)
===================================================================
--- projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojo.java	                        (rev 0)
+++ projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojo.java	2008-07-20 13:50:28 UTC (rev 76027)
@@ -0,0 +1,45 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.demos.models.jmx;
+
+import org.jboss.aop.microcontainer.aspects.jmx.JMX;
+import org.jboss.demos.models.AbstractPojo;
+import org.jboss.demos.models.IPojo;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+ at JMX(exposedInterface = PojoMBean.class, registerDirectly = true)
+public class AtJmxPojo extends AbstractPojo implements AtJmxPojoMBean
+{
+   private IPojo otherPojo;
+
+   public IPojo getOtherPojo()
+   {
+      return otherPojo;
+   }
+
+   public void setOtherPojo(IPojo otherPojo)
+   {
+      this.otherPojo = otherPojo;
+   }
+}
\ No newline at end of file

Copied: projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojoMBean.java (from rev 75793, projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/PojoMBean.java)
===================================================================
--- projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojoMBean.java	                        (rev 0)
+++ projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/AtJmxPojoMBean.java	2008-07-20 13:50:28 UTC (rev 76027)
@@ -0,0 +1,29 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.demos.models.jmx;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface AtJmxPojoMBean extends PojoMBean
+{
+}
\ No newline at end of file

Modified: projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/Pojo.java
===================================================================
--- projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/Pojo.java	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/models/src/main/org/jboss/demos/models/jmx/Pojo.java	2008-07-20 13:50:28 UTC (rev 76027)
@@ -21,14 +21,12 @@
 */
 package org.jboss.demos.models.jmx;
 
-import org.jboss.aop.microcontainer.aspects.jmx.JMX;
 import org.jboss.demos.models.AbstractPojo;
 import org.jboss.demos.models.IPojo;
 
 /**
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
- at JMX(exposedInterface = PojoMBean.class, registerDirectly = true)
 public class Pojo extends AbstractPojo implements PojoMBean
 {
    private IPojo otherPojo;

Modified: projects/demos/trunk/models/src/resources/META-INF/jmx-beans.xml
===================================================================
--- projects/demos/trunk/models/src/resources/META-INF/jmx-beans.xml	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/models/src/resources/META-INF/jmx-beans.xml	2008-07-20 13:50:28 UTC (rev 76027)
@@ -1,7 +1,6 @@
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
-<!--
-  <bean name="AnnotatedJMXPojo" class="org.jboss.demos.models.jmx.Pojo"/>
+  <bean name="AnnotatedJMXPojo" class="org.jboss.demos.models.jmx.AtJmxPojo"/>
 
   <bean name="XmlJMXPojo" class="org.jboss.demos.models.mbeans.Pojo">
     <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(exposedInterface=org.jboss.demos.models.mbeans.PojoMBean.class, registerDirectly=true)</annotation>
@@ -14,6 +13,5 @@
       <parameter><inject bean="ExposedPojo"/></parameter>
     </constructor>
   </bean>
--->
 
 </deployment>

Modified: projects/demos/trunk/models/src/resources/META-INF/mbeans-service.xml
===================================================================
--- projects/demos/trunk/models/src/resources/META-INF/mbeans-service.xml	2008-07-20 13:35:55 UTC (rev 76026)
+++ projects/demos/trunk/models/src/resources/META-INF/mbeans-service.xml	2008-07-20 13:50:28 UTC (rev 76027)
@@ -2,6 +2,6 @@
 
 <server>
 
-   <!--<mbean code="org.jboss.demos.models.mbeans.Pojo" name="jboss.demos:service=pojo"/>-->
+   <mbean code="org.jboss.demos.models.mbeans.Pojo" name="jboss.demos:service=pojo"/>
 
 </server>




More information about the jboss-cvs-commits mailing list