[Jboss-cvs] JBossAS SVN: r56564 - trunk/testsuite/src/main/org/jboss/test/jmx/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Sep 5 08:04:40 EDT 2006


Author: dimitris at jboss.org
Date: 2006-09-05 08:04:38 -0400 (Tue, 05 Sep 2006)
New Revision: 56564

Modified:
   trunk/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java
Log:
JBAS-3463, use the correct classloader when deserializing persisted custom mbean attributes

Modified: trunk/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java	2006-09-05 12:03:20 UTC (rev 56563)
+++ trunk/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java	2006-09-05 12:04:38 UTC (rev 56564)
@@ -1,24 +1,24 @@
 /*
-  * JBoss, Home of Professional Open Source
-  * Copyright 2005, 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.
-  */
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.test.jmx.test;
 
 import javax.management.Attribute;
@@ -28,6 +28,7 @@
 
 import org.apache.log4j.Logger;
 import org.jboss.test.JBossTestCase;
+import org.jboss.test.jmx.xmbean.CustomType;
 
 /**
  * Tests for XMLAttributePersistenceManager
@@ -43,7 +44,53 @@
    }
 
    /**
-    * [JBAS-1988], test we can write/read to a directory that contains spaces in its name. 
+    * JBAS-3463, persist custom mbean attributes using the default setup
+    * of the AttributePersistenceService / XMLAttributePersistenceManager.
+    */
+   public void testPersistCustomMBeanAttributes() throws Exception
+   {
+      Logger log = getLog();
+      log.info("+++ testPersistCustomMBeanAttributes");
+      
+      String testService = "xmbean-custom-attr-pers.sar";
+      String customMBean = "jboss.test:service=ServiceUsingCustomAttribute";
+      
+      MBeanServerConnection server = super.getServer();
+      // This works when AttributePersistenceService is setup by default
+      ObjectName aps = new ObjectName("jboss:service=AttributePersistenceService");
+      // Cleanup persisted image
+      server.invoke(aps, "apmRemove", new Object[] { customMBean }, new String[] { "java.lang.String" });
+      try
+      {
+         deploy(testService);
+         ObjectName target = new ObjectName(customMBean);
+         CustomType ct = new CustomType(777, 888);
+         // Attribute must be set and persisted
+         server.setAttribute(target, new Attribute("Attr", ct));
+         // redeploy
+         undeploy(testService);
+         // this fails if deserialization of the custom attribute fails
+         deploy(testService);
+         // otherwise we should be aple to read back the persisted attribute
+         ct = (CustomType)server.getAttribute(target, "Attr");
+         assertTrue("CustomType.x == 777", ct.getX() == 777);
+         assertTrue("CustomType.y == 888", ct.getY() == 888);
+         // Cleanup persisted image
+         server.invoke(aps, "apmRemove", new Object[] { customMBean }, new String[] { "java.lang.String" });          
+      }
+      catch (Exception e)
+      {
+         getLog().warn("Caught exception", e);
+         fail("Unexcepted Exception, see the Log file");
+      }      
+      finally
+      {
+         undeploy(testService);
+      }    
+   }
+   
+   /**
+    * JBAS-1988, test we can write/read to a directory that contains spaces in its name. 
     * 
     * @see org.jboss.test.jmx.xmbean.XMLAttributePersistenceManagerTestService
     */
@@ -78,7 +125,7 @@
                );
          
          getLog().info("Loading AttributeList");
-         AttributeList atlist2 = (AttributeList)server.invoke(
+         server.invoke(
                target,
                "load",
                new Object[] { storeId },




More information about the jboss-cvs-commits mailing list