[jboss-cvs] JBossAS SVN: r88769 - in branches/Branch_5_x/profileservice/src: main/org/jboss/profileservice/management and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 12 20:50:22 EDT 2009


Author: scott.stark at jboss.org
Date: 2009-05-12 20:50:22 -0400 (Tue, 12 May 2009)
New Revision: 88769

Added:
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservic/spi/MBeanDeploymentNameBuilder.java
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyDeploymentInfo.java
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/ComplexMBeanDeploymentNameBuilder.java
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/SimpleMBeanDeploymentNameBuilder.java
Modified:
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyManagedDeploymentFactory.java
   branches/Branch_5_x/profileservice/src/resources/profileservice-jboss-beans.xml
Log:
JBAS-6676, expand the proxy deployment factory to support multiple root mbeans in a deployment

Added: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservic/spi/MBeanDeploymentNameBuilder.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservic/spi/MBeanDeploymentNameBuilder.java	                        (rev 0)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservic/spi/MBeanDeploymentNameBuilder.java	2009-05-13 00:50:22 UTC (rev 88769)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * 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.profileservic.spi;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+/**
+ * An spi for mapping mbean names to a deployment name.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface MBeanDeploymentNameBuilder
+{
+   /**
+    * Generate a deployment name from a given mbean name.
+    * 
+    * @param name - an mbean name of a ManagedObject to include in the deployment
+    * @param server - the MBeanServer under which name is registered
+    * @return - the name of the deployment the mbean should belong to
+    */
+   public String getName(ObjectName name, MBeanServer server);
+}


Property changes on: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservic/spi/MBeanDeploymentNameBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Modified: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2009-05-12 21:11:25 UTC (rev 88768)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2009-05-13 00:50:22 UTC (rev 88769)
@@ -168,7 +168,7 @@
    private MetaValueFactory metaValueFactory = MetaValueFactory.getInstance();
    /** ManagedObjectFactory used for platform mbean ManagedObjects */
    ManagedObjectFactory managedObjFactory = ManagedObjectFactory.getInstance();
-   /** */
+   /** A map of ManagedMBeanDeploymentFactory for proxying mbeans into the management layer */
    private HashMap<String, ManagedMBeanDeploymentFactory> mdfs =
       new HashMap<String, ManagedMBeanDeploymentFactory>();
 
@@ -274,7 +274,7 @@
                         + ")";
                      ManagementObject moAnn = (ManagementObject) AnnotationCreator.createAnnotation(
                            annotationExpr, ManagementObject.class);
-                     // Bot the ManagementObject and ManagementComponent annotation need to be in the MO annotations
+                     // Both the ManagementObject and ManagementComponent annotation need to be in the MO annotations
                      mo.getAnnotations().put(ManagementObject.class.getName(), moAnn);
                      ManagementComponent mcAnn = moAnn.componentType();
                      mo.getAnnotations().put(ManagementComponent.class.getName(), mcAnn);

Added: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyDeploymentInfo.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyDeploymentInfo.java	                        (rev 0)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyDeploymentInfo.java	2009-05-13 00:50:22 UTC (rev 88769)
@@ -0,0 +1,96 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * 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.profileservice.management;
+
+import java.util.Map;
+
+import javax.management.ObjectName;
+
+import org.jboss.managed.api.ComponentType;
+import org.jboss.profileservic.spi.MBeanDeploymentNameBuilder;
+
+/**
+ * Encapsulation of a collection of mbeans that should be exposed as a
+ * ManagedDeployment with ManagedComponents.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ProxyDeploymentInfo
+{
+   /** The root component type */
+   private String compType;
+   /** The root component subtype */
+   private String compSubtype;
+   /** The name pattern used to locate the root mbeans of the deployment */
+   private ObjectName pattern;
+   private MBeanDeploymentNameBuilder nameBuilder;
+
+   /** A map of attribute name to ComponentType:ComponentSubType for child components of the root component */
+   private Map<String, String> componentInfo;
+
+   public String getCompType()
+   {
+      return compType;
+   }
+   public void setCompType(String compType)
+   {
+      this.compType = compType;
+   }
+   public String getCompSubtype()
+   {
+      return compSubtype;
+   }
+   public void setCompSubtype(String compSubtype)
+   {
+      this.compSubtype = compSubtype;
+   }
+   public ComponentType getType()
+   {
+      return new ComponentType(compType, compSubtype);
+   }
+   public ObjectName getPattern()
+   {
+      return pattern;
+   }
+   public void setPattern(ObjectName pattern)
+   {
+      this.pattern = pattern;
+   }
+   
+   public MBeanDeploymentNameBuilder getNameBuilder()
+   {
+      return nameBuilder;
+   }
+   public void setNameBuilder(MBeanDeploymentNameBuilder nameBuilder)
+   {
+      this.nameBuilder = nameBuilder;
+   }
+   public Map<String, String> getComponentInfo()
+   {
+      return componentInfo;
+   }
+   public void setComponentInfo(Map<String, String> componentInfo)
+   {
+      this.componentInfo = componentInfo;
+   }
+}


Property changes on: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyDeploymentInfo.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Modified: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyManagedDeploymentFactory.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyManagedDeploymentFactory.java	2009-05-12 21:11:25 UTC (rev 88768)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyManagedDeploymentFactory.java	2009-05-13 00:50:22 UTC (rev 88769)
@@ -21,47 +21,32 @@
  */
 package org.jboss.profileservice.management;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
-import javax.management.MBeanInfo;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.jboss.managed.api.ComponentType;
-import org.jboss.managed.api.ManagedDeployment;
-import org.jboss.managed.api.ManagedObject;
-import org.jboss.managed.api.annotation.ViewUse;
-import org.jboss.metadata.spi.MetaData;
 import org.jboss.profileservic.spi.ManagedMBeanDeploymentFactory;
-import org.jboss.profileservic.spi.ManagedMBeanDeploymentFactory.MBeanDeployment;
 
 /**
  * A ManagedDeploymentFactory that acts as a facade on top of mbean deployments
  * given by an ObjectName pattern.
  *
  * @author Scott.Stark at jboss.org
- * @version $Revision:$
+ * @author Jason T. Greene
+ * @version $Revision$
  */
 public class ProxyManagedDeploymentFactory implements ManagedMBeanDeploymentFactory
 {
    /** Name under which the factory will be registered */
    private String factoryName;
-   /** The root component type */
-   private String compType;
-   /** The root component subtype */
-   private String compSubtype;
-   /** The name pattern used to locate the root mbeans of the deployment */
-   private ObjectName pattern;
-   /** The unique key of the resulting ObjectName that defines the deployment name */
-   private String patternKey;
-   /** A map of attribute name to ComponentType:ComponentSubType for child components of the root component */
-   private Map<String, String> componetInfo;
 
+   /** The map of patterns to locate root mbeans that go into the deployment ManagedObject set */
+   private Set<ProxyDeploymentInfo> rootMOPatterns;
+
    /** The default view to expose fields as */
    private String defaultViewUse;
 
@@ -73,54 +58,16 @@
    {
       this.factoryName = factoryName;
    }
-   public String getCompType()
-   {
-      return compType;
-   }
-   public void setCompType(String compType)
-   {
-      this.compType = compType;
-   }
-   public String getCompSubtype()
-   {
-      return compSubtype;
-   }
-   public void setCompSubtype(String compSubtype)
-   {
-      this.compSubtype = compSubtype;
-   }
-   public ComponentType getType()
-   {
-      return new ComponentType(compType, compSubtype);
-   }
 
-   public ObjectName getPattern()
+   public Set<ProxyDeploymentInfo> getRootMOPatterns()
    {
-      return pattern;
+      return rootMOPatterns;
    }
-   public void setPattern(ObjectName pattern)
+   public void setRootMOPatterns(Set<ProxyDeploymentInfo> rootMOPatterns)
    {
-      this.pattern = pattern;
+      this.rootMOPatterns = rootMOPatterns;
    }
 
-   public Map<String, String> getComponetInfo()
-   {
-      return componetInfo;
-   }
-   public void setComponetInfo(Map<String, String> componetInfo)
-   {
-      this.componetInfo = componetInfo;
-   }
-
-   public String getPatternKey()
-   {
-      return patternKey;
-   }
-   public void setPatternKey(String patternKey)
-   {
-      this.patternKey = patternKey;
-   }
-
    public String getDefaultViewUse()
    {
       return this.defaultViewUse;
@@ -134,20 +81,32 @@
 
    public Collection<MBeanDeployment> getDeployments(MBeanServer mbeanServer)
    {
-      ArrayList<MBeanDeployment> tmp = new ArrayList<MBeanDeployment>();
-      HashMap<String, ObjectName> mos = new HashMap<String, ObjectName>();
-      Set<ObjectName> names = mbeanServer.queryNames(pattern, null);
+      Map<String, MBeanDeployment> tmp = new HashMap<String, MBeanDeployment>();
+      if(this.rootMOPatterns == null)
+         return tmp.values();
+
+      for(ProxyDeploymentInfo info : rootMOPatterns)
+      {
+      Set<ObjectName> names = mbeanServer.queryNames(info.getPattern(), null);
       if(names != null)
       {
          for(ObjectName name : names)
          {
-            String dname = name.getKeyProperty(patternKey);
-            MBeanDeployment deployment = new MBeanDeployment(dname);
+            String dname = info.getNameBuilder().getName(name, mbeanServer);
+            MBeanDeployment deployment = tmp.get(dname);
+            if(deployment == null)
+            {
+               deployment = new MBeanDeployment(dname);
+               tmp.put(dname, deployment);
+            }
+            String compType = info.getCompType();
+            String compSubtype = info.getCompSubtype();
             MBeanComponent rootComp = new MBeanComponent(name, compType, compSubtype);
             deployment.addComponent(rootComp);
-            if(componetInfo != null)
+            Map<String, String> componentInfo = info.getComponentInfo();
+            if(componentInfo != null)
             {
-               for(Map.Entry<String, String> comp : componetInfo.entrySet())
+               for(Map.Entry<String, String> comp : componentInfo.entrySet())
                {
                   String compPropertyName = comp.getKey();
                   String compTypeInfo = comp.getValue();
@@ -156,8 +115,8 @@
                      // Query for the attribute containing names of child components
                      Object attribute = mbeanServer.getAttribute(name, compPropertyName);
                      // Type:Subtype is the format
-                     String[] compType = compTypeInfo.split(":");
-                     processComponets(attribute, compType[0], compType[1], deployment);
+                     String[] compTypeParts = compTypeInfo.split(":");
+                     processComponents(attribute, compTypeParts[0], compTypeParts[1], deployment);
                   }
                   catch(Exception e)
                   {
@@ -165,10 +124,10 @@
                   }
                }
             }
-            tmp.add(deployment);
          }
       }
-      return tmp;
+      }
+      return tmp.values();
    }
 
    /**
@@ -181,7 +140,7 @@
     * @param deployment - the deployment to add the component to
     * @throws Exception - thrown on failure to parse a component name
     */
-   private void processComponets(Object attribute, String type, String subtype, MBeanDeployment deployment)
+   private void processComponents(Object attribute, String type, String subtype, MBeanDeployment deployment)
       throws Exception
    {
       if(attribute instanceof String[])


Property changes on: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ProxyManagedDeploymentFactory.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Added: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/ComplexMBeanDeploymentNameBuilder.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/ComplexMBeanDeploymentNameBuilder.java	                        (rev 0)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/ComplexMBeanDeploymentNameBuilder.java	2009-05-13 00:50:22 UTC (rev 88769)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * 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.profileservice.management.mbean;
+
+import java.util.List;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.jboss.profileservic.spi.MBeanDeploymentNameBuilder;
+
+/**
+ * An MBeanDeploymentNameBuilder that supports multiple keys, prefix, suffix
+ * and separator notions
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ComplexMBeanDeploymentNameBuilder
+   implements MBeanDeploymentNameBuilder
+{
+   private String prefix = "";
+   private String suffix = "";
+   private String separator = "";
+   private List<String> keyNames;
+   public String getPrefix()
+   {
+      return prefix;
+   }
+   public void setPrefix(String prefix)
+   {
+      this.prefix = prefix;
+   }
+   public String getSuffix()
+   {
+      return suffix;
+   }
+   public void setSuffix(String suffix)
+   {
+      this.suffix = suffix;
+   }
+   public String getSeparator()
+   {
+      return separator;
+   }
+   public void setSeparator(String separator)
+   {
+      this.separator = separator;
+   }
+   public List<String> getKeyNames()
+   {
+      return keyNames;
+   }
+   public void setKeyNames(List<String> keyNames)
+   {
+      this.keyNames = keyNames;
+   }
+
+   public String getName(ObjectName name, MBeanServer server)
+   {
+      StringBuilder tmp = new StringBuilder(prefix);
+      for(String key : keyNames)
+      {
+         String value = name.getKeyProperty(key);
+         tmp.append(value);
+         if(separator != null)
+            tmp.append(separator);
+      }
+      // Remove the last separator
+      if(separator != null)
+         tmp.setLength(tmp.length() - separator.length());
+      return tmp.toString();
+   }
+}


Property changes on: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/ComplexMBeanDeploymentNameBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Added: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/SimpleMBeanDeploymentNameBuilder.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/SimpleMBeanDeploymentNameBuilder.java	                        (rev 0)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/SimpleMBeanDeploymentNameBuilder.java	2009-05-13 00:50:22 UTC (rev 88769)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * 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.profileservice.management.mbean;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.jboss.profileservic.spi.MBeanDeploymentNameBuilder;
+
+/**
+ * A simple MBeanDeploymentNameBuilder that returns the value of the key
+ * property value as the name.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class SimpleMBeanDeploymentNameBuilder
+   implements MBeanDeploymentNameBuilder
+{
+   private String keyName = "name";
+
+   public String getKeyName()
+   {
+      return keyName;
+   }
+   public void setKeyName(String keyName)
+   {
+      this.keyName = keyName;
+   }
+
+   /*
+    * Return the key property specified by the keyName as the deployment name.
+    * @param name - the 
+    */
+   public String getName(ObjectName name, MBeanServer server)
+   {
+      return name.getKeyProperty(keyName);
+   }
+}


Property changes on: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/mbean/SimpleMBeanDeploymentNameBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Modified: branches/Branch_5_x/profileservice/src/resources/profileservice-jboss-beans.xml
===================================================================
--- branches/Branch_5_x/profileservice/src/resources/profileservice-jboss-beans.xml	2009-05-12 21:11:25 UTC (rev 88768)
+++ branches/Branch_5_x/profileservice/src/resources/profileservice-jboss-beans.xml	2009-05-13 00:50:22 UTC (rev 88769)
@@ -191,32 +191,57 @@
         </uninstall>
         <property name="metaValueFactory"><inject bean="MetaValueFactory"/></property>
     </bean>
-    
-    <bean name="WarManagerManagedDeploymentFactory"
-        class="org.jboss.profileservice.management.ProxyManagedDeploymentFactory">
-        <property name="factoryName">WarManager</property>
-        <property name="compType">MBean</property>
-        <property name="compSubtype">WebApplicationManager</property>
-        <property name="pattern">jboss.web:host=localhost,type=Manager,*</property>
-        <property name="patternKey">path</property>
-        <property name="defaultViewUse">STATISTIC</property>
+
+    <bean name="SimpleMBeanDeploymentNameBuilder"
+        class="org.jboss.profileservice.management.mbean.SimpleMBeanDeploymentNameBuilder">
+        <property name="keyName">name</property>
     </bean>
-    <bean name="WebModuleManagedDeploymentFactory"
+    <bean name="WarManagerMBeanDeploymentNameBuilder"
+        class="org.jboss.profileservice.management.mbean.ComplexMBeanDeploymentNameBuilder">
+        <property name="prefix">//</property>
+        <property name="separator"></property>
+        <property name="keyNames">
+            <list elementClass="java.lang.String">
+                <value>host</value>
+                <value>path</value>
+            </list>
+        </property>
+    </bean>
+    <bean name="WarManagedDeploymentFactory"
         class="org.jboss.profileservice.management.ProxyManagedDeploymentFactory">
-        <property name="factoryName">WebModule</property>
-        <property name="compType">MBean</property>
-        <property name="compSubtype">WebApplication</property>
-        <property name="pattern">jboss.web:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,*</property>
-        <property name="patternKey">name</property>
+        <property name="factoryName">War</property>
+
         <property name="defaultViewUse">STATISTIC</property>
-        <property name="componetInfo">
-            <map keyClass="java.lang.String" valueClass="java.lang.String">
-                <!-- Process the servlets components -->
-                <entry>
-                    <key>servlets</key>
-                    <value>MBean:Servlet</value>
-                </entry>
-            </map>
+        <property name="rootMOPatterns">
+            <set elementClass="org.jboss.profileservice.management.ProxyDeploymentInfo">
+                <!-- Manager -->
+                <bean class="org.jboss.profileservice.management.ProxyDeploymentInfo">
+                    <property name="compType">MBean</property>
+                    <property name="compSubtype">WebApplicationManager</property>
+                    <property name="pattern">jboss.web:host=localhost,type=Manager,*</property>
+                    <property name="nameBuilder">
+                        <inject bean="WarManagerMBeanDeploymentNameBuilder"/>
+                    </property>
+                </bean>
+                <!-- WebModule -->
+                <bean class="org.jboss.profileservice.management.ProxyDeploymentInfo">
+                    <property name="compType">MBean</property>
+                    <property name="compSubtype">WebApplication</property>
+                    <property name="pattern">jboss.web:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,*</property>
+                    <property name="nameBuilder">
+                        <inject bean="SimpleMBeanDeploymentNameBuilder"/>
+                    </property>
+                    <property name="componentInfo">
+                        <map keyClass="java.lang.String" valueClass="java.lang.String">
+                            <!-- Process the servlets components -->
+                            <entry>
+                                <key>servlets</key>
+                                <value>MBean:Servlet</value>
+                            </entry>
+                        </map>
+                    </property>
+                </bean>
+            </set>
         </property>
     </bean>
 </deployment>




More information about the jboss-cvs-commits mailing list