[jboss-cvs] JBossAS SVN: r69720 - trunk/profileservice/src/main/org/jboss/profileservice/management.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Feb 8 01:00:07 EST 2008


Author: scott.stark at jboss.org
Date: 2008-02-08 01:00:07 -0500 (Fri, 08 Feb 2008)
New Revision: 69720

Modified:
   trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
   trunk/profileservice/src/main/org/jboss/profileservice/management/messages.properties
Log:
JBAS-5179, scan the ManagedPropertys of the template to find the ids to correct the ManagedObject names.

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2008-02-08 05:57:58 UTC (rev 69719)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2008-02-08 06:00:07 UTC (rev 69720)
@@ -587,6 +587,34 @@
    {
       return compByCompType.get(type);
    }
+   public ManagedComponent getComponent(String name, ComponentType type)
+      throws Exception
+   {
+      Set<ManagedComponent> components = compByCompType.get(type);
+      ManagedComponent comp = null;
+      if(components != null)
+      {
+         for(ManagedComponent mc : components)
+         {
+            if(mc.getName().equals(name))
+            {
+               comp = mc;
+               break;
+            }
+         }
+      }
+      if(comp != null)
+      {
+         Map<String, ManagedProperty> props = comp.getProperties();
+         Set<ManagedOperation> ops = comp.getOperations();
+         log.debug("Component"
+               +"(ops.size="
+               +ops != null ? ops.size() : 0
+               +",props.size=)"
+               +props != null ? props.size() : 0);
+      }
+      return comp;
+   }
 
    public DeploymentTemplateInfo getTemplate(String name)
       throws NoSuchDeploymentException
@@ -628,7 +656,45 @@
       template.updateTemplateDeployment(ctx, info);
       mainDeployer.process();
 
-      // Apply the managed properties
+      /* Scan through the template properties to see if there is a
+         property with an ManagementObjectID annotation that needs
+         to be used to update the associated ManagedObject name.
+      */
+      for(ManagedProperty prop : info.getProperties().values())
+      {
+         // Skip null values
+         if( prop.getValue() == null )
+            continue;
+         Map<String, Annotation> pannotations = prop.getAnnotations();
+         if (pannotations != null)
+         {
+            ManagementObjectID id = (ManagementObjectID) pannotations.get(ManagementObjectID.class.getName());
+            if (id != null)
+            {
+               Object refName = getRefName(prop.getValue());
+               if (refName == null)
+                  refName = id.name();
+               String name = "" + refName;
+               log.debug("Updating template ManagedObject name to:"+name+" from property: "+prop);
+               ManagedObject mo = prop.getManagedObject();
+               if(mo instanceof ManagedObjectImpl)
+               {
+                  // TODO: need a MutableManagedObject type
+                  ManagedObjectImpl moi = (ManagedObjectImpl) mo;
+                  moi.setName(name);
+               }
+               else
+               {
+                  formatter.applyPattern(i18n.getString("ManagementView.InvalidTemplatePropertyMO")); //$NON-NLS-1$
+                  Object[] args = {prop.getName()};
+                  String msg = formatter.format(args);
+                  throw new IllegalArgumentException(msg);
+               }
+            }
+         }
+      }
+
+      // Now apply the managed properties
       Map<String, ManagedObject> mos = mainDeployer.getManagedObjects(ctx.getName());
       log.debug("applyTemplate, profile="+activeProfile+", deploymentBaseName="+deploymentBaseName+", phase="+phase+", :"+mos);
       for(ManagedProperty prop : info.getProperties().values())
@@ -836,18 +902,18 @@
    {
       Map<String, ManagedProperty> runtimeProps = runtimeMO.getProperties();
       Set<ManagedOperation> runtimeOps = runtimeMO.getOperations();
-      log.debug("Merging runtime: "+runtimeMO
+      System.out.println("Merging runtime: "+runtimeMO.getName());
+      System.out.println("Merging runtime: "+runtimeMO.getName()
          +"(ops.size="
          +runtimeOps != null ? runtimeOps.size() : 0
          +",props.size=)"
          +runtimeProps != null ? runtimeProps.size() : 0
-         +", into: "+mo);
+         +", into identity(): "+System.identityHashCode(mo));
       Map<String, ManagedProperty> moProps = mo.getProperties();
       Set<ManagedOperation> moOps = mo.getOperations();
       HashMap<String, ManagedProperty> props = new HashMap<String, ManagedProperty>(moProps);
       HashSet<ManagedOperation> ops = new HashSet<ManagedOperation>(moOps);
 
-
       if (runtimeProps != null && runtimeProps.size() > 0)
       {
          log.debug("Properties before:"+props);
@@ -864,7 +930,21 @@
 
       ManagedObjectImpl moi = (ManagedObjectImpl) mo;
       moi.setProperties(props);
+      if(ops.size() == 0)
+         System.err.println("Empty ops!!!");
       moi.setOperations(ops);
+      if(runtimeMO.getName().equals("DefaultDS"))
+      {
+         ComponentType type = new ComponentType("DataSource", "LocalTx");
+         ManagedComponent hsqldb = this.getComponent("DefaultDS", type);
+         Map<String, ManagedProperty> hprops = hsqldb.getProperties();
+         Set<ManagedOperation> hops = hsqldb.getOperations();
+         System.err.println("DefaultDS.props.size: "+hprops.size()+", ops.size: "+hops.size());
+         if(hops.size() == 0)
+            System.err.println("No ops!!!");
+         if(hprops.get("connectionCreatedCount") == null)
+            System.err.println("No stats!!!");
+      }
    }
 
    /**

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/messages.properties
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/messages.properties	2008-02-08 05:57:58 UTC (rev 69719)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/messages.properties	2008-02-08 06:00:07 UTC (rev 69720)
@@ -3,4 +3,5 @@
 ManagementView.NoSuchDeploymentException=Failed to find deployment for name: {0}
 ManagementView.NoSuchTemplate=Failed to find template for: {0}
 ManagementView.InvalidTemplateKey=Failed to map key: {0} to managed attachments for deployment
-ManagementView.InvalidTemplateProperty=Failed to map property: {0} to managed properties for deployment
\ No newline at end of file
+ManagementView.InvalidTemplateProperty=Failed to map property: {0} to managed properties for deployment
+ManagementView.InvalidTemplatePropertyMO=Property: {0} does not use ManagedObjectImpl
\ No newline at end of file




More information about the jboss-cvs-commits mailing list