[jboss-cvs] JBossAS SVN: r65075 - in trunk: profileservice/src/resources and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 5 01:51:41 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-09-05 01:51:40 -0400 (Wed, 05 Sep 2007)
New Revision: 65075
Modified:
trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
trunk/profileservice/src/resources/profileservice-beans.xml
trunk/server/src/etc/conf/default/bootstrap-repo-beans.xml
trunk/system-jmx/src/main/org/jboss/system/deployers/SARDeployer.java
trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java
trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeployment.java
trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeploymentClassPath.java
trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaData.java
Log:
JBAS-4672, begin supporting service deployment managed objects
Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java 2007-09-05 05:51:40 UTC (rev 65075)
@@ -285,7 +285,8 @@
if (etype == AbstractManagedObjectFactory.MANAGED_OBJECT_META_TYPE)
{
ArrayValue<GenericValue> avalue = (ArrayValue<GenericValue>) prop.getValue();
- for(int n = 0; n < avalue.getLength(); n ++)
+ int length = avalue != null ? avalue.getLength() : 0;
+ for(int n = 0; n < length; n ++)
{
GenericValue gv = (GenericValue) avalue.getValue(n);
ManagedObject propMO = (ManagedObject) gv.getValue();
Property changes on: trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
___________________________________________________________________
Name: svn:keywords
+ Revision Id
Modified: trunk/profileservice/src/resources/profileservice-beans.xml
===================================================================
--- trunk/profileservice/src/resources/profileservice-beans.xml 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/profileservice/src/resources/profileservice-beans.xml 2007-09-05 05:51:40 UTC (rev 65075)
@@ -47,111 +47,11 @@
<property name="mainDeployer"><inject bean="MainDeployer"/></property>
<property name="profileService"><inject bean="ProfileService"/></property>
<property name="serializer"><inject bean="JavaSerializationAttachmentsSerializer"/></property>
+ <!-- Accept any implementor of DeploymentTemplate -->
+ <incallback method="addTemplate"/>
+ <uncallback method="removeTemplate"/>
</bean>
-
- <!-- Mock ConnectionFactory Deployment -->
- <bean name="FakeDataSourceDeployer"
- class="org.jboss.profileservice.mock.ds.FakeDataSourceDeployer">
- <property name="type">jca-ds</property>
- <property name="propertyNameMappings">
- <inject bean="DsPropertyMappings" />
- </property>
- </bean>
-
- <!-- DeploymentTemplates -->
- <!--
- <bean name="DsXmlDataSourceTemplate"
- class="org.jboss.profileservice.management.templates.DsXmlDataSourceTemplate">
- <install bean="ManagementView" method="addTemplate">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="ManagementView" method="removeTemplate">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <property name="info"><inject bean="DsXmlDataSourceTemplateInfo"/></property>
- </bean>
- -->
- <bean name="FakeDsXmlDataSourceTemplate"
- class="org.jboss.profileservice.management.templates.FakeDsXmlDataSourceTemplate">
- <install bean="ManagementView" method="addTemplate">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="ManagementView" method="removeTemplate">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <property name="info"><inject bean="FakeDsXmlDataSourceTemplateInfo"/></property>
- <property name="deployer"><inject bean="FakeDataSourceDeployer" /></property>
- </bean>
-
- <bean name="FakeDsXmlDataSourceTemplateInfo"
- class="org.jboss.profileservice.management.templates.DsXmlDataSourceTemplateInfo">
- <constructor>
- <parameter>FakeDsXmlDataSourceTemplate</parameter>
- <parameter>A template for *-dsf.xml deployments</parameter>
- <parameter>org.jboss.system.metadata.ServiceMetaData</parameter>
- <parameter>FakeConnectionFactoryDeployer.datasource-type</parameter>
- </constructor>
- <!-- Specify a mapping from service attribute names used by the datasource
- deployment ServiceMetaData to ManagedProperty names.
- -->
- <property name="propertyNameMappings">
- <inject bean="DsPropertyMappings" />
- </property>
- </bean>
- <!--
- <bean name="DsXmlDataSourceTemplateInfo"
- class="org.jboss.profileservice.management.templates.DsXmlDataSourceTemplateInfo">
- <constructor>
- <parameter>DsXmlDataSourceTemplate</parameter>
- <parameter>A template for *-ds.xml deployments</parameter>
- <parameter>org.w3c.dom.Document</parameter>
- </constructor>
- <!- - Specify a mapping from service attribute names used by the datasource
- deployment ServiceMetaData to ManagedProperty names.
- - ->
- <property name="propertyNameMappings">
- <inject bean="DsPropertyMappings" />
- </property>
- </bean>
- -->
- <bean name="DsPropertyMappings" class="java.util.HashMap">
- <constructor>
- <map class="java.util.HashMap" keyClass="java.lang.String" valueClass="java.lang.String">
- <entry><key>jndi-name</key><value>JndiName</value></entry>
- <entry><key>connection-url</key><value>JdbcURL</value></entry>
- <entry><key>user-name</key><value>Username</value></entry>
- <entry><key>password</key><value>Password</value></entry>
- <entry><key>driver-class</key><value>DriverClass</value></entry>
- <entry><key>min-pool-size</key><value>MinPoolSize</value></entry>
- <entry><key>max-pool-size</key><value>MaxPoolSize</value></entry>
- <entry><key>security-domain</key><value>SecurityDomain</value></entry>
- <entry><key>connection-properties</key><value>ConnectionProperties</value></entry>
- </map>
- </constructor>
- </bean>
-
- <!-- Override the ConnectionFactoryDeployer ManagedObjectBuilder
- <bean name="ConnectionFactoryDeployerManagedObjectBuilder"
- class="org.jboss.profileservice.management.builders.ConnectionFactoryDeployerManagedObjectBuilder">
- <install bean="MainDeployer" method="setDeployerManagedObjectBuilder">
- <parameter>
- <inject bean="ConnectionFactoryDeployer" />
- </parameter>
- <parameter>
- <this/>
- </parameter>
- </install>
- </bean>
- -->
-
+
<bean name="ProfileServiceProxyFactory" class="org.jboss.profileservice.remoting.ProxyFactory">
<property name="dispatchName">ProfileService</property>
<property name="jndiName">ProfileService</property>
Modified: trunk/server/src/etc/conf/default/bootstrap-repo-beans.xml
===================================================================
--- trunk/server/src/etc/conf/default/bootstrap-repo-beans.xml 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/server/src/etc/conf/default/bootstrap-repo-beans.xml 2007-09-05 05:51:40 UTC (rev 65075)
@@ -266,8 +266,12 @@
</bean>
<!-- JMX Deployment -->
+ <bean name="ServiceMetaDataICF" class="org.jboss.system.deployers.managed.ServiceMetaDataICF">
+ <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+ </bean>
<bean name="SARDeployer" class="org.jboss.system.deployers.SARDeployer">
<property name="type">sar</property>
+ <property name="icf"><inject bean="ServiceMetaDataICF"/></property>
</bean>
<bean name="ServiceDeploymentDeployer" class="org.jboss.system.deployers.ServiceDeploymentDeployer">
<property name="type">sar</property>
Modified: trunk/system-jmx/src/main/org/jboss/system/deployers/SARDeployer.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/deployers/SARDeployer.java 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/system-jmx/src/main/org/jboss/system/deployers/SARDeployer.java 2007-09-05 05:51:40 UTC (rev 65075)
@@ -28,10 +28,13 @@
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.vfs.spi.deployer.JAXPDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.managed.api.factory.ManagedObjectFactory;
import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
+import org.jboss.system.deployers.managed.ServiceMetaDataICF;
import org.jboss.system.metadata.ServiceDeployment;
import org.jboss.system.metadata.ServiceDeploymentClassPath;
import org.jboss.system.metadata.ServiceDeploymentParser;
+import org.jboss.system.metadata.ServiceMetaData;
import org.jboss.system.server.ServerConfig;
import org.jboss.system.server.ServerConfigLocator;
import org.jboss.virtual.VFS;
@@ -51,6 +54,8 @@
*/
public class SARDeployer extends JAXPDeployer<ServiceDeployment>
{
+ private ServiceMetaDataICF icf;
+
/**
* Create a new SARDeployer.
*
@@ -60,8 +65,26 @@
{
super(ServiceDeployment.class);
setSuffix("-service.xml");
+ // Enable the super class ManagedObjectCreator implementation
+ setBuildManagedObject(true);
}
+ public ServiceMetaDataICF getIcf()
+ {
+ return icf;
+ }
+
+ public void setIcf(ServiceMetaDataICF icf)
+ {
+ this.icf = icf;
+ if (icf != null)
+ {
+ // Have the ServiceMetaData ManagedObject build from the code class
+ ManagedObjectFactory mof = ManagedObjectFactory.getInstance();
+ mof.setInstanceClassFactory(ServiceMetaData.class, icf);
+ }
+ }
+
/**
* @param unit - the deployment unit
* @param file - the vf for the jboss-service.xml descriptor
Modified: trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java 2007-09-05 05:51:40 UTC (rev 65075)
@@ -23,6 +23,9 @@
import java.io.Serializable;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanServer;
+
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.beans.info.spi.PropertyInfo;
import org.jboss.managed.api.ManagedProperty;
@@ -41,16 +44,33 @@
public class ServiceMetaDataICF
implements InstanceClassFactory
{
+ private MBeanServer mbeanServer;
/** The meta value factory */
private MetaValueFactory metaValueFactory = MetaValueFactory.getInstance();
+ public MBeanServer getMbeanServer()
+ {
+ return mbeanServer;
+ }
+ public void setMbeanServer(MBeanServer mbeanServer)
+ {
+ this.mbeanServer = mbeanServer;
+ }
+
public Class<? extends Serializable> getManagedObjectClass(Serializable instance)
throws ClassNotFoundException
{
ServiceMetaData md = (ServiceMetaData) instance;
- ClassLoader loader = instance.getClass().getClassLoader();
- Class moClass = loader.loadClass(md.getCode());
- return moClass;
+ try
+ {
+ ClassLoader loader = mbeanServer.getClassLoader(md.getClassLoaderName());
+ Class moClass = loader.loadClass(md.getCode());
+ return moClass;
+ }
+ catch(InstanceNotFoundException e)
+ {
+ throw new ClassNotFoundException("Failed to obtain mbean class loader", e);
+ }
}
public MetaValue getValue(BeanInfo beanInfo, ManagedProperty property, Serializable instance)
{
Modified: trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeployment.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeployment.java 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeployment.java 2007-09-05 05:51:40 UTC (rev 65075)
@@ -24,6 +24,8 @@
import java.io.Serializable;
import java.util.List;
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperty;
import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
import org.w3c.dom.Element;
@@ -31,8 +33,10 @@
* ServiceDeployment.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
*/
+ at ManagementObject
public class ServiceDeployment
implements Serializable
{
@@ -58,6 +62,7 @@
*
* @return the name.
*/
+ @ManagementProperty(description="The -service.xml url string")
public String getName()
{
return name;
@@ -78,6 +83,7 @@
*
* @return the services.
*/
+ @ManagementProperty(description="The mbeans", managed=true)
public List<ServiceMetaData> getServices()
{
return services;
@@ -98,6 +104,7 @@
*
* @return the config.
*/
+ @ManagementProperty(ignored=true)
public Element getConfig()
{
return config;
@@ -118,6 +125,7 @@
*
* @return the loaderRepositoryConfig.
*/
+ @ManagementProperty(ignored=true)
public LoaderRepositoryConfig getLoaderRepositoryConfig()
{
return loaderRepositoryConfig;
@@ -138,6 +146,7 @@
*
* @return the classPaths.
*/
+ @ManagementProperty(name="classpath", description="The deployment classpath", managed=true)
public List<ServiceDeploymentClassPath> getClassPaths()
{
return classPaths;
Property changes on: trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeployment.java
___________________________________________________________________
Name: svn:keywords
+ Revision Id
Modified: trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeploymentClassPath.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeploymentClassPath.java 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceDeploymentClassPath.java 2007-09-05 05:51:40 UTC (rev 65075)
@@ -23,12 +23,15 @@
import java.io.Serializable;
+import org.jboss.managed.api.annotation.ManagementObject;
+
/**
* ServiceDeploymentClassPath.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision: 1.1 $
*/
+ at ManagementObject
public class ServiceDeploymentClassPath
implements Serializable
{
Modified: trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaData.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaData.java 2007-09-05 05:49:55 UTC (rev 65074)
+++ trunk/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaData.java 2007-09-05 05:51:40 UTC (rev 65075)
@@ -29,6 +29,9 @@
import javax.management.ObjectName;
import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementObjectID;
+import org.jboss.managed.api.annotation.ManagementProperty;
import org.w3c.dom.Element;
/**
@@ -37,6 +40,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision: 1.1 $
*/
+ at ManagementObject
public class ServiceMetaData extends AbstractMetaDataVisitorNode
implements Serializable
{
@@ -87,6 +91,8 @@
*
* @return the objectName.
*/
+ @ManagementProperty(description="The service JMX object name")
+ @ManagementObjectID(type="ServiceMBean")
public ObjectName getObjectName()
{
return objectName;
@@ -109,6 +115,7 @@
*
* @return the code.
*/
+ @ManagementProperty(description="The service bean class")
public String getCode()
{
return code;
More information about the jboss-cvs-commits
mailing list