[Jboss-cvs] JBossAS SVN: r56569 - in	branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx:	test xmbean
    jboss-cvs-commits at lists.jboss.org 
    jboss-cvs-commits at lists.jboss.org
       
    Tue Sep  5 10:12:51 EDT 2006
    
    
  
Author: dimitris at jboss.org
Date: 2006-09-05 10:12:47 -0400 (Tue, 05 Sep 2006)
New Revision: 56569
Added:
   branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/xmbean/ServiceUsingCustomAttribute.java
Modified:
   branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java
Log:
JBAS-3623, Backport JBAS-3463 to 4.0.4.GA
Modified: branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java
===================================================================
--- branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java	2006-09-05 14:10:11 UTC (rev 56568)
+++ branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/test/XMLAttributePersistenceManagerUnitTestCase.java	2006-09-05 14:12:47 UTC (rev 56569)
@@ -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
     */
Added: branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/xmbean/ServiceUsingCustomAttribute.java
===================================================================
--- branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/xmbean/ServiceUsingCustomAttribute.java	2006-09-05 14:10:11 UTC (rev 56568)
+++ branches/JBoss_4_0_4_GA_JBAS-3623/testsuite/src/main/org/jboss/test/jmx/xmbean/ServiceUsingCustomAttribute.java	2006-09-05 14:12:47 UTC (rev 56569)
@@ -0,0 +1,59 @@
+/*
+ * 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.xmbean;
+
+import javax.management.Attribute;
+
+import org.jboss.system.ServiceMBeanSupport;
+
+/**
+ * @author Dimitris.Andreadis at jboss.org
+ * @version $Revision: 40354 $
+ */
+public class ServiceUsingCustomAttribute extends ServiceMBeanSupport
+{
+   private CustomType attr;
+   
+   public CustomType getAttr()
+   {
+      return attr;
+   }
+   
+   public void setAttr(CustomType attr)
+   {
+      this.attr = attr;
+   }
+
+   public void selfTest() throws Exception
+   {
+      CustomType ct = new CustomType(666, 999);
+      getServer().setAttribute(getServiceName(), new Attribute("Attr", ct));
+   }
+   
+   public String show()
+   {
+      if (attr == null)
+         return "null";
+      else
+         return attr.toString();
+   }
+}
    
    
More information about the jboss-cvs-commits
mailing list