[jboss-cvs] JBossAS SVN: r86161 - in branches/Branch_5_x: system/src/main/org/jboss/system/server/profileservice/persistence and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 20 04:40:29 EDT 2009


Author: emuckenhuber
Date: 2009-03-20 04:40:29 -0400 (Fri, 20 Mar 2009)
New Revision: 86161

Modified:
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
   branches/Branch_5_x/system/src/main/org/jboss/system/server/profileservice/persistence/ManagedGenericOverrideHandler.java
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/PersistedDataSourceUnitTestCase.java
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/test/ProfileServiceOverrideTestCase.java
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/JmsDestinationUnitTestCase.java
Log:
[JBAS-6643] don't restore a null managed object.

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-03-20 08:06:30 UTC (rev 86160)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2009-03-20 08:40:29 UTC (rev 86161)
@@ -984,105 +984,9 @@
       // Create, distribute and start a deployment template
       String deploymentName = super.applyTemplate(template, deploymentBaseName, info);
       
-      /* 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 MutableManagedObject)
-               {
-                  MutableManagedObject mmo = (MutableManagedObject) mo;
-                  mmo.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 to get the deployment ManagedObjects
-      Map<String, ManagedObject> mos = mainDeployer.getManagedObjects(deploymentName);
-      log.debug("applyTemplate, deploymentBaseName="+deploymentBaseName+":"+mos);
-      // Map the 
-      String propName = info.getRootManagedPropertyName();
-      if(propName != null)
-      {
-         // Flatten out the root objects
-         ManagedObject rootMO = mos.get(deploymentName);
-         if(rootMO != null)
-            flattenRootObject(rootMO, propName, mos);
-      }
-      for(ManagedProperty prop : info.getProperties().values())
-      {
-         // Skip null values
-         if( prop.getValue() == null )
-            continue;
-   
-         ManagedObject mo = prop.getManagedObject();
-         if (mo == null)
-            throw new IllegalArgumentException("Null managed object: " + prop);
-   
-         ManagedObject ctxMO = mos.get(mo.getName());
-         if( ctxMO == null )
-         {
-            formatter.applyPattern(i18n.getString("ManagementView.InvalidTemplateKey")); //$NON-NLS-1$
-            Object[] args = {mo.getName()};
-            String msg = formatter.format(args);
-            throw new IllegalArgumentException(msg);
-         }
-         ManagedProperty ctxProp = ctxMO.getProperty(prop.getName());
-         // Check for a mapped name
-         if( ctxProp == null )
-         {
-            String mappedName = prop.getMappedName();
-            if( mappedName != null )
-               ctxProp = ctxMO.getProperty(mappedName);
-         }
-         if( ctxProp == null )
-         {
-            formatter.applyPattern(i18n.getString("ManagementView.InvalidTemplateProperty")); //$NON-NLS-1$
-            Object[] args = {prop.getName()};
-            String msg = formatter.format(args);
-            throw new IllegalArgumentException(msg);
-         }
-         // The property value must be a MetaValue
-         Object value = prop.getValue();
-         if ((value instanceof MetaValue) == false)
-         {
-            formatter.applyPattern(i18n.getString("ManagementView.InvalidPropertyValue")); //$NON-NLS-1$
-            Object[] args = {prop.getName(), value.getClass()};
-            String msg = formatter.format(args);
-            throw new IllegalArgumentException(msg);
-         }
-         MetaValue metaValue = (MetaValue)value;
-         ctxProp.setValue(metaValue);
-   
-         // todo - should this also dispatch to runtime component?
-         Object componentName = getComponentName(ctxProp);
-         if (componentName != null)
-            dispatcher.set(componentName, ctxProp.getName(), metaValue);
-      }
+      // Process the deployment
+      ManagedDeployment md = getMainDeployer().getManagedDeployment(deploymentName);
+      processManagedDeployment(md, getDefaulProfiletKey(), 0, log.isTraceEnabled());
    }
    
    public void process() throws DeploymentException

Modified: branches/Branch_5_x/system/src/main/org/jboss/system/server/profileservice/persistence/ManagedGenericOverrideHandler.java
===================================================================
--- branches/Branch_5_x/system/src/main/org/jboss/system/server/profileservice/persistence/ManagedGenericOverrideHandler.java	2009-03-20 08:06:30 UTC (rev 86160)
+++ branches/Branch_5_x/system/src/main/org/jboss/system/server/profileservice/persistence/ManagedGenericOverrideHandler.java	2009-03-20 08:40:29 UTC (rev 86161)
@@ -147,6 +147,10 @@
             if (moElement.getManagedObject() == null)
                return;
 
+            if (moElement.getManagedObject().getClassName() == null
+                  && moElement.getManagedObject().getTemplateName() == null)
+               return;
+            
             ManagedObject mo = createManagedObject(moElement.getManagedObject());
             value = new GenericValueSupport(AbstractManagedObjectFactory.MANAGED_OBJECT_META_TYPE, mo);  
          }

Modified: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/PersistedDataSourceUnitTestCase.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/PersistedDataSourceUnitTestCase.java	2009-03-20 08:06:30 UTC (rev 86160)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/PersistedDataSourceUnitTestCase.java	2009-03-20 08:40:29 UTC (rev 86161)
@@ -21,6 +21,7 @@
  */
 package org.jboss.test.profileservice.override.restart.test;
 
+import org.jboss.deployers.spi.management.KnownComponentTypes;
 import org.jboss.deployers.spi.management.ManagementView;
 import org.jboss.managed.api.ManagedComponent;
 import org.jboss.managed.api.ManagedDeployment;
@@ -84,6 +85,29 @@
       }
    }
    
+   public void testUpdatedDSTemplate() throws Exception
+   {
+      String deploymentName = "LocalTestDS-ds.xml";
+      try
+      {
+         ManagementView mgtView = getManagementView();
+         ManagedComponent mc = mgtView.getComponent("TestLocalDS", KnownComponentTypes.DataSourceTypes.LocalTx.getType());
+         assertNotNull(mc);
+         
+         ManagedProperty property = mc.getProperty("prepared-statement-cache-size");
+         assertEquals("prepared-statement-cache-size: "+ property.getValue(), SimpleValueSupport.wrap(34), property.getValue());
+         
+         property = mc.getProperty("max-pool-size");
+         assertEquals("max-pool-size: "+ property.getValue(), SimpleValueSupport.wrap(34), property.getValue());
+
+      }
+      finally
+      {
+         undeployPackage(new String[] { deploymentName });
+      }
+      
+   }
+   
    public void testNestedDS() throws Exception
    {
       String deploymentName = "profileservice-datasource.ear";

Modified: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/test/ProfileServiceOverrideTestCase.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/test/ProfileServiceOverrideTestCase.java	2009-03-20 08:06:30 UTC (rev 86160)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/test/ProfileServiceOverrideTestCase.java	2009-03-20 08:40:29 UTC (rev 86161)
@@ -21,11 +21,18 @@
  */
 package org.jboss.test.profileservice.override.test;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.deployers.spi.management.KnownComponentTypes;
 import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.DeploymentTemplateInfo;
+import org.jboss.managed.api.Fields;
 import org.jboss.managed.api.ManagedComponent;
 import org.jboss.managed.api.ManagedDeployment;
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.metatype.api.values.CompositeValue;
+import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
 
 /**
@@ -121,6 +128,52 @@
       }
    }
    
+   public void testTemplateDS() throws Exception
+   {
+      String jndiName = "TestLocalDS";
+      
+      Map<String, MetaValue> propValues = new HashMap<String, MetaValue>();
+      propValues.put("driver-class", SimpleValueSupport.wrap("org.hsqldb.jdbcDriver"));
+      propValues.put("connection-url", SimpleValueSupport.wrap("jdbc:hsqldb:."));
+      propValues.put("connection-definition", SimpleValueSupport.wrap("javax.sql.DataSource"));
+      propValues.put("jndi-name", SimpleValueSupport.wrap(jndiName));
+      propValues.put("rar-name", SimpleValueSupport.wrap("jboss-local-jdbc.rar"));
+      
+      // The management view
+      ManagementView mgtView = getManagementView();
+      DeploymentTemplateInfo dsInfo = mgtView.getTemplate("LocalTxDataSourceTemplate");
+      assertNotNull(dsInfo);
+      // 
+      for(ManagedProperty property : dsInfo.getProperties().values())
+      {
+         MetaValue v = propValues.get(property.getName());
+         if(v != null)
+         {
+            property.setValue(v);
+            property.setField(Fields.META_TYPE, v.getMetaType());
+         }
+      }
+      //
+      mgtView.applyTemplate("LocalTestDS", dsInfo);
+      
+      // Check 
+      ManagedDeployment md = mgtView.getDeployment("LocalTestDS-ds.xml");
+      assertNotNull(md);
+      ManagedComponent mc = mgtView.getComponent(jndiName, KnownComponentTypes.DataSourceTypes.LocalTx.getType());
+      assertNotNull(mc);
+      
+      ManagedProperty property = mc.getProperty("prepared-statement-cache-size");
+      // change value
+      property.setValue(SimpleValueSupport.wrap(34));
+      
+      property = mc.getProperty("max-pool-size");
+      property.setValue(SimpleValueSupport.wrap(34));
+      
+      mgtView.updateComponent(mc);
+     
+   }
+   
+   
    public void testNestedDS() throws Exception
    {
       String deploymentName = "profileservice-datasource.ear";

Modified: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/JmsDestinationUnitTestCase.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/JmsDestinationUnitTestCase.java	2009-03-20 08:06:30 UTC (rev 86160)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/JmsDestinationUnitTestCase.java	2009-03-20 08:40:29 UTC (rev 86161)
@@ -135,7 +135,7 @@
       managementView.process();
 
       // Validate the components
-      managementView.reload();
+//      managementView.reload();
       ManagedComponent queue1 = managementView.getComponent("testCreateQueue1", type);
       assertNotNull(queue1);
       assertEquals("testCreateQueue1", queue1.getName());




More information about the jboss-cvs-commits mailing list