[Jboss-cvs] JBossAS SVN: r56563 - branches/Branch_4_0/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:03:22 EDT 2006


Author: dimitris at jboss.org
Date: 2006-09-05 08:03:20 -0400 (Tue, 05 Sep 2006)
New Revision: 56563

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

Modified: branches/Branch_4_0/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java
===================================================================
--- branches/Branch_4_0/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java	2006-09-05 12:02:45 UTC (rev 56562)
+++ branches/Branch_4_0/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java	2006-09-05 12:03:20 UTC (rev 56563)
@@ -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
     */




More information about the jboss-cvs-commits mailing list