[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