[jboss-cvs] JBossAS SVN: r81026 - in trunk/mbeans/src: main/org/jboss/mx/interceptor and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 14 07:51:05 EST 2008


Author: dimitris at jboss.org
Date: 2008-11-14 07:51:05 -0500 (Fri, 14 Nov 2008)
New Revision: 81026

Modified:
   trunk/mbeans/src/main/org/jboss/mx/capability/DispatchClassLoader.java
   trunk/mbeans/src/main/org/jboss/mx/capability/DispatcherFactory.java
   trunk/mbeans/src/main/org/jboss/mx/capability/OptimizedMBeanDispatcher.java
   trunk/mbeans/src/main/org/jboss/mx/capability/ReflectedMBeanDispatcher.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractSharedInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/AttributeDispatcher.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/DynamicInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/Interceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/InterceptorNameConflictException.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/LogInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanAttributeInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInfoInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanOperationInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/NullInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/ObjectReferenceInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor2.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/ReflectedDispatcher.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/SecurityInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/SharedInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/interceptor/StandardMBeanInfoInterceptor.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/AbstractBuilder.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/AttributeOperationResolver.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/IllegalPropertyException.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/JBossXMBean10.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanCapability.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanInfoConversion.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/MetaDataBuilder.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/MethodMapper.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/StandardMetaData.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/XMBeanEntityResolver.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/XMLMetaData.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/DescriptorSupportContainer.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/Holder.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorHolder.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorsHolder.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanAttributeInfoContainer.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanConstructorInfoContainer.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanInfoSupportWrapper.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanNotificationInfoContainer.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanOperationInfoContainer.java
   trunk/mbeans/src/main/org/jboss/mx/metadata/xb/PersistPolicy.java
   trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java
   trunk/mbeans/src/main/org/jboss/mx/modelmbean/RequiredModelMBeanInvoker.java
   trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBean.java
   trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBeanConstants.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataInvocationHandler.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataView.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaData.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaDataFactory.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/GetterNames.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/ItemMetaData.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBean.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanDelegate.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanFactory.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanInvocationHandler.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanMetaData.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanSupport.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanUtils.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/NotificationType.java
   trunk/mbeans/src/main/org/jboss/mx/mxbean/SkeletonOpenType.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/AttributePersistenceManager.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/DelegatingPersistenceManager.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/MBeanInfoOdb.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/MbeanInfoDbPm.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/NullPersistence.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/ObjectStreamPersistenceManager.java
   trunk/mbeans/src/main/org/jboss/mx/persistence/PersistenceManager.java
   trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java
   trunk/mbeans/src/main/org/jboss/mx/server/Interceptable.java
   trunk/mbeans/src/main/org/jboss/mx/server/Invocation.java
   trunk/mbeans/src/main/org/jboss/mx/server/InvocationContext.java
   trunk/mbeans/src/main/org/jboss/mx/server/MBeanInvoker.java
   trunk/mbeans/src/main/org/jboss/mx/server/MethodMapper.java
   trunk/mbeans/src/main/org/jboss/mx/server/Suspendable.java
   trunk/mbeans/src/main/org/jboss/mx/server/TCLAction.java
   trunk/mbeans/src/main/org/jboss/mx/server/TimeoutException.java
   trunk/mbeans/src/main/org/jboss/mx/server/registry/MBeanEntry.java
   trunk/mbeans/src/main/org/jboss/mx/server/registry/MbeanInfoDb.java
   trunk/mbeans/src/main/org/jboss/mx/service/ServiceConstants.java
   trunk/mbeans/src/main/org/jboss/mx/util/JBossNotCompliantMBeanException.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsInterface.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupport.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupportMXBean.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeInterface.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupport.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupportMXBean.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/InvalidInterface.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/NullSimpleObject.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleInterface.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupport.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupportMXBean.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleObject.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestEnum.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestParameterizedType.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/AbstractMXBeanTest.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataArrayUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigDecimalUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigIntegerUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBooleanUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataByteUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCharacterUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCollectionUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCompositeUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDateUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDoubleUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataEnumUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataFloatUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataIntegerUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataInvocationHandlerUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataLongUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataMapUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataObjectNameUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataShortUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataStringUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataTest.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeTypeMetaDataFactoryUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanInvocationHandlerUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanSupportUnitTestCase.java
   trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanTestSuite.java
Log:
JBAS-3916, use the right copyright header

Modified: trunk/mbeans/src/main/org/jboss/mx/capability/DispatchClassLoader.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/capability/DispatchClassLoader.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/capability/DispatchClassLoader.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.capability;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/capability/DispatcherFactory.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/capability/DispatcherFactory.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/capability/DispatcherFactory.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.capability;
 
 import org.jboss.mx.metadata.AttributeOperationResolver;

Modified: trunk/mbeans/src/main/org/jboss/mx/capability/OptimizedMBeanDispatcher.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/capability/OptimizedMBeanDispatcher.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/capability/OptimizedMBeanDispatcher.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.capability;
 
 import org.apache.bcel.Constants;

Modified: trunk/mbeans/src/main/org/jboss/mx/capability/ReflectedMBeanDispatcher.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/capability/ReflectedMBeanDispatcher.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/capability/ReflectedMBeanDispatcher.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.capability;
 
 import org.jboss.mx.metadata.AttributeOperationResolver;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import javax.management.MBeanServer;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractSharedInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractSharedInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/AbstractSharedInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import java.util.Hashtable;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/AttributeDispatcher.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/AttributeDispatcher.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/AttributeDispatcher.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import java.lang.reflect.Method;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/DynamicInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/DynamicInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/DynamicInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,8 +1,8 @@
 /*
- * 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.
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/Interceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/Interceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/Interceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import org.jboss.logging.Logger;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/InterceptorNameConflictException.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/InterceptorNameConflictException.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/InterceptorNameConflictException.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/LogInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/LogInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/LogInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanAttributeInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanAttributeInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanAttributeInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import javax.management.Attribute;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInfoInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInfoInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInfoInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import org.jboss.mx.server.Invocation;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 /** A noop subclass of the ModelMBeanInfoInterceptor for backward compability

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanOperationInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanOperationInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/ModelMBeanOperationInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import java.util.Arrays;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/NullInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/NullInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/NullInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 /** A noop subclass of the AbstractInterceptor for backward compability

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/ObjectReferenceInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/ObjectReferenceInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/ObjectReferenceInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 /** A noop subclass of the AbstractInterceptor for backward compability

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import java.util.HashMap;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor2.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor2.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/PersistenceInterceptor2.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 /** A noop subclass of the PersistenceInterceptor for backward compability

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/ReflectedDispatcher.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/ReflectedDispatcher.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/ReflectedDispatcher.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import java.lang.reflect.InvocationTargetException;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/SecurityInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/SecurityInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/SecurityInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/SharedInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/SharedInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/SharedInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import javax.management.MBeanRegistration;

Modified: trunk/mbeans/src/main/org/jboss/mx/interceptor/StandardMBeanInfoInterceptor.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/interceptor/StandardMBeanInfoInterceptor.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/interceptor/StandardMBeanInfoInterceptor.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.interceptor;
 
 import javax.management.MBeanInfo;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/AbstractBuilder.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/AbstractBuilder.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/AbstractBuilder.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import java.util.Map;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/AttributeOperationResolver.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/AttributeOperationResolver.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/AttributeOperationResolver.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import javax.management.MBeanAttributeInfo;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/IllegalPropertyException.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/IllegalPropertyException.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/IllegalPropertyException.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 /**
  * Exception thrown when a property has an illegal value.

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/JBossXMBean10.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/JBossXMBean10.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/JBossXMBean10.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,8 +1,8 @@
 /*
- * 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.
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanCapability.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanCapability.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanCapability.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import javax.management.DynamicMBean;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanInfoConversion.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanInfoConversion.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/MBeanInfoConversion.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import java.util.ArrayList;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/MetaDataBuilder.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/MetaDataBuilder.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/MetaDataBuilder.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import javax.management.MBeanInfo;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/MethodMapper.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/MethodMapper.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/MethodMapper.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import javax.management.MBeanAttributeInfo;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/StandardMetaData.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/StandardMetaData.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/StandardMetaData.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import java.lang.reflect.Constructor;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/XMBeanEntityResolver.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/XMBeanEntityResolver.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/XMBeanEntityResolver.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 import java.io.InputStream;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/XMLMetaData.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/XMLMetaData.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/XMLMetaData.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata;
 
 // $Id$

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/DescriptorSupportContainer.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/DescriptorSupportContainer.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/DescriptorSupportContainer.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import javax.management.modelmbean.DescriptorSupport;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/Holder.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/Holder.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/Holder.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorHolder.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorHolder.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorHolder.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,24 +1,24 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import org.jboss.mx.interceptor.Interceptor;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorsHolder.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorsHolder.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/InterceptorsHolder.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import java.util.ArrayList;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanAttributeInfoContainer.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanAttributeInfoContainer.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanAttributeInfoContainer.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import javax.management.Descriptor;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanConstructorInfoContainer.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanConstructorInfoContainer.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanConstructorInfoContainer.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import java.util.ArrayList;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanInfoSupportWrapper.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanInfoSupportWrapper.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanInfoSupportWrapper.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import java.util.ArrayList;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanNotificationInfoContainer.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanNotificationInfoContainer.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanNotificationInfoContainer.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import java.util.ArrayList;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanOperationInfoContainer.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanOperationInfoContainer.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/ModelMBeanOperationInfoContainer.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 import java.util.ArrayList;

Modified: trunk/mbeans/src/main/org/jboss/mx/metadata/xb/PersistPolicy.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/metadata/xb/PersistPolicy.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/metadata/xb/PersistPolicy.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,25 +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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.metadata.xb;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,8 +1,8 @@
 /*
- * 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.
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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

Modified: trunk/mbeans/src/main/org/jboss/mx/modelmbean/RequiredModelMBeanInvoker.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/modelmbean/RequiredModelMBeanInvoker.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/modelmbean/RequiredModelMBeanInvoker.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.modelmbean;
 
 import javax.management.Attribute;

Modified: trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBean.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBean.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBean.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.modelmbean;
 
 import java.net.MalformedURLException;

Modified: trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBeanConstants.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBeanConstants.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/modelmbean/XMBeanConstants.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.modelmbean;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataInvocationHandler.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataInvocationHandler.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataInvocationHandler.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,115 +1,115 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.lang.reflect.Type;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.InvalidKeyException;
-
-import org.jboss.util.UnreachableStatementException;
-
-/**
- * CompositeDataInvocationHandler.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataInvocationHandler implements InvocationHandler
-{
-   /** The composite data */
-   private CompositeData compositeData;
-   
-   /**
-    * Create a new CompositeDataInvocationHandler.
-    * 
-    * @param compositeData
-    */
-   public CompositeDataInvocationHandler(CompositeData compositeData)
-   {
-      if (compositeData == null)
-         throw new IllegalArgumentException("Null compositeData");
-      this.compositeData = compositeData;
-   }
-
-   /**
-    * Get the compositeData.
-    * 
-    * @return the compositeData.
-    */
-   public CompositeData getCompositeData()
-   {
-      return compositeData;
-   }
-   
-   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
-   {
-      if (Object.class.equals(method.getDeclaringClass()))
-         return handleObjectInvocation(method.getName(), args);
-      
-      Object value = getValue(method);
-
-      Type returnType = method.getGenericReturnType(); 
-      return MXBeanUtils.reconstruct(returnType, value, method);
-   }
-   
-   private Object getValue(Method method)
-   {
-      String key = MXBeanUtils.getCompositeDataKey(method);
-      if (key == null)
-         throw new IllegalArgumentException("Unsupported method '" + method + "'; it must be a property getter.");
-      try
-      {
-         return compositeData.get(key);
-      }
-      catch (InvalidKeyException e)
-      {
-         throw new IllegalArgumentException("Unsupported method '" + method + "'; it must be a property getter for one of the item names of the composite data: " + compositeData, e);
-      }
-   }
-   
-   private Object handleObjectInvocation(String name, Object[] args) throws Throwable
-   {
-      if ("equals".equals(name))
-      {
-         Object object = args[0];
-         if (object == null || object instanceof Proxy == false)
-            return false;
-         InvocationHandler handler = Proxy.getInvocationHandler(object);
-         if (handler == this)
-            return true;
-         if (handler == null || handler instanceof CompositeDataInvocationHandler == false)
-            return false;
-         
-         CompositeDataInvocationHandler other = (CompositeDataInvocationHandler) handler;
-         return getCompositeData().equals(other.getCompositeData());
-      }
-      else if ("hashCode".equals(name))
-         return getCompositeData().hashCode();
-      else if ("toString".equals(name))
-         return getCompositeData().toString();
-      throw new UnreachableStatementException();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
+
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.InvalidKeyException;
+
+import org.jboss.util.UnreachableStatementException;
+
+/**
+ * CompositeDataInvocationHandler.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataInvocationHandler implements InvocationHandler
+{
+   /** The composite data */
+   private CompositeData compositeData;
+   
+   /**
+    * Create a new CompositeDataInvocationHandler.
+    * 
+    * @param compositeData
+    */
+   public CompositeDataInvocationHandler(CompositeData compositeData)
+   {
+      if (compositeData == null)
+         throw new IllegalArgumentException("Null compositeData");
+      this.compositeData = compositeData;
+   }
+
+   /**
+    * Get the compositeData.
+    * 
+    * @return the compositeData.
+    */
+   public CompositeData getCompositeData()
+   {
+      return compositeData;
+   }
+   
+   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+   {
+      if (Object.class.equals(method.getDeclaringClass()))
+         return handleObjectInvocation(method.getName(), args);
+      
+      Object value = getValue(method);
+
+      Type returnType = method.getGenericReturnType(); 
+      return MXBeanUtils.reconstruct(returnType, value, method);
+   }
+   
+   private Object getValue(Method method)
+   {
+      String key = MXBeanUtils.getCompositeDataKey(method);
+      if (key == null)
+         throw new IllegalArgumentException("Unsupported method '" + method + "'; it must be a property getter.");
+      try
+      {
+         return compositeData.get(key);
+      }
+      catch (InvalidKeyException e)
+      {
+         throw new IllegalArgumentException("Unsupported method '" + method + "'; it must be a property getter for one of the item names of the composite data: " + compositeData, e);
+      }
+   }
+   
+   private Object handleObjectInvocation(String name, Object[] args) throws Throwable
+   {
+      if ("equals".equals(name))
+      {
+         Object object = args[0];
+         if (object == null || object instanceof Proxy == false)
+            return false;
+         InvocationHandler handler = Proxy.getInvocationHandler(object);
+         if (handler == this)
+            return true;
+         if (handler == null || handler instanceof CompositeDataInvocationHandler == false)
+            return false;
+         
+         CompositeDataInvocationHandler other = (CompositeDataInvocationHandler) handler;
+         return getCompositeData().equals(other.getCompositeData());
+      }
+      else if ("hashCode".equals(name))
+         return getCompositeData().hashCode();
+      else if ("toString".equals(name))
+         return getCompositeData().toString();
+      throw new UnreachableStatementException();
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataView.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataView.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeDataView.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,40 +1,40 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import javax.management.openmbean.CompositeData;
-
-/**
- * CompositeDataView.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface CompositeDataView
-{
-   /**
-    * Convert this object to composite data
-    * 
-    * @return the composite data
-    */
-   CompositeData toCompositeData();
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import javax.management.openmbean.CompositeData;
+
+/**
+ * CompositeDataView.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface CompositeDataView
+{
+   /**
+    * Convert this object to composite data
+    * 
+    * @return the composite data
+    */
+   CompositeData toCompositeData();
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaData.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaData.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaData.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,198 +1,198 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-
-import org.jboss.util.UnexpectedThrowable;
-
-/**
- * CompositeTypeMetaData.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeTypeMetaData
-{
-   /** The clazz */
-   private Class<?> clazz;
-   
-   /** The composite type */
-   private CompositeType compositeType;
-   
-   /** The items */
-   private List<ItemMetaData> items = new ArrayList<ItemMetaData>();
-   
-   /**
-    * Create a new CompositeTypeMetaData.
-    * 
-    * @param clazz the class
-    */
-   public CompositeTypeMetaData(Class<?> clazz)
-   {
-      this.clazz = clazz;
-   }
-   
-   /**
-    * Get the composite type
-    * 
-    * @return the composite type
-    */
-   public CompositeType getCompositeType()
-   {
-      if (compositeType == null)
-      {
-         String typeName = clazz.getName();
-         if (items.size() == 0)
-            return generateAnObject(typeName);
-            
-         String[] itemNames = new String[items.size()];
-         OpenType[] itemTypes = new OpenType[items.size()];
-         for (int i = 0; i < items.size(); ++i)
-         {
-            ItemMetaData item = items.get(i);
-            itemNames[i] = item.getName();
-            itemTypes[i] = item.getOpenType();
-         }
-         try
-         {
-            compositeType = new CompositeType(typeName, typeName, itemNames, itemNames, itemTypes);
-         }
-         catch (Throwable t)
-         {
-            throw new UnexpectedThrowable("Error creating composite type for: " + typeName, t);
-         }
-      }
-      return compositeType;
-   }
-
-   /**
-    * Generate the metadata
-    */
-   public void generate()
-   {
-      if (Object.class.equals(clazz))
-      {
-         compositeType = generateObject();
-         return;
-      }
-      if (Class.class.equals(clazz))
-      {
-         compositeType = generateClass();
-         return;
-      }
-      if (ClassLoader.class.equals(clazz))
-      {
-         compositeType = generateClassLoader();
-         return;
-      }
-
-      Method[] methods = clazz.getMethods();
-      for (Method method : methods)
-      {
-         Type returnType = method.getGenericReturnType();
-         Class<?> declaring = method.getDeclaringClass();
-         if (Object.class.equals(declaring) == false)
-         {
-            String key = MXBeanUtils.getCompositeDataKey(method);
-            if (key != null)
-               items.add(new ItemMetaData(key, returnType));
-         }
-      }
-   }
-
-   /**
-    * Generate the composite data for an object
-    * 
-    * @return the composite type
-    */
-   public static CompositeType generateObject()
-   {
-      return generateAnObject(Object.class.getName());
-   }
-
-   /**
-    * Generate the composite data for an object
-    * 
-    * @param name the class name
-    * @return the composite type
-    */
-   private static CompositeType generateAnObject(String name)
-   {
-      String[] itemNames = { "class" };
-      OpenType[] openTypes = { generateClass() };
-      return safeCreateCompositeType(name, itemNames, openTypes);
-   }
-
-   /**
-    * Generate the composite data for a class
-    * 
-    * @return the composite type
-    */
-   public static CompositeType generateClass()
-   {
-      String name = Object.class.getName();
-      String[] itemNames = { "name" };
-      OpenType[] openTypes = { SimpleType.STRING };
-      return safeCreateCompositeType(name, itemNames, openTypes);
-   }
-
-   /**
-    * Generate the composite data for a classloader
-    * 
-    * @return the composite type
-    */
-   public static CompositeType generateClassLoader()
-   {
-      String name = Object.class.getName();
-      String[] itemNames = { "name" };
-      OpenType[] openTypes = { SimpleType.STRING };
-      return safeCreateCompositeType(name, itemNames, openTypes);
-   }
-
-   /**
-    * Safely create a composite type
-    * 
-    * @param name the name
-    * @param itemNames the item names
-    * @param openTypes the open types
-    * @return the composite type
-    */
-   private static CompositeType safeCreateCompositeType(String name, String[] itemNames, OpenType[] openTypes)
-   {
-      try
-      {
-         return new CompositeType(name, name, itemNames, itemNames, openTypes);
-      }
-      catch (Exception e)
-      {
-         throw new UnexpectedThrowable(e);
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+
+import org.jboss.util.UnexpectedThrowable;
+
+/**
+ * CompositeTypeMetaData.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeTypeMetaData
+{
+   /** The clazz */
+   private Class<?> clazz;
+   
+   /** The composite type */
+   private CompositeType compositeType;
+   
+   /** The items */
+   private List<ItemMetaData> items = new ArrayList<ItemMetaData>();
+   
+   /**
+    * Create a new CompositeTypeMetaData.
+    * 
+    * @param clazz the class
+    */
+   public CompositeTypeMetaData(Class<?> clazz)
+   {
+      this.clazz = clazz;
+   }
+   
+   /**
+    * Get the composite type
+    * 
+    * @return the composite type
+    */
+   public CompositeType getCompositeType()
+   {
+      if (compositeType == null)
+      {
+         String typeName = clazz.getName();
+         if (items.size() == 0)
+            return generateAnObject(typeName);
+            
+         String[] itemNames = new String[items.size()];
+         OpenType[] itemTypes = new OpenType[items.size()];
+         for (int i = 0; i < items.size(); ++i)
+         {
+            ItemMetaData item = items.get(i);
+            itemNames[i] = item.getName();
+            itemTypes[i] = item.getOpenType();
+         }
+         try
+         {
+            compositeType = new CompositeType(typeName, typeName, itemNames, itemNames, itemTypes);
+         }
+         catch (Throwable t)
+         {
+            throw new UnexpectedThrowable("Error creating composite type for: " + typeName, t);
+         }
+      }
+      return compositeType;
+   }
+
+   /**
+    * Generate the metadata
+    */
+   public void generate()
+   {
+      if (Object.class.equals(clazz))
+      {
+         compositeType = generateObject();
+         return;
+      }
+      if (Class.class.equals(clazz))
+      {
+         compositeType = generateClass();
+         return;
+      }
+      if (ClassLoader.class.equals(clazz))
+      {
+         compositeType = generateClassLoader();
+         return;
+      }
+
+      Method[] methods = clazz.getMethods();
+      for (Method method : methods)
+      {
+         Type returnType = method.getGenericReturnType();
+         Class<?> declaring = method.getDeclaringClass();
+         if (Object.class.equals(declaring) == false)
+         {
+            String key = MXBeanUtils.getCompositeDataKey(method);
+            if (key != null)
+               items.add(new ItemMetaData(key, returnType));
+         }
+      }
+   }
+
+   /**
+    * Generate the composite data for an object
+    * 
+    * @return the composite type
+    */
+   public static CompositeType generateObject()
+   {
+      return generateAnObject(Object.class.getName());
+   }
+
+   /**
+    * Generate the composite data for an object
+    * 
+    * @param name the class name
+    * @return the composite type
+    */
+   private static CompositeType generateAnObject(String name)
+   {
+      String[] itemNames = { "class" };
+      OpenType[] openTypes = { generateClass() };
+      return safeCreateCompositeType(name, itemNames, openTypes);
+   }
+
+   /**
+    * Generate the composite data for a class
+    * 
+    * @return the composite type
+    */
+   public static CompositeType generateClass()
+   {
+      String name = Object.class.getName();
+      String[] itemNames = { "name" };
+      OpenType[] openTypes = { SimpleType.STRING };
+      return safeCreateCompositeType(name, itemNames, openTypes);
+   }
+
+   /**
+    * Generate the composite data for a classloader
+    * 
+    * @return the composite type
+    */
+   public static CompositeType generateClassLoader()
+   {
+      String name = Object.class.getName();
+      String[] itemNames = { "name" };
+      OpenType[] openTypes = { SimpleType.STRING };
+      return safeCreateCompositeType(name, itemNames, openTypes);
+   }
+
+   /**
+    * Safely create a composite type
+    * 
+    * @param name the name
+    * @param itemNames the item names
+    * @param openTypes the open types
+    * @return the composite type
+    */
+   private static CompositeType safeCreateCompositeType(String name, String[] itemNames, OpenType[] openTypes)
+   {
+      try
+      {
+         return new CompositeType(name, name, itemNames, itemNames, openTypes);
+      }
+      catch (Exception e)
+      {
+         throw new UnexpectedThrowable(e);
+      }
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaDataFactory.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaDataFactory.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/CompositeTypeMetaDataFactory.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,79 +1,79 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import javax.management.openmbean.CompositeType;
-
-import org.jboss.util.collection.WeakClassCache;
-
-/**
- * CompositeTypeMetaDataFactory.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeTypeMetaDataFactory extends WeakClassCache
-{
-   /** The singleton */
-   private static final CompositeTypeMetaDataFactory SINGLETON = new CompositeTypeMetaDataFactory(); 
-   
-   /**
-    * Get the composite type for a class
-    * 
-    * @param clazz the class
-    * @return the composite type
-    */
-   public static CompositeType getCompositeType(Class<?> clazz)
-   {
-      CompositeTypeMetaData metaData = getCompositeTypeMetaData(clazz);
-      return metaData.getCompositeType();
-   }
-   
-   /**
-    * Get the composite type meta data
-    * 
-    * @param clazz the class
-    * @return the meta data
-    */
-   public static CompositeTypeMetaData getCompositeTypeMetaData(Class<?> clazz)
-   {
-      return (CompositeTypeMetaData) SINGLETON.get(clazz);
-   }
-   
-   /**
-    * Singleton
-    */
-   private CompositeTypeMetaDataFactory()
-   {
-   }
-
-   protected Object instantiate(Class clazz)
-   {
-      return new CompositeTypeMetaData(clazz);
-   }
-
-   protected void generate(Class clazz, Object object)
-   {
-      CompositeTypeMetaData metaData = (CompositeTypeMetaData) object;
-      metaData.generate();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import javax.management.openmbean.CompositeType;
+
+import org.jboss.util.collection.WeakClassCache;
+
+/**
+ * CompositeTypeMetaDataFactory.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeTypeMetaDataFactory extends WeakClassCache
+{
+   /** The singleton */
+   private static final CompositeTypeMetaDataFactory SINGLETON = new CompositeTypeMetaDataFactory(); 
+   
+   /**
+    * Get the composite type for a class
+    * 
+    * @param clazz the class
+    * @return the composite type
+    */
+   public static CompositeType getCompositeType(Class<?> clazz)
+   {
+      CompositeTypeMetaData metaData = getCompositeTypeMetaData(clazz);
+      return metaData.getCompositeType();
+   }
+   
+   /**
+    * Get the composite type meta data
+    * 
+    * @param clazz the class
+    * @return the meta data
+    */
+   public static CompositeTypeMetaData getCompositeTypeMetaData(Class<?> clazz)
+   {
+      return (CompositeTypeMetaData) SINGLETON.get(clazz);
+   }
+   
+   /**
+    * Singleton
+    */
+   private CompositeTypeMetaDataFactory()
+   {
+   }
+
+   protected Object instantiate(Class clazz)
+   {
+      return new CompositeTypeMetaData(clazz);
+   }
+
+   protected void generate(Class clazz, Object object)
+   {
+      CompositeTypeMetaData metaData = (CompositeTypeMetaData) object;
+      metaData.generate();
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/GetterNames.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/GetterNames.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/GetterNames.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,43 +1,43 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * GetterNames.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
- at Documented
- at Target(ElementType.CONSTRUCTOR)
- at Retention(RetentionPolicy.RUNTIME)
-public @interface GetterNames
-{
-   /** The getter names */
-   String[] value();
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * GetterNames.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at Documented
+ at Target(ElementType.CONSTRUCTOR)
+ at Retention(RetentionPolicy.RUNTIME)
+public @interface GetterNames
+{
+   /** The getter names */
+   String[] value();
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/ItemMetaData.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/ItemMetaData.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/ItemMetaData.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,73 +1,73 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.Type;
-
-import javax.management.openmbean.OpenType;
-
-/**
- * ItemMetaData.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class ItemMetaData
-{
-   /** The name */
-   private String name;
-
-   /** The open type */
-   private SkeletonOpenType openType;
-   
-   /**
-    * Create a new ItemMetaData.
-    * 
-    * @param name the name
-    * @param type the type
-    */
-   public ItemMetaData(String name, Type type)
-   {
-      this.name = name;
-      openType = new SkeletonOpenType(type);
-   }
-
-   /**
-    * Get the name.
-    * 
-    * @return the name.
-    */
-   public String getName()
-   {
-      return name;
-   }
-
-   /**
-    * Get the openType.
-    * 
-    * @return the openType.
-    */
-   public OpenType getOpenType()
-   {
-      return openType.getOpenType();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.Type;
+
+import javax.management.openmbean.OpenType;
+
+/**
+ * ItemMetaData.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class ItemMetaData
+{
+   /** The name */
+   private String name;
+
+   /** The open type */
+   private SkeletonOpenType openType;
+   
+   /**
+    * Create a new ItemMetaData.
+    * 
+    * @param name the name
+    * @param type the type
+    */
+   public ItemMetaData(String name, Type type)
+   {
+      this.name = name;
+      openType = new SkeletonOpenType(type);
+   }
+
+   /**
+    * Get the name.
+    * 
+    * @return the name.
+    */
+   public String getName()
+   {
+      return name;
+   }
+
+   /**
+    * Get the openType.
+    * 
+    * @return the openType.
+    */
+   public OpenType getOpenType()
+   {
+      return openType.getOpenType();
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBean.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBean.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBean.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,43 +1,43 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * MXBean.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
- at Documented
- at Target(ElementType.TYPE)
- at Retention(RetentionPolicy.RUNTIME)
-public @interface MXBean
-{
-   /** Whether this is an MXBean */
-   boolean value() default true;
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * MXBean.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at Documented
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+public @interface MXBean
+{
+   /** Whether this is an MXBean */
+   boolean value() default true;
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanDelegate.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanDelegate.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanDelegate.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,510 +1,510 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.management.Attribute;
-import javax.management.AttributeList;
-import javax.management.AttributeNotFoundException;
-import javax.management.DynamicMBean;
-import javax.management.InvalidAttributeValueException;
-import javax.management.JMException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
-import javax.management.NotCompliantMBeanException;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.NotificationEmitter;
-import javax.management.ObjectName;
-import javax.management.ReflectionException;
-import javax.management.openmbean.OpenMBeanAttributeInfo;
-import javax.management.openmbean.OpenMBeanInfo;
-
-import org.jboss.logging.Logger;
-import org.jboss.mx.server.ExceptionHandler;
-
-/**
- * MXBeanDelegate.
- * 
- * FIXME: Reflection madness
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanDelegate extends NotificationBroadcasterSupport implements DynamicMBean, MBeanRegistration, NotificationEmitter
-{
-   /** The logger */
-   private static final Logger log = Logger.getLogger(MXBeanDelegate.class);
-
-   /** The implementation object */
-   private Object implementation;
-
-   /** The management interface */
-   private Class mbeanInterface;
-
-   /** The cached mbeaninfo */
-   private OpenMBeanInfo cachedMBeanInfo;
-   
-   /** The attribute mapping */
-   private Map<String, OpenMBeanAttributeInfo> attributeMapping;
-   
-   /** The getters */
-   private Map<String, Method> getters;
-   
-   /** The setters */
-   private Map<String, Method> setters;
-   
-   /** The operatinns */
-   private Map<String, Method> operations;
-
-   /**
-    * Construct a DynamicMBean from the given implementation object
-    * and the passed management interface class.
-    *
-    * @param implementation the object implementing the mbean
-    * @param mbeanInterface the management interface of the mbean
-    * @exception IllegalArgumentException for a null implementation
-    * @exception NotCompliantMBeanException if the management interface
-    *            does not follow the JMX design patterns or the implementation
-    *            does not implement the interface
-    */
-   public MXBeanDelegate(Object implementation, Class mbeanInterface) throws NotCompliantMBeanException
-   {
-      this.implementation = implementation;
-      this.mbeanInterface = mbeanInterface;
-   }
-
-   /**
-    * Construct a DynamicMBean from this object
-    * and the passed management interface class.<p>
-    *
-    * Used in subclassing
-    *
-    * @param mbeanInterface the management interface of the mbean
-    * @exception NotCompliantMBeanException if the management interface
-    *            does not follow the JMX design patterns or this
-    *            does not implement the interface
-    */
-   protected MXBeanDelegate(Class mbeanInterface) throws NotCompliantMBeanException
-   {
-      this.implementation = this;
-      this.mbeanInterface = mbeanInterface;
-   }
-
-   /**
-    * Retrieve the implementation object
-    *
-    * @return the implementation
-    */
-   public Object getImplementation()
-   {
-      return implementation;
-   }
-
-   /**
-    * Replace the implementation object
-    *
-    * @todo make this work after the mbean is registered
-    * @param implementation the new implementation
-    * @exception IllegalArgumentException for a null parameter
-    * @exception NotCompliantMBeanException if the new implementation
-    *            does not implement the interface supplied at
-    *            construction
-    */
-   public void setImplementation(Object implementation) throws NotCompliantMBeanException
-   {
-      if (implementation == null)
-         throw new IllegalArgumentException("Null implementation");
-      this.implementation = implementation;
-   }
-
-   /**
-    * Retrieve the implementation class
-    *
-    * @return the class of the implementation
-    */
-   public Class getImplementationClass()
-   {
-      return implementation.getClass();
-   }
-
-   /**
-    * Retrieve the management interface
-    *
-    * @return the management interface
-    */
-   public final Class getMBeanInterface()
-   {
-      return mbeanInterface;
-   }
-
-   public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
-   {
-      try
-      {
-         OpenMBeanAttributeInfo attributeInfo = attributeMapping.get(attribute);
-         if (attributeInfo == null)
-            throw new AttributeNotFoundException(attribute);
-         MBeanAttributeInfo mbeanAttributeInfo = (MBeanAttributeInfo) attributeInfo;
-         if (mbeanAttributeInfo.isReadable() == false)
-            throw new AttributeNotFoundException("Attribute is not readable: " + attribute);
-         
-         Method method = getters.get(attribute);
-         if (method == null)
-            throw new NoSuchMethodException("No method to get attribute: " + attribute);
-         
-         Object result = method.invoke(implementation, new Object[0]);
-         
-         return MXBeanUtils.construct(attributeInfo.getOpenType(), result, "Get attribute: " + attribute);
-      }
-      catch (Exception e)
-      {
-         JMException result = ExceptionHandler.handleException(e);
-         if (result instanceof AttributeNotFoundException)
-            throw (AttributeNotFoundException)result;
-         if (result instanceof MBeanException)
-            throw (MBeanException)result;
-         if (result instanceof ReflectionException)
-            throw (ReflectionException)result;
-         throw new MBeanException(e, "Cannot get attribute: " + attribute);
-      }
-   }
-
-   public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
-   {
-      try
-      {
-         String attributeName = attribute.getName();
-         OpenMBeanAttributeInfo attributeInfo = attributeMapping.get(attributeName);
-         if (attributeInfo == null)
-            throw new AttributeNotFoundException(attributeName);
-         MBeanAttributeInfo mbeanAttributeInfo = (MBeanAttributeInfo) attributeInfo;
-         if (mbeanAttributeInfo.isWritable() == false)
-            throw new AttributeNotFoundException("Attribute is not writable: " + attributeName);
-         
-         Method method = setters.get(attributeName);
-         if (method == null)
-            throw new NoSuchMethodException("No method to set attribute: " + attribute);
-
-         Object value = MXBeanUtils.reconstruct(method.getGenericParameterTypes()[0], attribute.getValue(), method);
-         
-         method.invoke(implementation, new Object[] { value });
-      }
-      catch (Exception e)
-      {
-         JMException result = ExceptionHandler.handleException(e);
-         if (result instanceof AttributeNotFoundException)
-            throw (AttributeNotFoundException)result;
-         if (result instanceof InvalidAttributeValueException)
-            throw (InvalidAttributeValueException)result;
-         if (result instanceof MBeanException)
-            throw (MBeanException)result;
-         if (result instanceof ReflectionException)
-            throw (ReflectionException)result;
-         throw new MBeanException(e, "Cannot set attribute: " + attribute);
-      }
-   }
-
-   public AttributeList getAttributes(String[] attributes)
-   {
-      try
-      {
-         AttributeList attrList = new AttributeList(attributes.length);
-         for (int i = 0; i < attributes.length; i++)
-         {
-            String name = attributes[i];
-            Object value = getAttribute(name);
-            attrList.add(new Attribute(name, value));
-         }
-         return attrList;
-      }
-      catch (Exception e)
-      {
-         JMException result = ExceptionHandler.handleException(e);
-         // Why is this not throwing the same exceptions as getAttribute(String)
-         throw new RuntimeException("Cannot get attributes", result);
-      }
-   }
-
-   public AttributeList setAttributes(AttributeList attributes)
-   {
-      AttributeList result = new AttributeList(attributes.size());
-      for (int i = 0; i < attributes.size(); ++i)
-      {
-         Attribute attr = (Attribute) attributes.get(i);
-         String name = attr.getName();
-         try
-         {
-            setAttribute(attr);
-            result.add(new Attribute(name, attr.getValue()));
-         }
-         catch (Throwable t)
-         {
-            JMException e = ExceptionHandler.handleException(t);
-            result.add(new Attribute(name, e));
-         }
-      }
-      return result;
-   }
-
-   public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException
-   {
-      try
-      {
-         String signatureString = getSignatureString(actionName, signature);
-         Method method = operations.get(signatureString);
-         if (method == null)
-            throw new NoSuchMethodException("Cannot find method for operation: " + signatureString);
-
-         Object[] parameters = params;
-         if (params.length > 0)
-         {
-            parameters = new Object[params.length];
-            Type[] parameterTypes = method.getGenericParameterTypes();
-            for (int i = 0; i < parameters.length; ++i)
-               parameters[i] = MXBeanUtils.reconstruct(parameterTypes[i], params[i], method);
-         }
-         
-         Object result = method.invoke(implementation, parameters);
-         
-         if (result == null)
-            return null;
-         Type returnType = method.getGenericReturnType();
-         return MXBeanUtils.construct(returnType, result, method);
-      }
-      catch (Exception e)
-      {
-         JMException result = ExceptionHandler.handleException(e);
-         if (result instanceof MBeanException)
-            throw (MBeanException)result;
-         if (result instanceof ReflectionException)
-            throw (ReflectionException)result;
-         throw new MBeanException(e, "Cannot invoke: " + actionName);
-      }
-   }
-
-   public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
-   {
-      return name;
-   }
-
-   public void postRegister(Boolean registrationDone)
-   {
-   }
-
-   public void preDeregister() throws Exception
-   {
-   }
-
-   public void postDeregister()
-   {
-   }
-
-   public MBeanInfo getMBeanInfo()
-   {
-      OpenMBeanInfo info = getCachedMBeanInfo();
-      if (info == null)
-      {
-         try
-         {
-            info = buildMBeanInfo();
-            cacheMBeanInfo(info);
-         }
-         catch (NotCompliantMBeanException e)
-         {
-            log.error("Unexcepted exception", e);
-            throw new IllegalStateException("Unexcepted exception " + e.toString());
-         }
-
-      }
-      return (MBeanInfo) info;
-   }
-
-   /**
-    * Retrieve the cached mbean info
-    *
-    * @return the cached mbean info
-    */
-   public OpenMBeanInfo getCachedMBeanInfo()
-   {
-      return cachedMBeanInfo;
-   }
-
-   /**
-    * Sets the cached mbean info
-    *
-    * @param info the mbeaninfo to cache, can be null to erase the cache
-    */
-   public void cacheMBeanInfo(OpenMBeanInfo info)
-   {
-      cachedMBeanInfo = info;
-      Map<String, OpenMBeanAttributeInfo> attributeMapping = new HashMap<String, OpenMBeanAttributeInfo>();
-      MBeanAttributeInfo[] attributes = info.getAttributes();
-      for (int i = 0; i < attributes.length; ++i)
-      {
-         OpenMBeanAttributeInfo attribute = (OpenMBeanAttributeInfo) attributes[i];
-         attributeMapping.put(attribute.getName(), attribute);
-      }
-      this.attributeMapping = attributeMapping;
-
-      try
-      {
-         HashMap<String, Method> getters = new HashMap<String, Method>();
-         HashMap<String, Method> setters = new HashMap<String, Method>();
-
-         HashMap<String, Method> operations = new HashMap<String, Method>();
-
-         Method[] methods = implementation.getClass().getMethods();
-         for (Method method : methods)
-         {
-            String methodName = method.getName();
-            Type[] signature = method.getGenericParameterTypes();
-            Type returnType = method.getGenericReturnType();
-
-            if (methodName.startsWith("set") &&
-                methodName.length() > 3 && 
-                signature.length == 1 && 
-                returnType == Void.TYPE)
-            {
-               String key = methodName.substring(3, methodName.length());
-               Method setter = setters.get(key);
-               if (setter != null && setter.getGenericParameterTypes()[0].equals(signature[0]) == false)
-                  throw new RuntimeException("overloaded type for attribute set: " + key);
-               setters.put(key, method);
-            }
-            else if (methodName.startsWith("get") &&
-                     methodName.length() > 3 &&
-                     signature.length == 0 &&
-                     returnType != Void.TYPE)
-            {
-               String key = methodName.substring(3, methodName.length());
-               Method getter = getters.get(key);
-               if (getter != null && getter.getName().startsWith("is"))
-                  throw new RuntimeException("mixed use of get/is for attribute " + key);
-               getters.put(key, method);
-            }
-            else if (methodName.startsWith("is") &&
-                     methodName.length() > 2 &&
-                     signature.length == 0 &&
-                     returnType == Boolean.TYPE)
-            {
-               String key = methodName.substring(2, methodName.length());
-               Method getter = getters.get(key);
-               if (getter != null && getter.getName().startsWith("get"))
-                  throw new RuntimeException("mixed use of get/is for attribute " + key);
-               getters.put(key, method);
-            }
-            else
-            {
-               operations.put(getSignatureString(method), method);
-            }
-         }
-         this.getters = getters;
-         this.setters = setters;
-         this.operations = operations;
-      }
-      catch (RuntimeException e)
-      {
-         log.error("Error: ", e);
-         throw e;
-      }
-      catch (Error e)
-      {
-         log.error("Error: ", e);
-         throw e;
-      }
-   }
-
-   /**
-    * Builds a default MBeanInfo for this MBean, using the Management Interface specified for this MBean.
-    *
-    * While building the MBeanInfo, this method calls the customization hooks that make it possible for subclasses to
-    * supply their custom descriptions, parameter names, etc...
-    * 
-    * @return the mbean info
-    * @throws NotCompliantMBeanException when not a valid mbean
-    */
-   public OpenMBeanInfo buildMBeanInfo() throws NotCompliantMBeanException
-   {
-      if (implementation == null)
-         throw new IllegalArgumentException("Null implementation");
-
-      MXBeanMetaData metadata = new MXBeanMetaData(implementation, mbeanInterface);
-      return (OpenMBeanInfo) metadata.build();
-   }
-
-   /**
-    * Get a signature string for a method
-    * 
-    * @param method the method
-    * @return the signature
-    */
-   private String getSignatureString(Method method)
-   {
-      String name = method.getName();
-      Class[] signature = method.getParameterTypes();
-      StringBuilder buffer = new StringBuilder(512);
-      buffer.append(name);
-      buffer.append("(");
-      if (signature != null)
-      {
-         for (int i = 0; i < signature.length; i++)
-         {
-            buffer.append(signature[i].getName());
-            if (i < signature.length-1)
-               buffer.append(",");
-         }
-      }
-      buffer.append(")");
-      return buffer.toString();
-   }
-
-   /**
-    * Get a signature string for a method
-    * 
-    * @param operation the operation
-    * @param signature the signature
-    * @return the signature
-    */
-   private String getSignatureString(String operation, String[] signature)
-   {
-      StringBuilder buffer = new StringBuilder(512);
-      buffer.append(operation);
-      buffer.append("(");
-      if (signature != null)
-      {
-         for (int i = 0; i < signature.length; i++)
-         {
-            buffer.append(signature[i]);
-            if (i < signature.length-1)
-               buffer.append(",");
-         }
-      }
-      buffer.append(")");
-      return buffer.toString();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.Attribute;
+import javax.management.AttributeList;
+import javax.management.AttributeNotFoundException;
+import javax.management.DynamicMBean;
+import javax.management.InvalidAttributeValueException;
+import javax.management.JMException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanRegistration;
+import javax.management.MBeanServer;
+import javax.management.NotCompliantMBeanException;
+import javax.management.NotificationBroadcasterSupport;
+import javax.management.NotificationEmitter;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+import javax.management.openmbean.OpenMBeanAttributeInfo;
+import javax.management.openmbean.OpenMBeanInfo;
+
+import org.jboss.logging.Logger;
+import org.jboss.mx.server.ExceptionHandler;
+
+/**
+ * MXBeanDelegate.
+ * 
+ * FIXME: Reflection madness
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanDelegate extends NotificationBroadcasterSupport implements DynamicMBean, MBeanRegistration, NotificationEmitter
+{
+   /** The logger */
+   private static final Logger log = Logger.getLogger(MXBeanDelegate.class);
+
+   /** The implementation object */
+   private Object implementation;
+
+   /** The management interface */
+   private Class mbeanInterface;
+
+   /** The cached mbeaninfo */
+   private OpenMBeanInfo cachedMBeanInfo;
+   
+   /** The attribute mapping */
+   private Map<String, OpenMBeanAttributeInfo> attributeMapping;
+   
+   /** The getters */
+   private Map<String, Method> getters;
+   
+   /** The setters */
+   private Map<String, Method> setters;
+   
+   /** The operatinns */
+   private Map<String, Method> operations;
+
+   /**
+    * Construct a DynamicMBean from the given implementation object
+    * and the passed management interface class.
+    *
+    * @param implementation the object implementing the mbean
+    * @param mbeanInterface the management interface of the mbean
+    * @exception IllegalArgumentException for a null implementation
+    * @exception NotCompliantMBeanException if the management interface
+    *            does not follow the JMX design patterns or the implementation
+    *            does not implement the interface
+    */
+   public MXBeanDelegate(Object implementation, Class mbeanInterface) throws NotCompliantMBeanException
+   {
+      this.implementation = implementation;
+      this.mbeanInterface = mbeanInterface;
+   }
+
+   /**
+    * Construct a DynamicMBean from this object
+    * and the passed management interface class.<p>
+    *
+    * Used in subclassing
+    *
+    * @param mbeanInterface the management interface of the mbean
+    * @exception NotCompliantMBeanException if the management interface
+    *            does not follow the JMX design patterns or this
+    *            does not implement the interface
+    */
+   protected MXBeanDelegate(Class mbeanInterface) throws NotCompliantMBeanException
+   {
+      this.implementation = this;
+      this.mbeanInterface = mbeanInterface;
+   }
+
+   /**
+    * Retrieve the implementation object
+    *
+    * @return the implementation
+    */
+   public Object getImplementation()
+   {
+      return implementation;
+   }
+
+   /**
+    * Replace the implementation object
+    *
+    * @todo make this work after the mbean is registered
+    * @param implementation the new implementation
+    * @exception IllegalArgumentException for a null parameter
+    * @exception NotCompliantMBeanException if the new implementation
+    *            does not implement the interface supplied at
+    *            construction
+    */
+   public void setImplementation(Object implementation) throws NotCompliantMBeanException
+   {
+      if (implementation == null)
+         throw new IllegalArgumentException("Null implementation");
+      this.implementation = implementation;
+   }
+
+   /**
+    * Retrieve the implementation class
+    *
+    * @return the class of the implementation
+    */
+   public Class getImplementationClass()
+   {
+      return implementation.getClass();
+   }
+
+   /**
+    * Retrieve the management interface
+    *
+    * @return the management interface
+    */
+   public final Class getMBeanInterface()
+   {
+      return mbeanInterface;
+   }
+
+   public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
+   {
+      try
+      {
+         OpenMBeanAttributeInfo attributeInfo = attributeMapping.get(attribute);
+         if (attributeInfo == null)
+            throw new AttributeNotFoundException(attribute);
+         MBeanAttributeInfo mbeanAttributeInfo = (MBeanAttributeInfo) attributeInfo;
+         if (mbeanAttributeInfo.isReadable() == false)
+            throw new AttributeNotFoundException("Attribute is not readable: " + attribute);
+         
+         Method method = getters.get(attribute);
+         if (method == null)
+            throw new NoSuchMethodException("No method to get attribute: " + attribute);
+         
+         Object result = method.invoke(implementation, new Object[0]);
+         
+         return MXBeanUtils.construct(attributeInfo.getOpenType(), result, "Get attribute: " + attribute);
+      }
+      catch (Exception e)
+      {
+         JMException result = ExceptionHandler.handleException(e);
+         if (result instanceof AttributeNotFoundException)
+            throw (AttributeNotFoundException)result;
+         if (result instanceof MBeanException)
+            throw (MBeanException)result;
+         if (result instanceof ReflectionException)
+            throw (ReflectionException)result;
+         throw new MBeanException(e, "Cannot get attribute: " + attribute);
+      }
+   }
+
+   public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
+   {
+      try
+      {
+         String attributeName = attribute.getName();
+         OpenMBeanAttributeInfo attributeInfo = attributeMapping.get(attributeName);
+         if (attributeInfo == null)
+            throw new AttributeNotFoundException(attributeName);
+         MBeanAttributeInfo mbeanAttributeInfo = (MBeanAttributeInfo) attributeInfo;
+         if (mbeanAttributeInfo.isWritable() == false)
+            throw new AttributeNotFoundException("Attribute is not writable: " + attributeName);
+         
+         Method method = setters.get(attributeName);
+         if (method == null)
+            throw new NoSuchMethodException("No method to set attribute: " + attribute);
+
+         Object value = MXBeanUtils.reconstruct(method.getGenericParameterTypes()[0], attribute.getValue(), method);
+         
+         method.invoke(implementation, new Object[] { value });
+      }
+      catch (Exception e)
+      {
+         JMException result = ExceptionHandler.handleException(e);
+         if (result instanceof AttributeNotFoundException)
+            throw (AttributeNotFoundException)result;
+         if (result instanceof InvalidAttributeValueException)
+            throw (InvalidAttributeValueException)result;
+         if (result instanceof MBeanException)
+            throw (MBeanException)result;
+         if (result instanceof ReflectionException)
+            throw (ReflectionException)result;
+         throw new MBeanException(e, "Cannot set attribute: " + attribute);
+      }
+   }
+
+   public AttributeList getAttributes(String[] attributes)
+   {
+      try
+      {
+         AttributeList attrList = new AttributeList(attributes.length);
+         for (int i = 0; i < attributes.length; i++)
+         {
+            String name = attributes[i];
+            Object value = getAttribute(name);
+            attrList.add(new Attribute(name, value));
+         }
+         return attrList;
+      }
+      catch (Exception e)
+      {
+         JMException result = ExceptionHandler.handleException(e);
+         // Why is this not throwing the same exceptions as getAttribute(String)
+         throw new RuntimeException("Cannot get attributes", result);
+      }
+   }
+
+   public AttributeList setAttributes(AttributeList attributes)
+   {
+      AttributeList result = new AttributeList(attributes.size());
+      for (int i = 0; i < attributes.size(); ++i)
+      {
+         Attribute attr = (Attribute) attributes.get(i);
+         String name = attr.getName();
+         try
+         {
+            setAttribute(attr);
+            result.add(new Attribute(name, attr.getValue()));
+         }
+         catch (Throwable t)
+         {
+            JMException e = ExceptionHandler.handleException(t);
+            result.add(new Attribute(name, e));
+         }
+      }
+      return result;
+   }
+
+   public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException
+   {
+      try
+      {
+         String signatureString = getSignatureString(actionName, signature);
+         Method method = operations.get(signatureString);
+         if (method == null)
+            throw new NoSuchMethodException("Cannot find method for operation: " + signatureString);
+
+         Object[] parameters = params;
+         if (params.length > 0)
+         {
+            parameters = new Object[params.length];
+            Type[] parameterTypes = method.getGenericParameterTypes();
+            for (int i = 0; i < parameters.length; ++i)
+               parameters[i] = MXBeanUtils.reconstruct(parameterTypes[i], params[i], method);
+         }
+         
+         Object result = method.invoke(implementation, parameters);
+         
+         if (result == null)
+            return null;
+         Type returnType = method.getGenericReturnType();
+         return MXBeanUtils.construct(returnType, result, method);
+      }
+      catch (Exception e)
+      {
+         JMException result = ExceptionHandler.handleException(e);
+         if (result instanceof MBeanException)
+            throw (MBeanException)result;
+         if (result instanceof ReflectionException)
+            throw (ReflectionException)result;
+         throw new MBeanException(e, "Cannot invoke: " + actionName);
+      }
+   }
+
+   public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
+   {
+      return name;
+   }
+
+   public void postRegister(Boolean registrationDone)
+   {
+   }
+
+   public void preDeregister() throws Exception
+   {
+   }
+
+   public void postDeregister()
+   {
+   }
+
+   public MBeanInfo getMBeanInfo()
+   {
+      OpenMBeanInfo info = getCachedMBeanInfo();
+      if (info == null)
+      {
+         try
+         {
+            info = buildMBeanInfo();
+            cacheMBeanInfo(info);
+         }
+         catch (NotCompliantMBeanException e)
+         {
+            log.error("Unexcepted exception", e);
+            throw new IllegalStateException("Unexcepted exception " + e.toString());
+         }
+
+      }
+      return (MBeanInfo) info;
+   }
+
+   /**
+    * Retrieve the cached mbean info
+    *
+    * @return the cached mbean info
+    */
+   public OpenMBeanInfo getCachedMBeanInfo()
+   {
+      return cachedMBeanInfo;
+   }
+
+   /**
+    * Sets the cached mbean info
+    *
+    * @param info the mbeaninfo to cache, can be null to erase the cache
+    */
+   public void cacheMBeanInfo(OpenMBeanInfo info)
+   {
+      cachedMBeanInfo = info;
+      Map<String, OpenMBeanAttributeInfo> attributeMapping = new HashMap<String, OpenMBeanAttributeInfo>();
+      MBeanAttributeInfo[] attributes = info.getAttributes();
+      for (int i = 0; i < attributes.length; ++i)
+      {
+         OpenMBeanAttributeInfo attribute = (OpenMBeanAttributeInfo) attributes[i];
+         attributeMapping.put(attribute.getName(), attribute);
+      }
+      this.attributeMapping = attributeMapping;
+
+      try
+      {
+         HashMap<String, Method> getters = new HashMap<String, Method>();
+         HashMap<String, Method> setters = new HashMap<String, Method>();
+
+         HashMap<String, Method> operations = new HashMap<String, Method>();
+
+         Method[] methods = implementation.getClass().getMethods();
+         for (Method method : methods)
+         {
+            String methodName = method.getName();
+            Type[] signature = method.getGenericParameterTypes();
+            Type returnType = method.getGenericReturnType();
+
+            if (methodName.startsWith("set") &&
+                methodName.length() > 3 && 
+                signature.length == 1 && 
+                returnType == Void.TYPE)
+            {
+               String key = methodName.substring(3, methodName.length());
+               Method setter = setters.get(key);
+               if (setter != null && setter.getGenericParameterTypes()[0].equals(signature[0]) == false)
+                  throw new RuntimeException("overloaded type for attribute set: " + key);
+               setters.put(key, method);
+            }
+            else if (methodName.startsWith("get") &&
+                     methodName.length() > 3 &&
+                     signature.length == 0 &&
+                     returnType != Void.TYPE)
+            {
+               String key = methodName.substring(3, methodName.length());
+               Method getter = getters.get(key);
+               if (getter != null && getter.getName().startsWith("is"))
+                  throw new RuntimeException("mixed use of get/is for attribute " + key);
+               getters.put(key, method);
+            }
+            else if (methodName.startsWith("is") &&
+                     methodName.length() > 2 &&
+                     signature.length == 0 &&
+                     returnType == Boolean.TYPE)
+            {
+               String key = methodName.substring(2, methodName.length());
+               Method getter = getters.get(key);
+               if (getter != null && getter.getName().startsWith("get"))
+                  throw new RuntimeException("mixed use of get/is for attribute " + key);
+               getters.put(key, method);
+            }
+            else
+            {
+               operations.put(getSignatureString(method), method);
+            }
+         }
+         this.getters = getters;
+         this.setters = setters;
+         this.operations = operations;
+      }
+      catch (RuntimeException e)
+      {
+         log.error("Error: ", e);
+         throw e;
+      }
+      catch (Error e)
+      {
+         log.error("Error: ", e);
+         throw e;
+      }
+   }
+
+   /**
+    * Builds a default MBeanInfo for this MBean, using the Management Interface specified for this MBean.
+    *
+    * While building the MBeanInfo, this method calls the customization hooks that make it possible for subclasses to
+    * supply their custom descriptions, parameter names, etc...
+    * 
+    * @return the mbean info
+    * @throws NotCompliantMBeanException when not a valid mbean
+    */
+   public OpenMBeanInfo buildMBeanInfo() throws NotCompliantMBeanException
+   {
+      if (implementation == null)
+         throw new IllegalArgumentException("Null implementation");
+
+      MXBeanMetaData metadata = new MXBeanMetaData(implementation, mbeanInterface);
+      return (OpenMBeanInfo) metadata.build();
+   }
+
+   /**
+    * Get a signature string for a method
+    * 
+    * @param method the method
+    * @return the signature
+    */
+   private String getSignatureString(Method method)
+   {
+      String name = method.getName();
+      Class[] signature = method.getParameterTypes();
+      StringBuilder buffer = new StringBuilder(512);
+      buffer.append(name);
+      buffer.append("(");
+      if (signature != null)
+      {
+         for (int i = 0; i < signature.length; i++)
+         {
+            buffer.append(signature[i].getName());
+            if (i < signature.length-1)
+               buffer.append(",");
+         }
+      }
+      buffer.append(")");
+      return buffer.toString();
+   }
+
+   /**
+    * Get a signature string for a method
+    * 
+    * @param operation the operation
+    * @param signature the signature
+    * @return the signature
+    */
+   private String getSignatureString(String operation, String[] signature)
+   {
+      StringBuilder buffer = new StringBuilder(512);
+      buffer.append(operation);
+      buffer.append("(");
+      if (signature != null)
+      {
+         for (int i = 0; i < signature.length; i++)
+         {
+            buffer.append(signature[i]);
+            if (i < signature.length-1)
+               buffer.append(",");
+         }
+      }
+      buffer.append(")");
+      return buffer.toString();
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanFactory.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanFactory.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanFactory.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,77 +1,77 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.Proxy;
-
-import javax.management.DynamicMBean;
-import javax.management.MBeanServerConnection;
-import javax.management.ObjectName;
-
-/**
- * MXBeanFactory.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanFactory
-{
-   /**
-    * Create a proxy
-    * 
-    * @param <T> the interface type
-    * @param mbeanServerConnection the connection
-    * @param objectName the object name
-    * @param mxbeanInterface the interface
-    * @return the proxy
-    */
-   public static <T> T makeProxy(MBeanServerConnection mbeanServerConnection, ObjectName objectName, Class<T> mxbeanInterface)
-   {
-      MXBeanInvocationHandler handler = new MXBeanInvocationHandler(mbeanServerConnection, mxbeanInterface, objectName);
-      Object object = Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler);
-      return mxbeanInterface.cast(object);
-   }
-   
-   /**
-    * Create a new MXBean
-    * 
-    * @param resource the resource
-    * @return the MXBean
-    */
-   public static DynamicMBean newMXBean(Object resource)
-   {
-      return MXBeanUtils.createMXBean(resource, null);
-   }
-
-   /**
-    * Create a new MXBean
-    * 
-    * @param <T> the interface type
-    * @param resource the resource
-    * @param mxbeanInterface the interface
-    * @return the MXBean
-    */
-   public static <T> DynamicMBean newMXBean(T resource, Class<T> mxbeanInterface)
-   {
-      return MXBeanUtils.createMXBean(resource, mxbeanInterface);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.Proxy;
+
+import javax.management.DynamicMBean;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+
+/**
+ * MXBeanFactory.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanFactory
+{
+   /**
+    * Create a proxy
+    * 
+    * @param <T> the interface type
+    * @param mbeanServerConnection the connection
+    * @param objectName the object name
+    * @param mxbeanInterface the interface
+    * @return the proxy
+    */
+   public static <T> T makeProxy(MBeanServerConnection mbeanServerConnection, ObjectName objectName, Class<T> mxbeanInterface)
+   {
+      MXBeanInvocationHandler handler = new MXBeanInvocationHandler(mbeanServerConnection, mxbeanInterface, objectName);
+      Object object = Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler);
+      return mxbeanInterface.cast(object);
+   }
+   
+   /**
+    * Create a new MXBean
+    * 
+    * @param resource the resource
+    * @return the MXBean
+    */
+   public static DynamicMBean newMXBean(Object resource)
+   {
+      return MXBeanUtils.createMXBean(resource, null);
+   }
+
+   /**
+    * Create a new MXBean
+    * 
+    * @param <T> the interface type
+    * @param resource the resource
+    * @param mxbeanInterface the interface
+    * @return the MXBean
+    */
+   public static <T> DynamicMBean newMXBean(T resource, Class<T> mxbeanInterface)
+   {
+      return MXBeanUtils.createMXBean(resource, mxbeanInterface);
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanInvocationHandler.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanInvocationHandler.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanInvocationHandler.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,497 +1,497 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.io.Serializable;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.management.Attribute;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.MBeanServerConnection;
-import javax.management.NotificationBroadcaster;
-import javax.management.NotificationEmitter;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.openmbean.OpenMBeanAttributeInfo;
-import javax.management.openmbean.OpenMBeanInfo;
-import javax.management.openmbean.OpenMBeanOperationInfo;
-import javax.management.openmbean.OpenMBeanParameterInfo;
-import javax.management.openmbean.OpenType;
-
-import org.jboss.mx.util.JMXExceptionDecoder;
-
-/**
- * MXBeanInvocationHandler.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanInvocationHandler implements InvocationHandler, Serializable
-{
-   /** The serialVersionUID */
-   private static final long serialVersionUID = -2872014223541692039L;
-   
-   private static final Class[] LISTENER = new Class[] { NotificationListener.class };
-   private static final Class[] TRIPLET = new Class[] { NotificationListener.class, NotificationFilter.class, Object.class };
-
-   private static final Method EQUALS;
-   private static final Method HASH_CODE;
-   private static final Method TO_STRING;
-
-   private static final Method ADD_NOTIFICATION_LISTENER;
-   private static final Method GET_NOTIFICATION_INFO;
-   private static final Method REMOVE_NOTIFICATION_LISTENER;
-   private static final Method REMOVE_NOTIFICATION_LISTENER_TRIPLET;
-
-   /** The connection */
-   private MBeanServerConnection mbeanServerConnection;
-   
-   /** The interface */
-   private Class<?> mxbeanInterface;
-   
-   /** The object name */
-   private ObjectName objectName;
-
-   /** The method mappings */
-   private transient Map<Method, Action> mappings;
-   
-   /** The MBean Info */
-   private transient OpenMBeanInfo mbeanInfo;
-
-   static
-   {
-      try
-      {
-         ADD_NOTIFICATION_LISTENER = NotificationBroadcaster.class.getDeclaredMethod("addNotificationListener",  TRIPLET);
-         GET_NOTIFICATION_INFO = NotificationBroadcaster.class.getDeclaredMethod("getNotificationInfo",  new Class[0]);
-         REMOVE_NOTIFICATION_LISTENER = NotificationBroadcaster.class.getDeclaredMethod("removeNotificationListener",  LISTENER);
-         REMOVE_NOTIFICATION_LISTENER_TRIPLET = NotificationEmitter.class.getDeclaredMethod("removeNotificationListener",  TRIPLET);
-         EQUALS = Object.class.getDeclaredMethod("equals",  new Class[] { Object.class });
-         HASH_CODE = Object.class.getDeclaredMethod("hashCode",  new Class[0]);
-         TO_STRING = Object.class.getDeclaredMethod("toString",  new Class[0]);
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException(e);
-      }
-   }
-   
-   /**
-    * Create a new MXBeanInvocationHandler.
-    * 
-    * @param mbeanServerConnection the connection
-    * @param mxbeanInterface the interface
-    * @param objectName the object name
-    */
-   public MXBeanInvocationHandler(MBeanServerConnection mbeanServerConnection, Class<?> mxbeanInterface, ObjectName objectName)
-   {
-      if (mbeanServerConnection == null)
-         throw new IllegalArgumentException("Null mbeanServerConnection");
-      if (mxbeanInterface == null)
-         throw new IllegalArgumentException("Null mxmbeanInterface");
-      if (objectName == null)
-         throw new IllegalArgumentException("Null objectName");
-
-      this.mbeanServerConnection = mbeanServerConnection;
-      this.mxbeanInterface = mxbeanInterface;
-      this.objectName = objectName;
-   }
-
-   /**
-    * Get the mbeanServerConnection.
-    * 
-    * @return the mbeanServerConnection.
-    */
-   public MBeanServerConnection getMBeanServerConnection()
-   {
-      return mbeanServerConnection;
-   }
-
-   /**
-    * Get the mxbeanInterface.
-    * 
-    * @return the mxbeanInterface.
-    */
-   public Class<?> getMXBeanInterface()
-   {
-      return mxbeanInterface;
-   }
-
-   /**
-    * Get the objectName.
-    * 
-    * @return the objectName.
-    */
-   public ObjectName getObjectName()
-   {
-      return objectName;
-   }
-
-   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
-   {
-      try
-      {
-         return getAction(proxy, method).perform(args);
-      }
-      catch (Throwable t)
-      {
-         throw JMXExceptionDecoder.decode(t);
-      }
-   }
-
-   /**
-    * Get the actions for this method
-    * @param proxy the proxy
-    * @param method the method
-    * @return the action
-    * @throws Throwable for any error
-    */
-   private Action getAction(Object proxy, Method method) throws Throwable
-   {
-      // Doesn't really matter if the mappings are
-      // setup twice by two different threads, they are the same.
-      if (mappings == null)
-         mappings = getMappings(proxy);
-
-      // Check the action
-      Action result = mappings.get(method);
-      if (result == null)
-         throw new UnsupportedOperationException("Unknown method: " + method);
-
-      // Return the result
-      return result;
-   }
-
-   /**
-    * Set up the mappings
-    * 
-    * @param proxy the proxy 
-    * @return the mapping
-    * @throws Throwable for any error
-    */
-   private Map<Method, Action> getMappings(Object proxy) throws Throwable
-   {
-      mbeanInfo = (OpenMBeanInfo) mbeanServerConnection.getMBeanInfo(objectName);
-      Map<String, OpenMBeanAttributeInfo> attributesMap = new HashMap<String, OpenMBeanAttributeInfo>();
-      MBeanAttributeInfo[] attributes = mbeanInfo.getAttributes();
-      for (int i = 0; i < attributes.length; ++i)
-      {
-         OpenMBeanAttributeInfo openAttribute = (OpenMBeanAttributeInfo) attributes[i];
-         attributesMap.put(openAttribute.getName(), openAttribute);
-      }
-      MBeanOperationInfo[] operations = mbeanInfo.getOperations();
-      
-      Map<Method, Action> result = new HashMap<Method, Action>();
-
-      Class[] interfaces = proxy.getClass().getInterfaces();
-      for (int i = 0; i < interfaces.length; ++i)
-      {
-         if (NotificationBroadcaster.class.isAssignableFrom(interfaces[i]))
-         {
-            result.put(ADD_NOTIFICATION_LISTENER, new AddNotificationListenerAction());
-            result.put(GET_NOTIFICATION_INFO, new GetNotificationInfoAction());
-            result.put(REMOVE_NOTIFICATION_LISTENER, new RemoveNotificationListenerAction());
-            result.put(REMOVE_NOTIFICATION_LISTENER_TRIPLET, new RemoveNotificationListenerTripletAction());
-         }
-         else
-         {
-            Method[] methods = interfaces[i].getMethods();
-            for (Method method : methods)
-            {
-               String methodName = method.getName();
-               Class returnType = method.getReturnType();
-               Class[] parameterTypes = method.getParameterTypes();
-
-               // Getter
-               if (methodName.startsWith("get")  && 
-                   methodName.length() > 3 &&
-                   Void.TYPE.equals(returnType) == false &&
-                   parameterTypes.length == 0)
-               {
-                  String name = methodName.substring(3);
-                  OpenMBeanAttributeInfo attribute = attributesMap.get(name);
-                  if (attribute != null)
-                  {
-                     Type type = method.getGenericReturnType();
-                     result.put(method, new GetAction(attribute, type));
-                     continue;
-                  }
-               }
-               // Getter (is)
-               else if(methodName.startsWith("is")  && 
-                     methodName.length() > 2 &&
-                     Boolean.TYPE.equals(returnType) &&
-                     parameterTypes.length == 0)
-               {
-                  String name = methodName.substring(2);
-                  OpenMBeanAttributeInfo attribute = attributesMap.get(name);
-                  if (attribute != null)
-                  {
-                     Type type = method.getGenericReturnType();
-                     result.put(method, new GetAction(attribute, type));
-                     continue;
-                  }
-               }
-               // Setter
-               else if(methodName.startsWith("set")  && 
-                     methodName.length() > 3 &&
-                     Void.TYPE.equals(returnType) &&
-                     parameterTypes.length == 1)
-               {
-                  String name = methodName.substring(3);
-                  OpenMBeanAttributeInfo attribute = attributesMap.get(name);
-                  if (attribute != null)
-                  {
-                     result.put(method, new SetAction(attribute));
-                     continue;
-                  }
-               }
-               // Invoker
-               OpenMBeanOperationInfo operation = findOperation(methodName, method.getGenericParameterTypes(), operations);
-               if (operation != null)
-               {
-                  String[] signature = getSignature(method);
-                  Type type = method.getGenericReturnType();
-                  result.put(method, new InvokeAction(operation, signature, type));
-               }
-               else
-               {
-                  result.put(method, new InvalidAction(method));
-               }
-            }
-         }
-      }
-
-      // Add the Object mappings
-      result.put(EQUALS, new EqualsAction());
-      result.put(HASH_CODE, new HashCodeAction());
-      result.put(TO_STRING, new ToStringAction());
-      
-      return result;
-   }
-
-   private static OpenMBeanOperationInfo findOperation(String name, Type[] parameterTypes, MBeanOperationInfo[] operations)
-   {
-      OpenType[] signature = getSignature(parameterTypes);
-      for (int i = 0; i < operations.length; ++i)
-      {
-         if (operations[i].getName().equals(name) == false)
-            continue;
-         MBeanParameterInfo[] parameters = operations[i].getSignature();
-         boolean match = true;
-         for (int p = 0; p < parameters.length && match; ++p)
-         {
-            OpenMBeanParameterInfo openMBeanParameterInfo = (OpenMBeanParameterInfo) parameters[p];
-            if (signature[p].equals(openMBeanParameterInfo.getOpenType()) == false)
-               match = false;
-         }
-         if (match)
-            return (OpenMBeanOperationInfo) operations[i];
-      }
-      return null;
-   }
-   
-   private static String[] getSignature(final Method method)
-   {
-      Class[] parameterTypes = method.getParameterTypes();
-      String[] signature = new String[parameterTypes.length];
-      for (int p = 0; p < parameterTypes.length; ++p)
-          signature[p] = parameterTypes[p].getName();
-      return signature;
-   }
-   
-   private static OpenType[] getSignature(final Type[] parameterTypes)
-   {
-      OpenType[] signature = new OpenType[parameterTypes.length];
-      for (int p = 0; p < parameterTypes.length; ++p)
-          signature[p] = MXBeanUtils.getOpenType(parameterTypes[p]);
-      return signature;
-   }
-
-   private interface Action
-   {
-      public Object perform(Object[] args) throws Throwable;
-   }
-
-   private class GetAction implements Action
-   {
-      private OpenMBeanAttributeInfo attribute;
-      private Type type;
-
-      public GetAction(OpenMBeanAttributeInfo attribute, Type type)
-      {
-         this.attribute = attribute;
-         this.type = type;
-      }
-
-      public Object perform(Object[] args) throws Throwable
-      {
-         Object result = mbeanServerConnection.getAttribute(objectName, attribute.getName());
-         
-         return MXBeanUtils.reconstruct(attribute.getOpenType(), type, result, "Get attribute: " + attribute.getName());
-      }
-   }
-
-   private class SetAction implements Action
-   {
-      private OpenMBeanAttributeInfo attribute;
-
-      public SetAction(OpenMBeanAttributeInfo attribute)
-      {
-         this.attribute = attribute;
-      }
-
-      public Object perform(Object[] args) throws Throwable
-      {
-         Object value = MXBeanUtils.construct(attribute.getOpenType(), args[0], "Set attribute: " + attribute.getName());
-         
-         Attribute attr = new Attribute(attribute.getName(), value);
-         mbeanServerConnection.setAttribute(objectName, attr);
-         return null;
-      }
-   }
-
-   private class InvokeAction implements Action
-   {
-      private OpenMBeanOperationInfo operation;
-      private String[] signature;
-      private Type type;
-
-      public InvokeAction(OpenMBeanOperationInfo operation, String[] signature, Type type)
-      {
-         this.operation = operation;
-         this.signature = signature;
-         this.type = type;
-      }
-
-      public Object perform(Object[] args) throws Throwable
-      {
-         MBeanParameterInfo[] parameters = operation.getSignature();
-         Object[] arguments = new Object[args.length];
-         for (int i = 0; i < parameters.length; ++i)
-         {
-            OpenMBeanParameterInfo parameter = (OpenMBeanParameterInfo) parameters[i];
-            arguments[i] = MXBeanUtils.construct(parameter.getOpenType(), args[i], operation.getName());
-         }
-         
-         Object result = mbeanServerConnection.invoke(objectName, operation.getName(), arguments, signature);
-         
-         return MXBeanUtils.reconstruct(operation.getReturnOpenType(), type, result, operation.getName());
-      }
-   }
-
-   private class InvalidAction implements Action
-   {
-      private Method method;
-      
-      public InvalidAction(Method method)
-      {
-         this.method = method;
-      }
-      
-      public Object perform(Object[] args) throws Throwable
-      {
-         throw new UnsupportedOperationException(method + " is not mapped to the MBeanInfo operations for " + objectName);
-      }
-   }
-   
-   private class EqualsAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         Object object = args[0];
-         if (object == null || object instanceof Proxy == false)
-            return false;
-         InvocationHandler handler = Proxy.getInvocationHandler(object);
-         if (handler instanceof MXBeanInvocationHandler == false)
-            return false;
-         MXBeanInvocationHandler other = (MXBeanInvocationHandler) handler;
-         return mbeanServerConnection.equals(other.mbeanServerConnection) && objectName.equals(other.objectName);
-      }
-   }
-   
-   private class HashCodeAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         return objectName.hashCode();
-      }
-   }
-   
-   private class ToStringAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         return "MXBeanInvocationHandler(" + objectName + ")";
-      }
-   }
-   
-   private class AddNotificationListenerAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         NotificationListener listener = (NotificationListener) args[0];
-         NotificationFilter filter = (NotificationFilter) args[1];
-         Object handback = args[2];
-         mbeanServerConnection.addNotificationListener(objectName, listener, filter, handback);
-         return null;
-      }
-   }
-
-   private class GetNotificationInfoAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         return mbeanServerConnection.getMBeanInfo(objectName).getNotifications();
-      }
-   }
-
-   private class RemoveNotificationListenerAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         NotificationListener listener = (NotificationListener) args[0];
-         mbeanServerConnection.removeNotificationListener(objectName, listener);
-         return null;
-      }
-   }
-
-   private class RemoveNotificationListenerTripletAction implements Action
-   {
-      public Object perform(Object[] args) throws Throwable
-      {
-         NotificationListener listener = (NotificationListener) args[0];
-         NotificationFilter filter = (NotificationFilter) args[1];
-         Object handback = args[2];
-         mbeanServerConnection.removeNotificationListener(objectName, listener, filter, handback);
-         return null;
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.io.Serializable;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.Attribute;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanOperationInfo;
+import javax.management.MBeanParameterInfo;
+import javax.management.MBeanServerConnection;
+import javax.management.NotificationBroadcaster;
+import javax.management.NotificationEmitter;
+import javax.management.NotificationFilter;
+import javax.management.NotificationListener;
+import javax.management.ObjectName;
+import javax.management.openmbean.OpenMBeanAttributeInfo;
+import javax.management.openmbean.OpenMBeanInfo;
+import javax.management.openmbean.OpenMBeanOperationInfo;
+import javax.management.openmbean.OpenMBeanParameterInfo;
+import javax.management.openmbean.OpenType;
+
+import org.jboss.mx.util.JMXExceptionDecoder;
+
+/**
+ * MXBeanInvocationHandler.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanInvocationHandler implements InvocationHandler, Serializable
+{
+   /** The serialVersionUID */
+   private static final long serialVersionUID = -2872014223541692039L;
+   
+   private static final Class[] LISTENER = new Class[] { NotificationListener.class };
+   private static final Class[] TRIPLET = new Class[] { NotificationListener.class, NotificationFilter.class, Object.class };
+
+   private static final Method EQUALS;
+   private static final Method HASH_CODE;
+   private static final Method TO_STRING;
+
+   private static final Method ADD_NOTIFICATION_LISTENER;
+   private static final Method GET_NOTIFICATION_INFO;
+   private static final Method REMOVE_NOTIFICATION_LISTENER;
+   private static final Method REMOVE_NOTIFICATION_LISTENER_TRIPLET;
+
+   /** The connection */
+   private MBeanServerConnection mbeanServerConnection;
+   
+   /** The interface */
+   private Class<?> mxbeanInterface;
+   
+   /** The object name */
+   private ObjectName objectName;
+
+   /** The method mappings */
+   private transient Map<Method, Action> mappings;
+   
+   /** The MBean Info */
+   private transient OpenMBeanInfo mbeanInfo;
+
+   static
+   {
+      try
+      {
+         ADD_NOTIFICATION_LISTENER = NotificationBroadcaster.class.getDeclaredMethod("addNotificationListener",  TRIPLET);
+         GET_NOTIFICATION_INFO = NotificationBroadcaster.class.getDeclaredMethod("getNotificationInfo",  new Class[0]);
+         REMOVE_NOTIFICATION_LISTENER = NotificationBroadcaster.class.getDeclaredMethod("removeNotificationListener",  LISTENER);
+         REMOVE_NOTIFICATION_LISTENER_TRIPLET = NotificationEmitter.class.getDeclaredMethod("removeNotificationListener",  TRIPLET);
+         EQUALS = Object.class.getDeclaredMethod("equals",  new Class[] { Object.class });
+         HASH_CODE = Object.class.getDeclaredMethod("hashCode",  new Class[0]);
+         TO_STRING = Object.class.getDeclaredMethod("toString",  new Class[0]);
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+   
+   /**
+    * Create a new MXBeanInvocationHandler.
+    * 
+    * @param mbeanServerConnection the connection
+    * @param mxbeanInterface the interface
+    * @param objectName the object name
+    */
+   public MXBeanInvocationHandler(MBeanServerConnection mbeanServerConnection, Class<?> mxbeanInterface, ObjectName objectName)
+   {
+      if (mbeanServerConnection == null)
+         throw new IllegalArgumentException("Null mbeanServerConnection");
+      if (mxbeanInterface == null)
+         throw new IllegalArgumentException("Null mxmbeanInterface");
+      if (objectName == null)
+         throw new IllegalArgumentException("Null objectName");
+
+      this.mbeanServerConnection = mbeanServerConnection;
+      this.mxbeanInterface = mxbeanInterface;
+      this.objectName = objectName;
+   }
+
+   /**
+    * Get the mbeanServerConnection.
+    * 
+    * @return the mbeanServerConnection.
+    */
+   public MBeanServerConnection getMBeanServerConnection()
+   {
+      return mbeanServerConnection;
+   }
+
+   /**
+    * Get the mxbeanInterface.
+    * 
+    * @return the mxbeanInterface.
+    */
+   public Class<?> getMXBeanInterface()
+   {
+      return mxbeanInterface;
+   }
+
+   /**
+    * Get the objectName.
+    * 
+    * @return the objectName.
+    */
+   public ObjectName getObjectName()
+   {
+      return objectName;
+   }
+
+   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+   {
+      try
+      {
+         return getAction(proxy, method).perform(args);
+      }
+      catch (Throwable t)
+      {
+         throw JMXExceptionDecoder.decode(t);
+      }
+   }
+
+   /**
+    * Get the actions for this method
+    * @param proxy the proxy
+    * @param method the method
+    * @return the action
+    * @throws Throwable for any error
+    */
+   private Action getAction(Object proxy, Method method) throws Throwable
+   {
+      // Doesn't really matter if the mappings are
+      // setup twice by two different threads, they are the same.
+      if (mappings == null)
+         mappings = getMappings(proxy);
+
+      // Check the action
+      Action result = mappings.get(method);
+      if (result == null)
+         throw new UnsupportedOperationException("Unknown method: " + method);
+
+      // Return the result
+      return result;
+   }
+
+   /**
+    * Set up the mappings
+    * 
+    * @param proxy the proxy 
+    * @return the mapping
+    * @throws Throwable for any error
+    */
+   private Map<Method, Action> getMappings(Object proxy) throws Throwable
+   {
+      mbeanInfo = (OpenMBeanInfo) mbeanServerConnection.getMBeanInfo(objectName);
+      Map<String, OpenMBeanAttributeInfo> attributesMap = new HashMap<String, OpenMBeanAttributeInfo>();
+      MBeanAttributeInfo[] attributes = mbeanInfo.getAttributes();
+      for (int i = 0; i < attributes.length; ++i)
+      {
+         OpenMBeanAttributeInfo openAttribute = (OpenMBeanAttributeInfo) attributes[i];
+         attributesMap.put(openAttribute.getName(), openAttribute);
+      }
+      MBeanOperationInfo[] operations = mbeanInfo.getOperations();
+      
+      Map<Method, Action> result = new HashMap<Method, Action>();
+
+      Class[] interfaces = proxy.getClass().getInterfaces();
+      for (int i = 0; i < interfaces.length; ++i)
+      {
+         if (NotificationBroadcaster.class.isAssignableFrom(interfaces[i]))
+         {
+            result.put(ADD_NOTIFICATION_LISTENER, new AddNotificationListenerAction());
+            result.put(GET_NOTIFICATION_INFO, new GetNotificationInfoAction());
+            result.put(REMOVE_NOTIFICATION_LISTENER, new RemoveNotificationListenerAction());
+            result.put(REMOVE_NOTIFICATION_LISTENER_TRIPLET, new RemoveNotificationListenerTripletAction());
+         }
+         else
+         {
+            Method[] methods = interfaces[i].getMethods();
+            for (Method method : methods)
+            {
+               String methodName = method.getName();
+               Class returnType = method.getReturnType();
+               Class[] parameterTypes = method.getParameterTypes();
+
+               // Getter
+               if (methodName.startsWith("get")  && 
+                   methodName.length() > 3 &&
+                   Void.TYPE.equals(returnType) == false &&
+                   parameterTypes.length == 0)
+               {
+                  String name = methodName.substring(3);
+                  OpenMBeanAttributeInfo attribute = attributesMap.get(name);
+                  if (attribute != null)
+                  {
+                     Type type = method.getGenericReturnType();
+                     result.put(method, new GetAction(attribute, type));
+                     continue;
+                  }
+               }
+               // Getter (is)
+               else if(methodName.startsWith("is")  && 
+                     methodName.length() > 2 &&
+                     Boolean.TYPE.equals(returnType) &&
+                     parameterTypes.length == 0)
+               {
+                  String name = methodName.substring(2);
+                  OpenMBeanAttributeInfo attribute = attributesMap.get(name);
+                  if (attribute != null)
+                  {
+                     Type type = method.getGenericReturnType();
+                     result.put(method, new GetAction(attribute, type));
+                     continue;
+                  }
+               }
+               // Setter
+               else if(methodName.startsWith("set")  && 
+                     methodName.length() > 3 &&
+                     Void.TYPE.equals(returnType) &&
+                     parameterTypes.length == 1)
+               {
+                  String name = methodName.substring(3);
+                  OpenMBeanAttributeInfo attribute = attributesMap.get(name);
+                  if (attribute != null)
+                  {
+                     result.put(method, new SetAction(attribute));
+                     continue;
+                  }
+               }
+               // Invoker
+               OpenMBeanOperationInfo operation = findOperation(methodName, method.getGenericParameterTypes(), operations);
+               if (operation != null)
+               {
+                  String[] signature = getSignature(method);
+                  Type type = method.getGenericReturnType();
+                  result.put(method, new InvokeAction(operation, signature, type));
+               }
+               else
+               {
+                  result.put(method, new InvalidAction(method));
+               }
+            }
+         }
+      }
+
+      // Add the Object mappings
+      result.put(EQUALS, new EqualsAction());
+      result.put(HASH_CODE, new HashCodeAction());
+      result.put(TO_STRING, new ToStringAction());
+      
+      return result;
+   }
+
+   private static OpenMBeanOperationInfo findOperation(String name, Type[] parameterTypes, MBeanOperationInfo[] operations)
+   {
+      OpenType[] signature = getSignature(parameterTypes);
+      for (int i = 0; i < operations.length; ++i)
+      {
+         if (operations[i].getName().equals(name) == false)
+            continue;
+         MBeanParameterInfo[] parameters = operations[i].getSignature();
+         boolean match = true;
+         for (int p = 0; p < parameters.length && match; ++p)
+         {
+            OpenMBeanParameterInfo openMBeanParameterInfo = (OpenMBeanParameterInfo) parameters[p];
+            if (signature[p].equals(openMBeanParameterInfo.getOpenType()) == false)
+               match = false;
+         }
+         if (match)
+            return (OpenMBeanOperationInfo) operations[i];
+      }
+      return null;
+   }
+   
+   private static String[] getSignature(final Method method)
+   {
+      Class[] parameterTypes = method.getParameterTypes();
+      String[] signature = new String[parameterTypes.length];
+      for (int p = 0; p < parameterTypes.length; ++p)
+          signature[p] = parameterTypes[p].getName();
+      return signature;
+   }
+   
+   private static OpenType[] getSignature(final Type[] parameterTypes)
+   {
+      OpenType[] signature = new OpenType[parameterTypes.length];
+      for (int p = 0; p < parameterTypes.length; ++p)
+          signature[p] = MXBeanUtils.getOpenType(parameterTypes[p]);
+      return signature;
+   }
+
+   private interface Action
+   {
+      public Object perform(Object[] args) throws Throwable;
+   }
+
+   private class GetAction implements Action
+   {
+      private OpenMBeanAttributeInfo attribute;
+      private Type type;
+
+      public GetAction(OpenMBeanAttributeInfo attribute, Type type)
+      {
+         this.attribute = attribute;
+         this.type = type;
+      }
+
+      public Object perform(Object[] args) throws Throwable
+      {
+         Object result = mbeanServerConnection.getAttribute(objectName, attribute.getName());
+         
+         return MXBeanUtils.reconstruct(attribute.getOpenType(), type, result, "Get attribute: " + attribute.getName());
+      }
+   }
+
+   private class SetAction implements Action
+   {
+      private OpenMBeanAttributeInfo attribute;
+
+      public SetAction(OpenMBeanAttributeInfo attribute)
+      {
+         this.attribute = attribute;
+      }
+
+      public Object perform(Object[] args) throws Throwable
+      {
+         Object value = MXBeanUtils.construct(attribute.getOpenType(), args[0], "Set attribute: " + attribute.getName());
+         
+         Attribute attr = new Attribute(attribute.getName(), value);
+         mbeanServerConnection.setAttribute(objectName, attr);
+         return null;
+      }
+   }
+
+   private class InvokeAction implements Action
+   {
+      private OpenMBeanOperationInfo operation;
+      private String[] signature;
+      private Type type;
+
+      public InvokeAction(OpenMBeanOperationInfo operation, String[] signature, Type type)
+      {
+         this.operation = operation;
+         this.signature = signature;
+         this.type = type;
+      }
+
+      public Object perform(Object[] args) throws Throwable
+      {
+         MBeanParameterInfo[] parameters = operation.getSignature();
+         Object[] arguments = new Object[args.length];
+         for (int i = 0; i < parameters.length; ++i)
+         {
+            OpenMBeanParameterInfo parameter = (OpenMBeanParameterInfo) parameters[i];
+            arguments[i] = MXBeanUtils.construct(parameter.getOpenType(), args[i], operation.getName());
+         }
+         
+         Object result = mbeanServerConnection.invoke(objectName, operation.getName(), arguments, signature);
+         
+         return MXBeanUtils.reconstruct(operation.getReturnOpenType(), type, result, operation.getName());
+      }
+   }
+
+   private class InvalidAction implements Action
+   {
+      private Method method;
+      
+      public InvalidAction(Method method)
+      {
+         this.method = method;
+      }
+      
+      public Object perform(Object[] args) throws Throwable
+      {
+         throw new UnsupportedOperationException(method + " is not mapped to the MBeanInfo operations for " + objectName);
+      }
+   }
+   
+   private class EqualsAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         Object object = args[0];
+         if (object == null || object instanceof Proxy == false)
+            return false;
+         InvocationHandler handler = Proxy.getInvocationHandler(object);
+         if (handler instanceof MXBeanInvocationHandler == false)
+            return false;
+         MXBeanInvocationHandler other = (MXBeanInvocationHandler) handler;
+         return mbeanServerConnection.equals(other.mbeanServerConnection) && objectName.equals(other.objectName);
+      }
+   }
+   
+   private class HashCodeAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         return objectName.hashCode();
+      }
+   }
+   
+   private class ToStringAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         return "MXBeanInvocationHandler(" + objectName + ")";
+      }
+   }
+   
+   private class AddNotificationListenerAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         NotificationListener listener = (NotificationListener) args[0];
+         NotificationFilter filter = (NotificationFilter) args[1];
+         Object handback = args[2];
+         mbeanServerConnection.addNotificationListener(objectName, listener, filter, handback);
+         return null;
+      }
+   }
+
+   private class GetNotificationInfoAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         return mbeanServerConnection.getMBeanInfo(objectName).getNotifications();
+      }
+   }
+
+   private class RemoveNotificationListenerAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         NotificationListener listener = (NotificationListener) args[0];
+         mbeanServerConnection.removeNotificationListener(objectName, listener);
+         return null;
+      }
+   }
+
+   private class RemoveNotificationListenerTripletAction implements Action
+   {
+      public Object perform(Object[] args) throws Throwable
+      {
+         NotificationListener listener = (NotificationListener) args[0];
+         NotificationFilter filter = (NotificationFilter) args[1];
+         Object handback = args[2];
+         mbeanServerConnection.removeNotificationListener(objectName, listener, filter, handback);
+         return null;
+      }
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanMetaData.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanMetaData.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanMetaData.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,417 +1,417 @@
-/*
-* 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.mx.mxbean;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.management.IntrospectionException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanNotificationInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.NotCompliantMBeanException;
-import javax.management.NotificationBroadcaster;
-import javax.management.openmbean.OpenMBeanAttributeInfo;
-import javax.management.openmbean.OpenMBeanAttributeInfoSupport;
-import javax.management.openmbean.OpenMBeanConstructorInfo;
-import javax.management.openmbean.OpenMBeanConstructorInfoSupport;
-import javax.management.openmbean.OpenMBeanInfoSupport;
-import javax.management.openmbean.OpenMBeanOperationInfo;
-import javax.management.openmbean.OpenMBeanOperationInfoSupport;
-import javax.management.openmbean.OpenMBeanParameterInfo;
-import javax.management.openmbean.OpenMBeanParameterInfoSupport;
-import javax.management.openmbean.OpenType;
-
-import org.jboss.mx.metadata.AbstractBuilder;
-
-/**
- * MXBeanMetaData
- *
- * @author  <a href="mailto:juha at jboss.org">Juha Lindfors</a>.
- * @author  <a href="mailto:trevor at protocool.com">Trevor Squires</a>.
- * @author  <a href="mailto:thomas.diesler at jboss.com">Thomas Diesler</a>.
- * @author  <a href="mailto:dimitris at jboss.org">Dimitris Andreadis</a>.
- */
-public class MXBeanMetaData extends AbstractBuilder
-{
-   /** The MBean */
-   private Object mbeanInstance;
-   
-   /** The class */
-   private Class<?> mbeanClass;
-   
-   /** The interface */
-   private Class<?> mbeanInterface;
-
-   /**
-    * Find the MXBean interface for a class
-    * 
-    * @param mbeanClass the mbean class
-    * @return the interface
-    */
-   public static Class<?> findMXBeanInterface(Class<?> mbeanClass)
-   {
-      Class<?> concrete = mbeanClass;
-      while (null != concrete)
-      {
-         Class result = findMXBeanInterface(concrete, concrete.getInterfaces());
-         if (null != result)
-            return result;
-         concrete = concrete.getSuperclass();
-      }
-      return null;
-   }
-
-   /**
-    * Find the MXBean interface for a class
-    * 
-    * @param concrete the mbean class
-    * @param interfaces the interfaces to consider
-    * @return the interface
-    */
-   private static Class<?> findMXBeanInterface(Class<?> concrete, Class<?>[] interfaces)
-   {
-      String mxName = concrete.getName() + "MXBean";
-      String stdName = concrete.getName() + "MBean";
-
-      for (Class<?> intf : interfaces)
-      {
-         String name = intf.getName();
-         if (mxName.equals(name) || stdName.equals(name))
-            return intf;
-         
-         MXBean mxBean = intf.getAnnotation(MXBean.class);
-         if (mxBean != null && mxBean.value())
-            return intf;
-      }
-      return null;
-   }
-
-   /**
-    * Create a new MXBeanMetaData.
-    * 
-    * @param mbeanInstance the mbean instance
-    * @throws NotCompliantMBeanException for any error
-    */
-   public MXBeanMetaData(Object mbeanInstance) throws NotCompliantMBeanException
-   {
-      this(mbeanInstance.getClass());
-      this.mbeanInstance = mbeanInstance;
-   }
-
-   /**
-    * Create a new MXBeanMetaData.
-    * 
-    * @param mbeanClass the class
-    * @throws NotCompliantMBeanException for any error
-    */
-   public MXBeanMetaData(Class<?> mbeanClass)  throws NotCompliantMBeanException
-   {
-      this.mbeanClass = mbeanClass;
-      this.mbeanInterface = findMXBeanInterface(mbeanClass);
-      if (this.mbeanInterface == null)
-         throw new NotCompliantMBeanException("Cannot obtain MXBean interface for: " + mbeanClass);
-   }
-
-   /**
-    * Create a new MXBeanMetaData.
-    * 
-    * @param mbeanInstance the mbean instance
-    * @param mbeanInterface the mbean interface
-    * @throws NotCompliantMBeanException for any error
-    */
-   public MXBeanMetaData(Object mbeanInstance, Class<?> mbeanInterface) throws NotCompliantMBeanException
-   {
-      this.mbeanInstance = mbeanInstance;
-      this.mbeanClass = mbeanInstance.getClass();
-      this.mbeanInterface = mbeanInterface;
-      if (this.mbeanInterface == null)
-         this.mbeanInterface = MXBeanMetaData.findMXBeanInterface(mbeanClass);
-      if (this.mbeanInterface == null)
-         throw new NotCompliantMBeanException("Cannot obtain mxbean interface for: " + mbeanClass);
-      if (this.mbeanInterface.isInterface() == false)
-         throw new NotCompliantMBeanException("Management interface is not an interface: " + mbeanInterface);
-   }
-
-   /**
-    * Retrieve the management interface
-    * 
-    * @return the interface
-    */
-   public Class<?> getMBeanInterface()
-   {
-      return mbeanInterface;
-   }
-   
-   public MBeanInfo build() throws NotCompliantMBeanException
-   {
-      try
-      {
-         // First check the mbean instance implements the interface
-         if (mbeanInterface == null)
-            throw new NotCompliantMBeanException("The mbean does not implement a management interface");
-         if (mbeanInstance != null && mbeanInterface.isInstance(mbeanInstance) == false)
-            throw new NotCompliantMBeanException("The mbean does not implement its management interface " + mbeanInterface.getName());
-
-         OpenMBeanConstructorInfo[] constructorInfo = buildConstructors();
-
-         HashMap<String, Method> getters = new HashMap<String, Method>();
-         HashMap<String, Method> setters = new HashMap<String, Method>();
-
-         HashMap<String, OpenMBeanOperationInfo> operInfo = new HashMap<String, OpenMBeanOperationInfo>();
-         List<OpenMBeanAttributeInfo> attrInfo = new ArrayList<OpenMBeanAttributeInfo>();
-
-         Method[] methods = mbeanInterface.getMethods();
-         for (Method method : methods)
-         {
-            String methodName = method.getName();
-            Type[] signature = method.getGenericParameterTypes();
-            Type returnType = method.getGenericReturnType();
-
-            if (methodName.startsWith("set") &&
-                methodName.length() > 3 && 
-                signature.length == 1 && 
-                returnType == Void.TYPE)
-            {
-               String key = methodName.substring(3, methodName.length());
-               Method setter = setters.get(key);
-               if (setter != null && setter.getGenericParameterTypes()[0].equals(signature[0]) == false)
-                  throw new IntrospectionException("overloaded type for attribute set: " + key);
-               setters.put(key, method);
-            }
-            else if (methodName.startsWith("get") &&
-                     methodName.length() > 3 &&
-                     signature.length == 0 &&
-                     returnType != Void.TYPE)
-            {
-               String key = methodName.substring(3, methodName.length());
-               Method getter = getters.get(key);
-               if (getter != null && getter.getName().startsWith("is"))
-                  throw new IntrospectionException("mixed use of get/is for attribute " + key);
-               getters.put(key, method);
-            }
-            else if (methodName.startsWith("is") &&
-                     methodName.length() > 2 &&
-                     signature.length == 0 &&
-                     isBooleanReturn(returnType))
-            {
-               String key = methodName.substring(2, methodName.length());
-               Method getter = getters.get(key);
-               if (getter != null && getter.getName().startsWith("get"))
-                  throw new IntrospectionException("mixed use of get/is for attribute " + key);
-               getters.put(key, method);
-            }
-            else
-            {
-               OpenMBeanOperationInfo info = buildOperation(method);
-               operInfo.put(getSignatureString(method), info);
-            }
-         }
-
-         String[] keys = getters.keySet().toArray(new String[getters.size()]);
-         for (String key : keys)
-         {
-            Method getter = getters.remove(key);
-            Method setter = setters.remove(key);
-            OpenMBeanAttributeInfo info = buildAttribute(key, getter, setter);
-            attrInfo.add(info);
-         }
-
-         for (String key : setters.keySet())
-         {
-            Method setter = setters.remove(key);
-            OpenMBeanAttributeInfo info = buildAttribute(key, null, setter);
-            attrInfo.add(info);
-         }
-
-         OpenMBeanAttributeInfo[] attributeInfo = attrInfo.toArray(new OpenMBeanAttributeInfo[attrInfo.size()]);
-         Collection<OpenMBeanOperationInfo> operations = operInfo.values();
-         OpenMBeanOperationInfo[] operationInfo = operations.toArray(new OpenMBeanOperationInfo[operations.size()]);
-
-         MBeanNotificationInfo[] notifications = null;
-         if (mbeanInstance instanceof NotificationBroadcaster)
-            notifications = ((NotificationBroadcaster) mbeanInstance).getNotificationInfo();
-         else
-            notifications = new MBeanNotificationInfo[0];
-
-         return buildMBeanInfo(attributeInfo, constructorInfo, operationInfo, notifications);
-
-      }
-      catch (Throwable t)
-      {
-         NotCompliantMBeanException e = new NotCompliantMBeanException("Error generating OpenMBeanInfo.");
-         e.initCause(t);
-         throw e;
-      }
-   }
-
-   /**
-    * Build the constructors
-    * 
-    * @return the info
-    * @throws Exception for any error
-    */
-   private OpenMBeanConstructorInfo[] buildConstructors() throws Exception
-   {
-      Constructor<?>[] constructors = mbeanClass.getConstructors();
-      OpenMBeanConstructorInfo[] constructorInfo = new OpenMBeanConstructorInfo[constructors.length];
-      for (int i = 0; i < constructors.length; ++i)
-         constructorInfo[i] = buildConstructor(constructors[i]);
-      return constructorInfo;
-   }
-   
-   /**
-    * Build a constructor
-    * 
-    * @param constructor the constructor
-    * @return the info 
-    * @throws Exception for any error
-    */
-   private OpenMBeanConstructorInfo buildConstructor(Constructor<?> constructor) throws Exception
-   {
-      Type[] parameterTypes = constructor.getGenericParameterTypes();
-      OpenMBeanParameterInfo[] parameterInfo = new OpenMBeanParameterInfo[parameterTypes.length];
-      for (int i = 0; i < parameterTypes.length; ++i)
-         parameterInfo[i] = buildParameter(i, parameterTypes[i]);
-      return new OpenMBeanConstructorInfoSupport("MBean Constructor.", "MBean Constructor.", parameterInfo);
-   }
-
-   /**
-    * Build a parameter
-    * 
-    * @param i the index of the parameter
-    * @param parameterType the parameter type
-    * @return the info
-    * @throws Exception for any error
-    */
-   private OpenMBeanParameterInfo buildParameter(int i, Type parameterType) throws Exception
-   {
-      OpenType openType = MXBeanUtils.getOpenType(parameterType);
-      return new OpenMBeanParameterInfoSupport("arg" + i, "MBean Parameter.", openType);
-   }
-
-   /**
-    * Build an attribute
-    * 
-    * @param attrName the attribute name
-    * @param getter the getter
-    * @param setter the setter
-    * @return the info
-    * @throws Exception for any error
-    */
-   private OpenMBeanAttributeInfo buildAttribute(String attrName, Method getter, Method setter) throws Exception
-   {
-      boolean isReadable = (getter != null);
-      boolean isWritable = (setter != null);
-      boolean isIs = false;
-      
-      OpenType openType = null; 
-      if (getter != null)
-      {
-         openType = MXBeanUtils.getOpenType(getter.getGenericReturnType());
-         if (getter.getName().startsWith("is"))
-            isIs = true;
-      }
-      else
-      {
-         openType = MXBeanUtils.getOpenType(setter.getGenericParameterTypes()[0]);
-      }
-      
-      return new OpenMBeanAttributeInfoSupport(attrName, attrName, openType, isReadable, isWritable, isIs);
-   }
-   
-   /**
-    * Build the operation info
-    * 
-    * @param method the method
-    * @return the info
-    * @throws Exception for any error
-    */
-   private OpenMBeanOperationInfo buildOperation(Method method) throws Exception
-   {
-      Type[] parameterTypes = method.getGenericParameterTypes();
-      OpenMBeanParameterInfo[] parameterInfo = new OpenMBeanParameterInfo[parameterTypes.length];
-      for (int i = 0; i < parameterTypes.length; ++i)
-         parameterInfo[i] = buildParameter(i, parameterTypes[i]);
-      OpenType openType = MXBeanUtils.getOpenType(method.getGenericReturnType());
-      return new OpenMBeanOperationInfoSupport(method.getName(), method.getName(), parameterInfo, openType, MBeanOperationInfo.ACTION);
-   }
-   
-   /**
-    * Build the mbean info
-    * 
-    * @param attributes the attributes
-    * @param constructors the constructors
-    * @param operations the operations
-    * @param notifications the notifications
-    * @return the info
-    * @throws Exception for any error
-    */
-   private OpenMBeanInfoSupport buildMBeanInfo(OpenMBeanAttributeInfo[] attributes, OpenMBeanConstructorInfo[] constructors, OpenMBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications) throws Exception
-   {
-      return new OpenMBeanInfoSupport(mbeanClass.getName(), mbeanClass.getName(), attributes, constructors, operations, notifications);
-   }
-   
-   /**
-    * JMX standard specifies that only "boolean isX()" style methods
-    * represent attributes. "Boolean isX()" methods map to operations.
-    * 
-    * @param returnType the return type
-    * @return true when boolean
-    */
-   private boolean isBooleanReturn(Type returnType)
-   {
-      return returnType == Boolean.TYPE;
-   }
-
-   /**
-    * Get a signature string for a method
-    * 
-    * @param method the method
-    * @return the signature
-    */
-   private String getSignatureString(Method method)
-   {
-      String name = method.getName();
-      Class[] signature = method.getParameterTypes();
-      StringBuffer buffer = new StringBuffer(512);
-      buffer.append(name);
-      buffer.append("(");
-      if (signature != null)
-      {
-         for (int i = 0; i < signature.length; i++)
-         {
-            buffer.append(signature[i].getName());
-            if (i < signature.length-1)
-               buffer.append(",");
-         }
-      }
-      buffer.append(")");
-      return buffer.toString();
-   }
-}
-
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.management.IntrospectionException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanNotificationInfo;
+import javax.management.MBeanOperationInfo;
+import javax.management.NotCompliantMBeanException;
+import javax.management.NotificationBroadcaster;
+import javax.management.openmbean.OpenMBeanAttributeInfo;
+import javax.management.openmbean.OpenMBeanAttributeInfoSupport;
+import javax.management.openmbean.OpenMBeanConstructorInfo;
+import javax.management.openmbean.OpenMBeanConstructorInfoSupport;
+import javax.management.openmbean.OpenMBeanInfoSupport;
+import javax.management.openmbean.OpenMBeanOperationInfo;
+import javax.management.openmbean.OpenMBeanOperationInfoSupport;
+import javax.management.openmbean.OpenMBeanParameterInfo;
+import javax.management.openmbean.OpenMBeanParameterInfoSupport;
+import javax.management.openmbean.OpenType;
+
+import org.jboss.mx.metadata.AbstractBuilder;
+
+/**
+ * MXBeanMetaData
+ *
+ * @author  <a href="mailto:juha at jboss.org">Juha Lindfors</a>.
+ * @author  <a href="mailto:trevor at protocool.com">Trevor Squires</a>.
+ * @author  <a href="mailto:thomas.diesler at jboss.com">Thomas Diesler</a>.
+ * @author  <a href="mailto:dimitris at jboss.org">Dimitris Andreadis</a>.
+ */
+public class MXBeanMetaData extends AbstractBuilder
+{
+   /** The MBean */
+   private Object mbeanInstance;
+   
+   /** The class */
+   private Class<?> mbeanClass;
+   
+   /** The interface */
+   private Class<?> mbeanInterface;
+
+   /**
+    * Find the MXBean interface for a class
+    * 
+    * @param mbeanClass the mbean class
+    * @return the interface
+    */
+   public static Class<?> findMXBeanInterface(Class<?> mbeanClass)
+   {
+      Class<?> concrete = mbeanClass;
+      while (null != concrete)
+      {
+         Class result = findMXBeanInterface(concrete, concrete.getInterfaces());
+         if (null != result)
+            return result;
+         concrete = concrete.getSuperclass();
+      }
+      return null;
+   }
+
+   /**
+    * Find the MXBean interface for a class
+    * 
+    * @param concrete the mbean class
+    * @param interfaces the interfaces to consider
+    * @return the interface
+    */
+   private static Class<?> findMXBeanInterface(Class<?> concrete, Class<?>[] interfaces)
+   {
+      String mxName = concrete.getName() + "MXBean";
+      String stdName = concrete.getName() + "MBean";
+
+      for (Class<?> intf : interfaces)
+      {
+         String name = intf.getName();
+         if (mxName.equals(name) || stdName.equals(name))
+            return intf;
+         
+         MXBean mxBean = intf.getAnnotation(MXBean.class);
+         if (mxBean != null && mxBean.value())
+            return intf;
+      }
+      return null;
+   }
+
+   /**
+    * Create a new MXBeanMetaData.
+    * 
+    * @param mbeanInstance the mbean instance
+    * @throws NotCompliantMBeanException for any error
+    */
+   public MXBeanMetaData(Object mbeanInstance) throws NotCompliantMBeanException
+   {
+      this(mbeanInstance.getClass());
+      this.mbeanInstance = mbeanInstance;
+   }
+
+   /**
+    * Create a new MXBeanMetaData.
+    * 
+    * @param mbeanClass the class
+    * @throws NotCompliantMBeanException for any error
+    */
+   public MXBeanMetaData(Class<?> mbeanClass)  throws NotCompliantMBeanException
+   {
+      this.mbeanClass = mbeanClass;
+      this.mbeanInterface = findMXBeanInterface(mbeanClass);
+      if (this.mbeanInterface == null)
+         throw new NotCompliantMBeanException("Cannot obtain MXBean interface for: " + mbeanClass);
+   }
+
+   /**
+    * Create a new MXBeanMetaData.
+    * 
+    * @param mbeanInstance the mbean instance
+    * @param mbeanInterface the mbean interface
+    * @throws NotCompliantMBeanException for any error
+    */
+   public MXBeanMetaData(Object mbeanInstance, Class<?> mbeanInterface) throws NotCompliantMBeanException
+   {
+      this.mbeanInstance = mbeanInstance;
+      this.mbeanClass = mbeanInstance.getClass();
+      this.mbeanInterface = mbeanInterface;
+      if (this.mbeanInterface == null)
+         this.mbeanInterface = MXBeanMetaData.findMXBeanInterface(mbeanClass);
+      if (this.mbeanInterface == null)
+         throw new NotCompliantMBeanException("Cannot obtain mxbean interface for: " + mbeanClass);
+      if (this.mbeanInterface.isInterface() == false)
+         throw new NotCompliantMBeanException("Management interface is not an interface: " + mbeanInterface);
+   }
+
+   /**
+    * Retrieve the management interface
+    * 
+    * @return the interface
+    */
+   public Class<?> getMBeanInterface()
+   {
+      return mbeanInterface;
+   }
+   
+   public MBeanInfo build() throws NotCompliantMBeanException
+   {
+      try
+      {
+         // First check the mbean instance implements the interface
+         if (mbeanInterface == null)
+            throw new NotCompliantMBeanException("The mbean does not implement a management interface");
+         if (mbeanInstance != null && mbeanInterface.isInstance(mbeanInstance) == false)
+            throw new NotCompliantMBeanException("The mbean does not implement its management interface " + mbeanInterface.getName());
+
+         OpenMBeanConstructorInfo[] constructorInfo = buildConstructors();
+
+         HashMap<String, Method> getters = new HashMap<String, Method>();
+         HashMap<String, Method> setters = new HashMap<String, Method>();
+
+         HashMap<String, OpenMBeanOperationInfo> operInfo = new HashMap<String, OpenMBeanOperationInfo>();
+         List<OpenMBeanAttributeInfo> attrInfo = new ArrayList<OpenMBeanAttributeInfo>();
+
+         Method[] methods = mbeanInterface.getMethods();
+         for (Method method : methods)
+         {
+            String methodName = method.getName();
+            Type[] signature = method.getGenericParameterTypes();
+            Type returnType = method.getGenericReturnType();
+
+            if (methodName.startsWith("set") &&
+                methodName.length() > 3 && 
+                signature.length == 1 && 
+                returnType == Void.TYPE)
+            {
+               String key = methodName.substring(3, methodName.length());
+               Method setter = setters.get(key);
+               if (setter != null && setter.getGenericParameterTypes()[0].equals(signature[0]) == false)
+                  throw new IntrospectionException("overloaded type for attribute set: " + key);
+               setters.put(key, method);
+            }
+            else if (methodName.startsWith("get") &&
+                     methodName.length() > 3 &&
+                     signature.length == 0 &&
+                     returnType != Void.TYPE)
+            {
+               String key = methodName.substring(3, methodName.length());
+               Method getter = getters.get(key);
+               if (getter != null && getter.getName().startsWith("is"))
+                  throw new IntrospectionException("mixed use of get/is for attribute " + key);
+               getters.put(key, method);
+            }
+            else if (methodName.startsWith("is") &&
+                     methodName.length() > 2 &&
+                     signature.length == 0 &&
+                     isBooleanReturn(returnType))
+            {
+               String key = methodName.substring(2, methodName.length());
+               Method getter = getters.get(key);
+               if (getter != null && getter.getName().startsWith("get"))
+                  throw new IntrospectionException("mixed use of get/is for attribute " + key);
+               getters.put(key, method);
+            }
+            else
+            {
+               OpenMBeanOperationInfo info = buildOperation(method);
+               operInfo.put(getSignatureString(method), info);
+            }
+         }
+
+         String[] keys = getters.keySet().toArray(new String[getters.size()]);
+         for (String key : keys)
+         {
+            Method getter = getters.remove(key);
+            Method setter = setters.remove(key);
+            OpenMBeanAttributeInfo info = buildAttribute(key, getter, setter);
+            attrInfo.add(info);
+         }
+
+         for (String key : setters.keySet())
+         {
+            Method setter = setters.remove(key);
+            OpenMBeanAttributeInfo info = buildAttribute(key, null, setter);
+            attrInfo.add(info);
+         }
+
+         OpenMBeanAttributeInfo[] attributeInfo = attrInfo.toArray(new OpenMBeanAttributeInfo[attrInfo.size()]);
+         Collection<OpenMBeanOperationInfo> operations = operInfo.values();
+         OpenMBeanOperationInfo[] operationInfo = operations.toArray(new OpenMBeanOperationInfo[operations.size()]);
+
+         MBeanNotificationInfo[] notifications = null;
+         if (mbeanInstance instanceof NotificationBroadcaster)
+            notifications = ((NotificationBroadcaster) mbeanInstance).getNotificationInfo();
+         else
+            notifications = new MBeanNotificationInfo[0];
+
+         return buildMBeanInfo(attributeInfo, constructorInfo, operationInfo, notifications);
+
+      }
+      catch (Throwable t)
+      {
+         NotCompliantMBeanException e = new NotCompliantMBeanException("Error generating OpenMBeanInfo.");
+         e.initCause(t);
+         throw e;
+      }
+   }
+
+   /**
+    * Build the constructors
+    * 
+    * @return the info
+    * @throws Exception for any error
+    */
+   private OpenMBeanConstructorInfo[] buildConstructors() throws Exception
+   {
+      Constructor<?>[] constructors = mbeanClass.getConstructors();
+      OpenMBeanConstructorInfo[] constructorInfo = new OpenMBeanConstructorInfo[constructors.length];
+      for (int i = 0; i < constructors.length; ++i)
+         constructorInfo[i] = buildConstructor(constructors[i]);
+      return constructorInfo;
+   }
+   
+   /**
+    * Build a constructor
+    * 
+    * @param constructor the constructor
+    * @return the info 
+    * @throws Exception for any error
+    */
+   private OpenMBeanConstructorInfo buildConstructor(Constructor<?> constructor) throws Exception
+   {
+      Type[] parameterTypes = constructor.getGenericParameterTypes();
+      OpenMBeanParameterInfo[] parameterInfo = new OpenMBeanParameterInfo[parameterTypes.length];
+      for (int i = 0; i < parameterTypes.length; ++i)
+         parameterInfo[i] = buildParameter(i, parameterTypes[i]);
+      return new OpenMBeanConstructorInfoSupport("MBean Constructor.", "MBean Constructor.", parameterInfo);
+   }
+
+   /**
+    * Build a parameter
+    * 
+    * @param i the index of the parameter
+    * @param parameterType the parameter type
+    * @return the info
+    * @throws Exception for any error
+    */
+   private OpenMBeanParameterInfo buildParameter(int i, Type parameterType) throws Exception
+   {
+      OpenType openType = MXBeanUtils.getOpenType(parameterType);
+      return new OpenMBeanParameterInfoSupport("arg" + i, "MBean Parameter.", openType);
+   }
+
+   /**
+    * Build an attribute
+    * 
+    * @param attrName the attribute name
+    * @param getter the getter
+    * @param setter the setter
+    * @return the info
+    * @throws Exception for any error
+    */
+   private OpenMBeanAttributeInfo buildAttribute(String attrName, Method getter, Method setter) throws Exception
+   {
+      boolean isReadable = (getter != null);
+      boolean isWritable = (setter != null);
+      boolean isIs = false;
+      
+      OpenType openType = null; 
+      if (getter != null)
+      {
+         openType = MXBeanUtils.getOpenType(getter.getGenericReturnType());
+         if (getter.getName().startsWith("is"))
+            isIs = true;
+      }
+      else
+      {
+         openType = MXBeanUtils.getOpenType(setter.getGenericParameterTypes()[0]);
+      }
+      
+      return new OpenMBeanAttributeInfoSupport(attrName, attrName, openType, isReadable, isWritable, isIs);
+   }
+   
+   /**
+    * Build the operation info
+    * 
+    * @param method the method
+    * @return the info
+    * @throws Exception for any error
+    */
+   private OpenMBeanOperationInfo buildOperation(Method method) throws Exception
+   {
+      Type[] parameterTypes = method.getGenericParameterTypes();
+      OpenMBeanParameterInfo[] parameterInfo = new OpenMBeanParameterInfo[parameterTypes.length];
+      for (int i = 0; i < parameterTypes.length; ++i)
+         parameterInfo[i] = buildParameter(i, parameterTypes[i]);
+      OpenType openType = MXBeanUtils.getOpenType(method.getGenericReturnType());
+      return new OpenMBeanOperationInfoSupport(method.getName(), method.getName(), parameterInfo, openType, MBeanOperationInfo.ACTION);
+   }
+   
+   /**
+    * Build the mbean info
+    * 
+    * @param attributes the attributes
+    * @param constructors the constructors
+    * @param operations the operations
+    * @param notifications the notifications
+    * @return the info
+    * @throws Exception for any error
+    */
+   private OpenMBeanInfoSupport buildMBeanInfo(OpenMBeanAttributeInfo[] attributes, OpenMBeanConstructorInfo[] constructors, OpenMBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications) throws Exception
+   {
+      return new OpenMBeanInfoSupport(mbeanClass.getName(), mbeanClass.getName(), attributes, constructors, operations, notifications);
+   }
+   
+   /**
+    * JMX standard specifies that only "boolean isX()" style methods
+    * represent attributes. "Boolean isX()" methods map to operations.
+    * 
+    * @param returnType the return type
+    * @return true when boolean
+    */
+   private boolean isBooleanReturn(Type returnType)
+   {
+      return returnType == Boolean.TYPE;
+   }
+
+   /**
+    * Get a signature string for a method
+    * 
+    * @param method the method
+    * @return the signature
+    */
+   private String getSignatureString(Method method)
+   {
+      String name = method.getName();
+      Class[] signature = method.getParameterTypes();
+      StringBuffer buffer = new StringBuffer(512);
+      buffer.append(name);
+      buffer.append("(");
+      if (signature != null)
+      {
+         for (int i = 0; i < signature.length; i++)
+         {
+            buffer.append(signature[i].getName());
+            if (i < signature.length-1)
+               buffer.append(",");
+         }
+      }
+      buffer.append(")");
+      return buffer.toString();
+   }
+}
+

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanSupport.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanSupport.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanSupport.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,161 +1,161 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import javax.management.Attribute;
-import javax.management.AttributeList;
-import javax.management.AttributeNotFoundException;
-import javax.management.DynamicMBean;
-import javax.management.InvalidAttributeValueException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanNotificationInfo;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
-import javax.management.NotificationEmitter;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.ReflectionException;
-
-/**
- * MXBeanSupport.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanSupport implements DynamicMBean, MBeanRegistration, NotificationEmitter
-{
-   /** No notifications */
-   private static final MBeanNotificationInfo[] NO_NOTIFICATIONS = new MBeanNotificationInfo[0];
-   
-   /** The delegate */
-   private DynamicMBean delegate;
-   
-   /** The mbean registration delegate */
-   private MBeanRegistration registration;
-   
-   /** The emitter delegate */
-   private NotificationEmitter emitter;
-   
-   /**
-    * Create a new MXBeanSupport.
-    */
-   protected MXBeanSupport()
-   {
-      init(MXBeanUtils.createMXBean(this, null));
-   }
-
-   /**
-    * Create a new MXBeanSupport.
-    * 
-    * @param mxbeanInterface the interface
-    */
-   protected MXBeanSupport(Class<?> mxbeanInterface)
-   {
-      init(MXBeanUtils.createMXBean(this, mxbeanInterface));
-   }
-   
-   public MBeanInfo getMBeanInfo()
-   {
-      return delegate.getMBeanInfo();
-   }
-
-   public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
-   {
-      return delegate.getAttribute(attribute);
-   }
-
-   public AttributeList getAttributes(String[] attributes)
-   {
-      return delegate.getAttributes(attributes);
-   }
-
-   public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
-   {
-      delegate.setAttribute(attribute);
-   }
-
-   public AttributeList setAttributes(AttributeList attributes)
-   {
-      return delegate.setAttributes(attributes);
-   }
-
-   public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException
-   {
-      return delegate.invoke(actionName, params, signature);
-   }
-
-   public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
-   {
-      return registration.preRegister(server, name);
-   }
-
-   public void postRegister(Boolean registrationDone)
-   {
-      registration.postDeregister();
-   }
-
-   public void preDeregister() throws Exception
-   {
-      registration.preDeregister();
-   }
-
-   public void postDeregister()
-   {
-      registration.postDeregister();
-   }
-
-   public MBeanNotificationInfo[] getNotificationInfo()
-   {
-      return NO_NOTIFICATIONS;
-   }
-
-   public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
-   {
-      emitter.addNotificationListener(listener, filter, handback);
-      
-   }
-
-   public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
-   {
-      emitter.removeNotificationListener(listener);
-   }
-   
-   public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
-   {
-      emitter.removeNotificationListener(listener, filter, handback);
-   }
-
-   /**
-    * Initialise the delegates
-    * 
-    * @param delegate the delegate
-    */
-   private void init(DynamicMBean delegate)
-   {
-      this.delegate = delegate;
-      this.registration = (MBeanRegistration) delegate;
-      this.emitter = (NotificationEmitter) delegate;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import javax.management.Attribute;
+import javax.management.AttributeList;
+import javax.management.AttributeNotFoundException;
+import javax.management.DynamicMBean;
+import javax.management.InvalidAttributeValueException;
+import javax.management.ListenerNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanNotificationInfo;
+import javax.management.MBeanRegistration;
+import javax.management.MBeanServer;
+import javax.management.NotificationEmitter;
+import javax.management.NotificationFilter;
+import javax.management.NotificationListener;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+
+/**
+ * MXBeanSupport.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanSupport implements DynamicMBean, MBeanRegistration, NotificationEmitter
+{
+   /** No notifications */
+   private static final MBeanNotificationInfo[] NO_NOTIFICATIONS = new MBeanNotificationInfo[0];
+   
+   /** The delegate */
+   private DynamicMBean delegate;
+   
+   /** The mbean registration delegate */
+   private MBeanRegistration registration;
+   
+   /** The emitter delegate */
+   private NotificationEmitter emitter;
+   
+   /**
+    * Create a new MXBeanSupport.
+    */
+   protected MXBeanSupport()
+   {
+      init(MXBeanUtils.createMXBean(this, null));
+   }
+
+   /**
+    * Create a new MXBeanSupport.
+    * 
+    * @param mxbeanInterface the interface
+    */
+   protected MXBeanSupport(Class<?> mxbeanInterface)
+   {
+      init(MXBeanUtils.createMXBean(this, mxbeanInterface));
+   }
+   
+   public MBeanInfo getMBeanInfo()
+   {
+      return delegate.getMBeanInfo();
+   }
+
+   public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
+   {
+      return delegate.getAttribute(attribute);
+   }
+
+   public AttributeList getAttributes(String[] attributes)
+   {
+      return delegate.getAttributes(attributes);
+   }
+
+   public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
+   {
+      delegate.setAttribute(attribute);
+   }
+
+   public AttributeList setAttributes(AttributeList attributes)
+   {
+      return delegate.setAttributes(attributes);
+   }
+
+   public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException
+   {
+      return delegate.invoke(actionName, params, signature);
+   }
+
+   public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
+   {
+      return registration.preRegister(server, name);
+   }
+
+   public void postRegister(Boolean registrationDone)
+   {
+      registration.postDeregister();
+   }
+
+   public void preDeregister() throws Exception
+   {
+      registration.preDeregister();
+   }
+
+   public void postDeregister()
+   {
+      registration.postDeregister();
+   }
+
+   public MBeanNotificationInfo[] getNotificationInfo()
+   {
+      return NO_NOTIFICATIONS;
+   }
+
+   public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
+   {
+      emitter.addNotificationListener(listener, filter, handback);
+      
+   }
+
+   public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
+   {
+      emitter.removeNotificationListener(listener);
+   }
+   
+   public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
+   {
+      emitter.removeNotificationListener(listener, filter, handback);
+   }
+
+   /**
+    * Initialise the delegates
+    * 
+    * @param delegate the delegate
+    */
+   private void init(DynamicMBean delegate)
+   {
+      this.delegate = delegate;
+      this.registration = (MBeanRegistration) delegate;
+      this.emitter = (NotificationEmitter) delegate;
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanUtils.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanUtils.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/MXBeanUtils.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,1042 +1,1042 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.GenericArrayType;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Proxy;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-import javax.management.DynamicMBean;
-import javax.management.ObjectName;
-import javax.management.openmbean.ArrayType;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.jboss.util.collection.WeakValueHashMap;
-
-/**
- * Utils.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanUtils
-{
-   /** A cache of methods to keys */
-   private static final Map<Method, String> compositeDataKeyCache = Collections.synchronizedMap(new WeakHashMap<Method, String>()); 
-
-   /** A cache of classes to key to getters */
-   private static final Map<Class, Map<String, Method>> compositeDataMethodCache = Collections.synchronizedMap(new WeakHashMap<Class, Map<String, Method>>()); 
-   
-   /** The map key */
-   public static final String MAP_KEY = "key";
-
-   /** The map value */
-   public static final String MAP_VALUE = "value";
-   
-   /** Map index names */
-   public static final String[] MAP_INDEX_NAMES = { MAP_KEY };
-   
-   /** Map item names */
-   public static final String[] MAP_ITEM_NAMES = { MAP_KEY, MAP_VALUE };
-   
-   /**
-    * Get the OpenType for a class
-    * 
-    * @param type the type
-    * @return the open type
-    */
-   public static OpenType getOpenType(Type type)
-   {
-      if (type == null)
-         throw new IllegalArgumentException("Null type");
-
-      OpenType result = checkType(type);
-      if (result != null)
-         return result;
-      Class clazz = (Class) type;
-      return CompositeTypeMetaDataFactory.getCompositeType(clazz);
-   }
-
-   /**
-    * Get the SimpleType for a class
-    * 
-    * @param type the type
-    * @return the open type
-    * @throws Exception for any error 
-    */
-   public static SimpleType getSimpleType(Class type) throws Exception
-   {
-      SimpleType simpleType = checkSimpleType(type);
-      if (simpleType == null)
-         throw new IllegalArgumentException("Not a SimpleType: " + type.getName());
-      return simpleType;
-   }
-
-   /**
-    * Get the for a class that is not composite
-    * 
-    * @param type the type
-    * @return the open type or null if composite
-    */
-   public static OpenType checkType(Type type)
-   {
-      OpenType result = checkSimpleType(type);
-      if (result != null)
-         return result;
-      result = checkEnum(type);
-      if (result != null)
-         return result;
-      result = checkArray(type);
-      if (result != null)
-         return result;
-      result = checkCollection(type);
-      if (result != null)
-         return result;
-      return checkMap(type);
-   }
-   
-   /**
-    * Create a composite data proxy
-    * 
-    * @param <T> the interface type
-    * @param intf the interface type
-    * @param compositeData the composite data
-    * @return the proxy
-    */
-   public static <T> T createCompositeDataProxy(Class<T> intf, CompositeData compositeData)
-   {
-      if (intf == null)
-         throw new IllegalArgumentException("Null interface");
-      InvocationHandler handler = new CompositeDataInvocationHandler(compositeData);
-      Object object = Proxy.newProxyInstance(intf.getClassLoader(), new Class[] { intf }, handler);
-      return intf.cast(object);
-   }
-   
-   /**
-    * Construct some open data
-    * 
-    * @param type the type
-    * @param value the value
-    * @param context the context
-    * @return the open data
-    * @throws Exception for any error
-    */
-   public static Object construct(Type type, Object value, Object context) throws Exception
-   {
-      OpenType openType = getOpenType(type);
-      return construct(openType, value, context);
-   }
-   
-   /**
-    * Construct some open data
-    * 
-    * @param openType the open type
-    * @param value the value
-    * @param context the context
-    * @return the open data
-    * @throws Exception for any error
-    */
-   public static Object construct(OpenType openType, Object value, Object context) throws Exception
-   {
-      if (openType instanceof SimpleType)
-         return constructSimpleData(value);
-      if (openType.isArray())
-         return constructArrayData(openType, value, context);
-      if (openType instanceof TabularType)
-         return constructTabularData(openType, value, context);
-      return constructCompositeData(openType, value, context);
-   }
-   
-   /**
-    * Reconstruct a type from an object
-    * 
-    * @param type the type
-    * @param value the value
-    * @param context for error reporting
-    * @return the object
-    * @throws Exception for any error
-    */
-   public static Object reconstruct(Type type, Object value, Object context) throws Exception
-   {
-      OpenType openType = MXBeanUtils.getOpenType(type);
-      return reconstruct(openType, type, value, context);
-   }
-   
-   /**
-    * Reconstruct a type from an object
-    * 
-    * @param openType the open type
-    * @param type the type
-    * @param value the value
-    * @param context for error reporting
-    * @return the object
-    * @throws Exception for any error
-    */
-   public static Object reconstruct(OpenType openType, Type type, Object value, Object context) throws Exception
-   {
-      if (openType instanceof SimpleType)
-         return reconstructSimpleData(type, value, context);
-      if (openType.isArray())
-         return reconstructArrayData(openType, type, value, context);
-      if (openType instanceof TabularType)
-         return reconstructTabularData(openType, type, value, context);
-      return reconstructCompositeData(openType, type, value, context);
-   }
-
-   /**
-    * Get the SimpleType for a class
-    * 
-    * @param type the type
-    * @return the simple type or null if not a simple type
-    */
-   public static SimpleType checkSimpleType(Type type)
-   {
-      if (BigDecimal.class.equals(type))
-         return SimpleType.BIGDECIMAL;
-      if (BigInteger.class.equals(type))
-         return SimpleType.BIGINTEGER;
-      if (Boolean.class.equals(type))
-         return SimpleType.BOOLEAN;
-      if (Boolean.TYPE.equals(type))
-         return SimpleType.BOOLEAN;
-      if (Byte.class.equals(type))
-         return SimpleType.BYTE;
-      if (Byte.TYPE.equals(type))
-         return SimpleType.BYTE;
-      if (Character.class.equals(type))
-         return SimpleType.CHARACTER;
-      if (Character.TYPE.equals(type))
-         return SimpleType.CHARACTER;
-      if (Date.class.equals(type))
-         return SimpleType.DATE;
-      if (Double.class.equals(type))
-         return SimpleType.DOUBLE;
-      if (Double.TYPE.equals(type))
-         return SimpleType.DOUBLE;
-      if (Float.class.equals(type))
-         return SimpleType.FLOAT;
-      if (Float.TYPE.equals(type))
-         return SimpleType.FLOAT;
-      if (Integer.class.equals(type))
-         return SimpleType.INTEGER;
-      if (Integer.TYPE.equals(type))
-         return SimpleType.INTEGER;
-      if (Long.class.equals(type))
-         return SimpleType.LONG;
-      if (Long.TYPE.equals(type))
-         return SimpleType.LONG;
-      if (ObjectName.class.equals(type))
-         return SimpleType.OBJECTNAME;
-      if (Short.class.equals(type))
-         return SimpleType.SHORT;
-      if (Short.TYPE.equals(type))
-         return SimpleType.SHORT;
-      if (String.class.equals(type))
-         return SimpleType.STRING;
-      if (Void.class.equals(type))
-         return SimpleType.VOID;
-      return null;
-   }
-
-   /**
-    * Get the simple type for an enum
-    * 
-    * @param type the type
-    * @return return the enum type or null if it is not an enum
-    */
-   public static SimpleType checkEnum(Type type)
-   {
-      if (type instanceof Class == false)
-         return null;
-      Class clazz = (Class) type;
-      if (clazz.isEnum() || Enum.class.equals(clazz))
-         return SimpleType.STRING;
-      return null;
-   }
-
-   /**
-    * Construct a simple type open data
-    * 
-    * @param value the value
-    * @return the simple type
-    */
-   public static Object constructSimpleData(Object value)
-   {
-      if (value != null && value instanceof Enum)
-      {
-         Enum enumeration = (Enum) value;
-         return enumeration.name();
-      }
-      return value;
-   }
-
-   /**
-    * Reconstruct a simple type open data
-    * 
-    * @param type the type
-    * @param value the value
-    * @param context the context
-    * @return the simple type
-    */
-   @SuppressWarnings("unchecked")
-   private static Object reconstructSimpleData(Type type, Object value, Object context)
-   {
-      if (type instanceof Class)
-      {
-         if (value != null)
-         {
-            Class clazz = (Class) type;
-            if (clazz.isEnum() || Enum.class.equals(clazz))
-            {
-               String string = (String) value;
-               return Enum.valueOf(clazz, string);
-            }
-         }
-         else
-         {
-            Class clazz = (Class) type;
-            if (clazz.isPrimitive())
-               throw new IllegalArgumentException("Attempt to use null as a primitive for: " + context);
-            return null;
-         }
-      }
-      return value;
-   }
-
-   /**
-    * Get the array type for a class
-    * 
-    * @param type the type
-    * @return return the array type or null if it is not an array
-    */
-   public static ArrayType checkArray(Type type)
-   {
-      if (type instanceof Class)
-      {
-         Class clazz = (Class) type;
-         if (clazz.isArray() == false)
-            return null;
-         int dimension = 1;
-         Class componentType = clazz.getComponentType();
-         while (componentType.isArray())
-         {
-            ++dimension;
-            componentType = componentType.getComponentType();
-         }
-         OpenType componentOpenType = getOpenType(componentType);
-         try
-         {
-            return new ArrayType(dimension, componentOpenType);
-         }
-         catch (RuntimeException e)
-         {
-            throw e;
-         }
-         catch (Exception e)
-         {
-            throw new RuntimeException(e);
-         }
-      }
-      if (type instanceof GenericArrayType)
-      {
-         GenericArrayType arrayType = (GenericArrayType) type;
-         int dimension = 1;
-         Type componentType = arrayType.getGenericComponentType();
-         while (componentType instanceof GenericArrayType)
-         {
-            ++dimension;
-            arrayType = (GenericArrayType) componentType;
-            componentType = arrayType.getGenericComponentType();
-         }
-         OpenType componentOpenType = getOpenType(componentType);
-         try
-         {
-            return new ArrayType(dimension, componentOpenType);
-         }
-         catch (RuntimeException e)
-         {
-            throw e;
-         }
-         catch (Exception e)
-         {
-            throw new RuntimeException(e);
-         }
-      }
-      return null;
-   }
-
-   /**
-    * Get the collection type for a class
-    * 
-    * @param type the type
-    * @return return the array type or null if it is not a collection
-    */
-   public static ArrayType checkCollection(Type type)
-   {
-      if (type instanceof ParameterizedType == false)
-      {
-         if (type instanceof Class)
-            return checkCollectionClass((Class) type);
-         else
-            return null;
-      }
-      ParameterizedType parameterizedType = (ParameterizedType) type;
-      Type rawType = parameterizedType.getRawType();
-      if (rawType instanceof Class == false)
-         return null;
-      Class rawClass = (Class) rawType;
-      if (Collection.class.isAssignableFrom(rawClass) == false)
-         return null;
-      Type componentType = parameterizedType.getActualTypeArguments()[0];
-      OpenType componentOpenType = getOpenType(componentType);
-      try
-      {
-         return new ArrayType(1, componentOpenType);
-      }
-      catch (RuntimeException e)
-      {
-         throw e;
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException(e);
-      }
-   }
-
-   /**
-    * Get the collection type for a class
-    * 
-    * @param clazz the class
-    * @return return the array type or null if it is not a collection
-    */
-   public static ArrayType checkCollectionClass(Class clazz)
-   {
-      if (Collection.class.isAssignableFrom(clazz) == false)
-         return null;
-      OpenType componentOpenType = getOpenType(Object.class);
-      try
-      {
-         return new ArrayType(1, componentOpenType);
-      }
-      catch (RuntimeException e)
-      {
-         throw e;
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException(e);
-      }
-   }
-
-   /**
-    * Construct an array type open data
-    *
-    * @param openType the open type
-    * @param value the value
-    * @param context the context
-    * @return the open data
-    * @throws Exception for any error
-    */
-   public static Object constructArrayData(OpenType openType, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-
-      ArrayType arrayType = (ArrayType) openType;
-      OpenType elementType = arrayType.getElementOpenType();
-      int dimension = arrayType.getDimension();
-
-      Class clazz = value.getClass();
-      if (clazz.isArray())
-      {
-         Object[] oldArray = (Object[]) value;
-         Class<?> componentType = Class.forName(arrayType.getClassName());
-         return constructArray(elementType, componentType.getComponentType(), dimension, oldArray, context);
-      }
-      if (value instanceof Collection)
-      {
-         Collection c = (Collection) value;
-         Object[] oldArray = c.toArray();
-         Class<?> componentType = Class.forName(arrayType.getClassName()); 
-         return constructArray(elementType, componentType.getComponentType(), dimension, oldArray, context);
-      }
-      throw new UnsupportedOperationException("Cannot construct array for: " + value);
-   }
-   
-   /**
-    * Construct an array of open data
-    * 
-    * @param elementType the element type
-    * @param componentType the componentType
-    * @param dimension the dimension
-    * @param oldArray the old array
-    * @param context the context
-    * @return the array
-    * @throws Exception for any error
-    */
-   private static Object[] constructArray(OpenType elementType, Class<?> componentType, int dimension, Object[] oldArray, Object context) throws Exception
-   {
-      if (oldArray == null)
-         return null;
-      
-      Object[] newArray = (Object[]) Array.newInstance(componentType, oldArray.length);
-      if (dimension > 1)
-      {
-         for (int i = 0; i < oldArray.length; ++i)
-         {
-            Object[] nestedOld = (Object[]) oldArray[i];
-            newArray[i] = constructArray(elementType, componentType.getComponentType(), dimension-1, nestedOld, context);
-         }
-      }
-      else
-      {
-         if (Object.class.equals(componentType))
-         {
-            for (int i = 0; i < oldArray.length; ++i)
-               newArray[i] = oldArray[i];
-         }
-         else
-         {
-            for (int i = 0; i < oldArray.length; ++i)
-               newArray[i] = construct(elementType, oldArray[i], context);
-         }
-      }
-
-      return newArray;
-   }
-   
-   /**
-    * Reconstruct an array type
-    *
-    * @param openType the open type
-    * @param type the type
-    * @param value the value
-    * @param context the context
-    * @return the value
-    * @throws Exception for any error
-    */
-   public static Object reconstructArrayData(OpenType openType, Type type, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-
-      ArrayType arrayType = (ArrayType) getOpenType(type);
-      OpenType elementType = arrayType.getElementOpenType();
-      int dimension = arrayType.getDimension();
-      Object[] oldArray = (Object[]) value;
-      if (type instanceof Class)
-      {
-         Class clazz = (Class) type;
-         if (clazz.isArray())
-            return reconstructArray(elementType, clazz.getComponentType(), dimension, oldArray, context);
-         // TODO FIXME
-         // else if (Set.class.isAssignableFrom(clazz))
-         //    return createSet(oldArray);
-         // else if (Collection.class.isAssignableFrom(clazz))
-         //    return createCollection(oldArray);
-      }
-      else if (type instanceof ParameterizedType)
-      {
-         ParameterizedType parameterizedType = (ParameterizedType) type;
-         Type rawType = parameterizedType.getRawType();
-         if (rawType instanceof Class)
-         {
-            Class raw = (Class) rawType;
-            if (Set.class.isAssignableFrom(raw))
-               return createSet(oldArray);
-            else if (Collection.class.isAssignableFrom(raw))
-               return createCollection(oldArray);
-         }
-      }
-      throw new UnsupportedOperationException("Cannot convert array type: " + type);
-   }
-   
-   /**
-    * Reconstruct an array
-    * 
-    * @param elementType the element type
-    * @param componentType the componentType
-    * @param dimension the dimension
-    * @param oldArray the old array of open data
-    * @param context the context
-    * @return the array
-    * @throws Exception for any error
-    */
-   private static Object[] reconstructArray(OpenType elementType, Class componentType, int dimension, Object[] oldArray, Object context) throws Exception
-   {
-      if (oldArray == null)
-         return null;
-      
-      Object[] newArray = (Object[]) Array.newInstance(componentType, oldArray.length);
-      if (dimension > 1)
-      {
-         for (int i = 0; i < oldArray.length; ++i)
-         {
-            Object[] nestedOld = (Object[]) oldArray[i];
-            newArray[i] = reconstructArray(elementType, componentType.getComponentType(), dimension-1, nestedOld, context);
-         }
-      }
-      else
-      {
-         for (int i = 0; i < oldArray.length; ++i)
-            newArray[i] = reconstruct(elementType, componentType, oldArray[i], context);
-      }
-
-      return newArray;
-   }
-
-   /**
-    * Create a collection
-    * 
-    * @param array the array
-    * @return the collection
-    */
-   private static Collection createCollection(Object[] array)
-   {
-      return Arrays.asList(array);
-   }
-   
-   /**
-    * Create a set
-    * 
-    * @param array the array
-    * @return the set
-    */
-   @SuppressWarnings("unchecked")
-   private static Set createSet(Object[] array)
-   {
-      HashSet result = new HashSet(array.length);
-      for (int i = 0; i < array.length; ++i)
-         result.add(array[i]);
-      return result;
-   }
-
-   /**
-    * Get the map type for a class
-    * 
-    * @param type the type
-    * @return return the tabular type or null if it is not a collection
-    */
-   public static TabularType checkMap(Type type)
-   {
-      if (type instanceof ParameterizedType == false)
-      {
-         if (type instanceof Class)
-            return checkMapClass((Class) type);
-         else
-            return null;
-      }
-      ParameterizedType parameterizedType = (ParameterizedType) type;
-      Type rawType = parameterizedType.getRawType();
-      if (rawType instanceof Class == false)
-         return null;
-      Class rawClass = (Class) rawType;
-      if (Map.class.isAssignableFrom(rawClass) == false)
-         return null;
-      Type[] args = parameterizedType.getActualTypeArguments();
-      Type keyType = args[0];
-      Type valueType = args[1];
-      return createMapType(keyType, valueType);
-   }
-
-   /**
-    * Get the map type for a class
-    * 
-    * @param clazz the class
-    * @return return the tabular type or null if it is not a collection
-    */
-   public static TabularType checkMapClass(Class clazz)
-   {
-      if (Map.class.isAssignableFrom(clazz) == false)
-         return null;
-      return createMapType(Object.class, Object.class);
-   }
-   
-   /**
-    * Create a map type
-    * 
-    * @param keyType the key type
-    * @param valueType the value type
-    * @return the map type
-    */
-   public static TabularType createMapType(Type keyType, Type valueType)
-   {
-      String name = Map.class.getName();
-      OpenType[] itemTypes = { getOpenType(keyType), getOpenType(valueType) };
-      try
-      {
-         CompositeType entryType = createMapEntryType(itemTypes);
-         return new TabularType(name, name, entryType, MAP_INDEX_NAMES);
-      }
-      catch (RuntimeException e)
-      {
-         throw e;
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException(e);
-      }
-   }
-   
-   /**
-    * Create a map type
-    * 
-    * @param itemTypes the item types
-    * @return the map entry type
-    */
-   private static CompositeType createMapEntryType(OpenType[] itemTypes)
-   {
-      String entryName = Map.Entry.class.getName();
-      try
-      {
-         return new CompositeType(entryName, entryName, MAP_ITEM_NAMES, MAP_ITEM_NAMES, itemTypes);
-      }
-      catch (RuntimeException e)
-      {
-         throw e;
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException(e);
-      }
-   }
-
-   /**
-    * Construct a tabular type open data
-    *
-    * @param openType the open type
-    * @param value the value
-    * @param context the context
-    * @return the open data
-    * @throws Exception for any error
-    */
-   @SuppressWarnings("unchecked")
-   public static Object constructTabularData(OpenType openType, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-
-      TabularType tabularType = (TabularType) openType;
-
-      if (value instanceof Map)
-      {
-         TabularDataSupport table = new TabularDataSupport(tabularType);
-         CompositeType entryType = tabularType.getRowType();
-         OpenType keyType = entryType.getType(MAP_KEY);
-         OpenType valueType = entryType.getType(MAP_VALUE);
-         
-         Map<Object, Object> m = (Map<Object, Object>) value;
-         for (Iterator<Map.Entry<Object, Object>> i = m.entrySet().iterator(); i.hasNext();)
-         {
-            Map.Entry<Object, Object> entry = i.next();
-            Object key = construct(keyType, entry.getKey(), context);
-            Object val = construct(valueType, entry.getValue(), context);
-            CompositeDataSupport data = new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { key, val });
-            table.put(data);
-         }
-         return table;
-      }
-      throw new UnsupportedOperationException("Cannot construct map for: " + value);
-   }
-   
-   /**
-    * Reconstruct a tabular type
-    *
-    * @param openType the open type
-    * @param type the type
-    * @param value the value
-    * @param context the context
-    * @return the value
-    * @throws Exception for any error
-    */
-   public static Object reconstructTabularData(OpenType openType, Type type, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-
-      TabularType tabularType = (TabularType) getOpenType(type);
-      if (type instanceof Class)
-      {
-         // TODO FIXME
-         // Class clazz = (Class) type;
-         // if (Map.class.isAssignableFrom(clazz))
-         //    return createMap(tabularType, Object.class, Object.class, value, context);
-      }
-      else if (type instanceof ParameterizedType)
-      {
-         ParameterizedType parameterizedType = (ParameterizedType) type;
-         Type rawType = parameterizedType.getRawType();
-         if (rawType instanceof Class)
-         {
-            Class raw = (Class) rawType;
-            if (Map.class.isAssignableFrom(raw))
-            {
-               Type keyType = parameterizedType.getActualTypeArguments()[0];
-               Type valueType = parameterizedType.getActualTypeArguments()[1];
-               return createMap(tabularType, keyType, valueType, value, context);
-            }
-         }
-      }
-      throw new UnsupportedOperationException("Cannot convert map type: " + type);
-   }
-
-   /**
-    * Create a map
-    * 
-    * @param openType the open type
-    * @param keyType the key type
-    * @param valueType the value type
-    * @param value the value
-    * @param context the context
-    * @return the map
-    * @throws Exception for any problem
-    */
-   @SuppressWarnings("unchecked")
-   private static Map createMap(TabularType openType, Type keyType, Type valueType, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-      
-      Map<Object, Object> result = new HashMap<Object, Object>();
-      
-      TabularData table = (TabularData) value;
-      Collection<?> values = table.values();
-      for (Object v : values)
-      {
-         CompositeData entry = CompositeData.class.cast(v);
-         Object key = reconstruct(keyType, entry.get(MAP_KEY), context);
-         Object val = reconstruct(valueType, entry.get(MAP_VALUE), context);
-         result.put(key, val);
-      }
-      
-      return result;
-   }
-
-   /**
-    * Construct composite type open data
-    *
-    * @param openType the open type
-    * @param value the value
-    * @param context the context
-    * @return the open data
-    * @throws Exception for any error
-    */
-   @SuppressWarnings("unchecked")
-   public static Object constructCompositeData(OpenType openType, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-      
-      Class clazz = value.getClass();
-      
-      CompositeType compositeType = (CompositeType) openType;
-      Set<String> nameSet = compositeType.keySet();
-      String[] names = nameSet.toArray(new String[nameSet.size()]);
-      
-      Object[] values = new Object[names.length];
-      
-      for (int i = 0 ; i < names.length; ++i)
-      {
-         String name = names[i];
-         OpenType itemType = compositeType.getType(name);
-         Method method = getCompositeDataMethod(clazz, name, itemType == SimpleType.BOOLEAN);
-         Object itemValue = method.invoke(value, null);
-         values[i] = construct(itemType, itemValue, context);
-      }
-      return new CompositeDataSupport(compositeType, names, values);
-   }
-
-   /**
-    * Reconstruct a composite type
-    *
-    * @param openType the open type
-    * @param type the type
-    * @param value the value
-    * @param context the context
-    * @return the value
-    * @throws Exception for any error
-    */
-   public static Object reconstructCompositeData(OpenType openType, Type type, Object value, Object context) throws Exception
-   {
-      if (value == null)
-         return null;
-      
-      CompositeData compositeData = (CompositeData) value;
-      CompositeDataInvocationHandler handler = new CompositeDataInvocationHandler(compositeData);
-      Class clazz = (Class) type;
-      Class[] interfaces = null;
-      if (clazz.isInterface())
-         interfaces = new Class[] { clazz };
-      else
-         interfaces = clazz.getInterfaces();
-      return Proxy.newProxyInstance(clazz.getClassLoader(), interfaces, handler);
-   }
-   
-   /**
-    * Get the key for a composite data getter method
-    * 
-    * @param method the method
-    * @return the key
-    */
-   public static String getCompositeDataKey(Method method)
-   {
-      String key = compositeDataKeyCache.get(method);
-      if (key != null)
-         return key;
-
-      StringBuilder fieldName = null;
-      
-      Class returnType = method.getReturnType();
-      Class[] paramTypes = method.getParameterTypes();
-      if (Void.TYPE.equals(returnType) == false && paramTypes.length == 0)
-      {
-         String name = method.getName();
-         if (name.startsWith("is") && name.length() > 2)
-         {
-            if (Boolean.TYPE.equals(returnType))
-            {
-               fieldName = new StringBuilder();
-               fieldName.append(Character.toLowerCase(name.charAt(2)));
-               if (name.length() > 3)
-                  fieldName.append(name.substring(3));
-            }
-         }
-         else if (name.startsWith("get") && name.length() > 3)
-         {
-            fieldName = new StringBuilder();
-            fieldName.append(Character.toLowerCase(name.charAt(3)));
-            if (name.length() > 4)
-               fieldName.append(name.substring(4));
-         }
-      }
-      
-      if (fieldName == null)
-         return null;
-      
-      String result = fieldName.toString();
-      compositeDataKeyCache.put(method, result);
-      return result;
-   }
-   
-   /**
-    * Get the key for a composite data getter method
-    * 
-    * @param clazz the class
-    * @param key the key
-    * @param isBoolean whether it is boolean
-    * @return the method
-    * @throws Exception for any error
-    */
-   @SuppressWarnings("unchecked")
-   public static Method getCompositeDataMethod(Class clazz, String key, boolean isBoolean) throws Exception
-   {
-      Map<String, Method> cache = compositeDataMethodCache.get(clazz);
-      if (cache != null)
-      {
-         Method method = cache.get(key);
-         if (method != null)
-            return method;
-      }
-
-      StringBuilder name = new StringBuilder();
-      name.append(Character.toUpperCase(key.charAt(0)));
-      if (key.length() > 1)
-         name.append(key.substring(1));
-      Method method = null;
-      try
-      {
-         method = clazz.getMethod("get" + name, null); 
-      }
-      catch (NoSuchMethodException e)
-      {
-         if (isBoolean)
-         {
-            try
-            {
-               method = clazz.getMethod("is" + name, null);
-            }
-            catch (NoSuchMethodException ignored)
-            {
-               throw e;
-            }
-         }
-         else
-         {
-            throw e;
-         }
-      }
-      
-      if (cache == null)
-      {
-         cache = new WeakValueHashMap();
-         compositeDataMethodCache.put(clazz, cache);
-      }
-      cache.put(key, method);
-      return method;
-   }
-   
-   /**
-    * Create a new MXBean
-    * 
-    * @param resource the resource
-    * @param mxbeanInterface the interface
-    * @return the MXBean
-    */
-   public static DynamicMBean createMXBean(Object resource, Class<?> mxbeanInterface)
-   {
-      try
-      {
-         return new MXBeanDelegate(resource, mxbeanInterface);
-      }
-      catch (RuntimeException e)
-      {
-         throw e;
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException("Error creating MXBean", e);
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.GenericArrayType;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.WeakHashMap;
+
+import javax.management.DynamicMBean;
+import javax.management.ObjectName;
+import javax.management.openmbean.ArrayType;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.CompositeDataSupport;
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+import javax.management.openmbean.TabularData;
+import javax.management.openmbean.TabularDataSupport;
+import javax.management.openmbean.TabularType;
+
+import org.jboss.util.collection.WeakValueHashMap;
+
+/**
+ * Utils.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanUtils
+{
+   /** A cache of methods to keys */
+   private static final Map<Method, String> compositeDataKeyCache = Collections.synchronizedMap(new WeakHashMap<Method, String>()); 
+
+   /** A cache of classes to key to getters */
+   private static final Map<Class, Map<String, Method>> compositeDataMethodCache = Collections.synchronizedMap(new WeakHashMap<Class, Map<String, Method>>()); 
+   
+   /** The map key */
+   public static final String MAP_KEY = "key";
+
+   /** The map value */
+   public static final String MAP_VALUE = "value";
+   
+   /** Map index names */
+   public static final String[] MAP_INDEX_NAMES = { MAP_KEY };
+   
+   /** Map item names */
+   public static final String[] MAP_ITEM_NAMES = { MAP_KEY, MAP_VALUE };
+   
+   /**
+    * Get the OpenType for a class
+    * 
+    * @param type the type
+    * @return the open type
+    */
+   public static OpenType getOpenType(Type type)
+   {
+      if (type == null)
+         throw new IllegalArgumentException("Null type");
+
+      OpenType result = checkType(type);
+      if (result != null)
+         return result;
+      Class clazz = (Class) type;
+      return CompositeTypeMetaDataFactory.getCompositeType(clazz);
+   }
+
+   /**
+    * Get the SimpleType for a class
+    * 
+    * @param type the type
+    * @return the open type
+    * @throws Exception for any error 
+    */
+   public static SimpleType getSimpleType(Class type) throws Exception
+   {
+      SimpleType simpleType = checkSimpleType(type);
+      if (simpleType == null)
+         throw new IllegalArgumentException("Not a SimpleType: " + type.getName());
+      return simpleType;
+   }
+
+   /**
+    * Get the for a class that is not composite
+    * 
+    * @param type the type
+    * @return the open type or null if composite
+    */
+   public static OpenType checkType(Type type)
+   {
+      OpenType result = checkSimpleType(type);
+      if (result != null)
+         return result;
+      result = checkEnum(type);
+      if (result != null)
+         return result;
+      result = checkArray(type);
+      if (result != null)
+         return result;
+      result = checkCollection(type);
+      if (result != null)
+         return result;
+      return checkMap(type);
+   }
+   
+   /**
+    * Create a composite data proxy
+    * 
+    * @param <T> the interface type
+    * @param intf the interface type
+    * @param compositeData the composite data
+    * @return the proxy
+    */
+   public static <T> T createCompositeDataProxy(Class<T> intf, CompositeData compositeData)
+   {
+      if (intf == null)
+         throw new IllegalArgumentException("Null interface");
+      InvocationHandler handler = new CompositeDataInvocationHandler(compositeData);
+      Object object = Proxy.newProxyInstance(intf.getClassLoader(), new Class[] { intf }, handler);
+      return intf.cast(object);
+   }
+   
+   /**
+    * Construct some open data
+    * 
+    * @param type the type
+    * @param value the value
+    * @param context the context
+    * @return the open data
+    * @throws Exception for any error
+    */
+   public static Object construct(Type type, Object value, Object context) throws Exception
+   {
+      OpenType openType = getOpenType(type);
+      return construct(openType, value, context);
+   }
+   
+   /**
+    * Construct some open data
+    * 
+    * @param openType the open type
+    * @param value the value
+    * @param context the context
+    * @return the open data
+    * @throws Exception for any error
+    */
+   public static Object construct(OpenType openType, Object value, Object context) throws Exception
+   {
+      if (openType instanceof SimpleType)
+         return constructSimpleData(value);
+      if (openType.isArray())
+         return constructArrayData(openType, value, context);
+      if (openType instanceof TabularType)
+         return constructTabularData(openType, value, context);
+      return constructCompositeData(openType, value, context);
+   }
+   
+   /**
+    * Reconstruct a type from an object
+    * 
+    * @param type the type
+    * @param value the value
+    * @param context for error reporting
+    * @return the object
+    * @throws Exception for any error
+    */
+   public static Object reconstruct(Type type, Object value, Object context) throws Exception
+   {
+      OpenType openType = MXBeanUtils.getOpenType(type);
+      return reconstruct(openType, type, value, context);
+   }
+   
+   /**
+    * Reconstruct a type from an object
+    * 
+    * @param openType the open type
+    * @param type the type
+    * @param value the value
+    * @param context for error reporting
+    * @return the object
+    * @throws Exception for any error
+    */
+   public static Object reconstruct(OpenType openType, Type type, Object value, Object context) throws Exception
+   {
+      if (openType instanceof SimpleType)
+         return reconstructSimpleData(type, value, context);
+      if (openType.isArray())
+         return reconstructArrayData(openType, type, value, context);
+      if (openType instanceof TabularType)
+         return reconstructTabularData(openType, type, value, context);
+      return reconstructCompositeData(openType, type, value, context);
+   }
+
+   /**
+    * Get the SimpleType for a class
+    * 
+    * @param type the type
+    * @return the simple type or null if not a simple type
+    */
+   public static SimpleType checkSimpleType(Type type)
+   {
+      if (BigDecimal.class.equals(type))
+         return SimpleType.BIGDECIMAL;
+      if (BigInteger.class.equals(type))
+         return SimpleType.BIGINTEGER;
+      if (Boolean.class.equals(type))
+         return SimpleType.BOOLEAN;
+      if (Boolean.TYPE.equals(type))
+         return SimpleType.BOOLEAN;
+      if (Byte.class.equals(type))
+         return SimpleType.BYTE;
+      if (Byte.TYPE.equals(type))
+         return SimpleType.BYTE;
+      if (Character.class.equals(type))
+         return SimpleType.CHARACTER;
+      if (Character.TYPE.equals(type))
+         return SimpleType.CHARACTER;
+      if (Date.class.equals(type))
+         return SimpleType.DATE;
+      if (Double.class.equals(type))
+         return SimpleType.DOUBLE;
+      if (Double.TYPE.equals(type))
+         return SimpleType.DOUBLE;
+      if (Float.class.equals(type))
+         return SimpleType.FLOAT;
+      if (Float.TYPE.equals(type))
+         return SimpleType.FLOAT;
+      if (Integer.class.equals(type))
+         return SimpleType.INTEGER;
+      if (Integer.TYPE.equals(type))
+         return SimpleType.INTEGER;
+      if (Long.class.equals(type))
+         return SimpleType.LONG;
+      if (Long.TYPE.equals(type))
+         return SimpleType.LONG;
+      if (ObjectName.class.equals(type))
+         return SimpleType.OBJECTNAME;
+      if (Short.class.equals(type))
+         return SimpleType.SHORT;
+      if (Short.TYPE.equals(type))
+         return SimpleType.SHORT;
+      if (String.class.equals(type))
+         return SimpleType.STRING;
+      if (Void.class.equals(type))
+         return SimpleType.VOID;
+      return null;
+   }
+
+   /**
+    * Get the simple type for an enum
+    * 
+    * @param type the type
+    * @return return the enum type or null if it is not an enum
+    */
+   public static SimpleType checkEnum(Type type)
+   {
+      if (type instanceof Class == false)
+         return null;
+      Class clazz = (Class) type;
+      if (clazz.isEnum() || Enum.class.equals(clazz))
+         return SimpleType.STRING;
+      return null;
+   }
+
+   /**
+    * Construct a simple type open data
+    * 
+    * @param value the value
+    * @return the simple type
+    */
+   public static Object constructSimpleData(Object value)
+   {
+      if (value != null && value instanceof Enum)
+      {
+         Enum enumeration = (Enum) value;
+         return enumeration.name();
+      }
+      return value;
+   }
+
+   /**
+    * Reconstruct a simple type open data
+    * 
+    * @param type the type
+    * @param value the value
+    * @param context the context
+    * @return the simple type
+    */
+   @SuppressWarnings("unchecked")
+   private static Object reconstructSimpleData(Type type, Object value, Object context)
+   {
+      if (type instanceof Class)
+      {
+         if (value != null)
+         {
+            Class clazz = (Class) type;
+            if (clazz.isEnum() || Enum.class.equals(clazz))
+            {
+               String string = (String) value;
+               return Enum.valueOf(clazz, string);
+            }
+         }
+         else
+         {
+            Class clazz = (Class) type;
+            if (clazz.isPrimitive())
+               throw new IllegalArgumentException("Attempt to use null as a primitive for: " + context);
+            return null;
+         }
+      }
+      return value;
+   }
+
+   /**
+    * Get the array type for a class
+    * 
+    * @param type the type
+    * @return return the array type or null if it is not an array
+    */
+   public static ArrayType checkArray(Type type)
+   {
+      if (type instanceof Class)
+      {
+         Class clazz = (Class) type;
+         if (clazz.isArray() == false)
+            return null;
+         int dimension = 1;
+         Class componentType = clazz.getComponentType();
+         while (componentType.isArray())
+         {
+            ++dimension;
+            componentType = componentType.getComponentType();
+         }
+         OpenType componentOpenType = getOpenType(componentType);
+         try
+         {
+            return new ArrayType(dimension, componentOpenType);
+         }
+         catch (RuntimeException e)
+         {
+            throw e;
+         }
+         catch (Exception e)
+         {
+            throw new RuntimeException(e);
+         }
+      }
+      if (type instanceof GenericArrayType)
+      {
+         GenericArrayType arrayType = (GenericArrayType) type;
+         int dimension = 1;
+         Type componentType = arrayType.getGenericComponentType();
+         while (componentType instanceof GenericArrayType)
+         {
+            ++dimension;
+            arrayType = (GenericArrayType) componentType;
+            componentType = arrayType.getGenericComponentType();
+         }
+         OpenType componentOpenType = getOpenType(componentType);
+         try
+         {
+            return new ArrayType(dimension, componentOpenType);
+         }
+         catch (RuntimeException e)
+         {
+            throw e;
+         }
+         catch (Exception e)
+         {
+            throw new RuntimeException(e);
+         }
+      }
+      return null;
+   }
+
+   /**
+    * Get the collection type for a class
+    * 
+    * @param type the type
+    * @return return the array type or null if it is not a collection
+    */
+   public static ArrayType checkCollection(Type type)
+   {
+      if (type instanceof ParameterizedType == false)
+      {
+         if (type instanceof Class)
+            return checkCollectionClass((Class) type);
+         else
+            return null;
+      }
+      ParameterizedType parameterizedType = (ParameterizedType) type;
+      Type rawType = parameterizedType.getRawType();
+      if (rawType instanceof Class == false)
+         return null;
+      Class rawClass = (Class) rawType;
+      if (Collection.class.isAssignableFrom(rawClass) == false)
+         return null;
+      Type componentType = parameterizedType.getActualTypeArguments()[0];
+      OpenType componentOpenType = getOpenType(componentType);
+      try
+      {
+         return new ArrayType(1, componentOpenType);
+      }
+      catch (RuntimeException e)
+      {
+         throw e;
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+
+   /**
+    * Get the collection type for a class
+    * 
+    * @param clazz the class
+    * @return return the array type or null if it is not a collection
+    */
+   public static ArrayType checkCollectionClass(Class clazz)
+   {
+      if (Collection.class.isAssignableFrom(clazz) == false)
+         return null;
+      OpenType componentOpenType = getOpenType(Object.class);
+      try
+      {
+         return new ArrayType(1, componentOpenType);
+      }
+      catch (RuntimeException e)
+      {
+         throw e;
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+
+   /**
+    * Construct an array type open data
+    *
+    * @param openType the open type
+    * @param value the value
+    * @param context the context
+    * @return the open data
+    * @throws Exception for any error
+    */
+   public static Object constructArrayData(OpenType openType, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+
+      ArrayType arrayType = (ArrayType) openType;
+      OpenType elementType = arrayType.getElementOpenType();
+      int dimension = arrayType.getDimension();
+
+      Class clazz = value.getClass();
+      if (clazz.isArray())
+      {
+         Object[] oldArray = (Object[]) value;
+         Class<?> componentType = Class.forName(arrayType.getClassName());
+         return constructArray(elementType, componentType.getComponentType(), dimension, oldArray, context);
+      }
+      if (value instanceof Collection)
+      {
+         Collection c = (Collection) value;
+         Object[] oldArray = c.toArray();
+         Class<?> componentType = Class.forName(arrayType.getClassName()); 
+         return constructArray(elementType, componentType.getComponentType(), dimension, oldArray, context);
+      }
+      throw new UnsupportedOperationException("Cannot construct array for: " + value);
+   }
+   
+   /**
+    * Construct an array of open data
+    * 
+    * @param elementType the element type
+    * @param componentType the componentType
+    * @param dimension the dimension
+    * @param oldArray the old array
+    * @param context the context
+    * @return the array
+    * @throws Exception for any error
+    */
+   private static Object[] constructArray(OpenType elementType, Class<?> componentType, int dimension, Object[] oldArray, Object context) throws Exception
+   {
+      if (oldArray == null)
+         return null;
+      
+      Object[] newArray = (Object[]) Array.newInstance(componentType, oldArray.length);
+      if (dimension > 1)
+      {
+         for (int i = 0; i < oldArray.length; ++i)
+         {
+            Object[] nestedOld = (Object[]) oldArray[i];
+            newArray[i] = constructArray(elementType, componentType.getComponentType(), dimension-1, nestedOld, context);
+         }
+      }
+      else
+      {
+         if (Object.class.equals(componentType))
+         {
+            for (int i = 0; i < oldArray.length; ++i)
+               newArray[i] = oldArray[i];
+         }
+         else
+         {
+            for (int i = 0; i < oldArray.length; ++i)
+               newArray[i] = construct(elementType, oldArray[i], context);
+         }
+      }
+
+      return newArray;
+   }
+   
+   /**
+    * Reconstruct an array type
+    *
+    * @param openType the open type
+    * @param type the type
+    * @param value the value
+    * @param context the context
+    * @return the value
+    * @throws Exception for any error
+    */
+   public static Object reconstructArrayData(OpenType openType, Type type, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+
+      ArrayType arrayType = (ArrayType) getOpenType(type);
+      OpenType elementType = arrayType.getElementOpenType();
+      int dimension = arrayType.getDimension();
+      Object[] oldArray = (Object[]) value;
+      if (type instanceof Class)
+      {
+         Class clazz = (Class) type;
+         if (clazz.isArray())
+            return reconstructArray(elementType, clazz.getComponentType(), dimension, oldArray, context);
+         // TODO FIXME
+         // else if (Set.class.isAssignableFrom(clazz))
+         //    return createSet(oldArray);
+         // else if (Collection.class.isAssignableFrom(clazz))
+         //    return createCollection(oldArray);
+      }
+      else if (type instanceof ParameterizedType)
+      {
+         ParameterizedType parameterizedType = (ParameterizedType) type;
+         Type rawType = parameterizedType.getRawType();
+         if (rawType instanceof Class)
+         {
+            Class raw = (Class) rawType;
+            if (Set.class.isAssignableFrom(raw))
+               return createSet(oldArray);
+            else if (Collection.class.isAssignableFrom(raw))
+               return createCollection(oldArray);
+         }
+      }
+      throw new UnsupportedOperationException("Cannot convert array type: " + type);
+   }
+   
+   /**
+    * Reconstruct an array
+    * 
+    * @param elementType the element type
+    * @param componentType the componentType
+    * @param dimension the dimension
+    * @param oldArray the old array of open data
+    * @param context the context
+    * @return the array
+    * @throws Exception for any error
+    */
+   private static Object[] reconstructArray(OpenType elementType, Class componentType, int dimension, Object[] oldArray, Object context) throws Exception
+   {
+      if (oldArray == null)
+         return null;
+      
+      Object[] newArray = (Object[]) Array.newInstance(componentType, oldArray.length);
+      if (dimension > 1)
+      {
+         for (int i = 0; i < oldArray.length; ++i)
+         {
+            Object[] nestedOld = (Object[]) oldArray[i];
+            newArray[i] = reconstructArray(elementType, componentType.getComponentType(), dimension-1, nestedOld, context);
+         }
+      }
+      else
+      {
+         for (int i = 0; i < oldArray.length; ++i)
+            newArray[i] = reconstruct(elementType, componentType, oldArray[i], context);
+      }
+
+      return newArray;
+   }
+
+   /**
+    * Create a collection
+    * 
+    * @param array the array
+    * @return the collection
+    */
+   private static Collection createCollection(Object[] array)
+   {
+      return Arrays.asList(array);
+   }
+   
+   /**
+    * Create a set
+    * 
+    * @param array the array
+    * @return the set
+    */
+   @SuppressWarnings("unchecked")
+   private static Set createSet(Object[] array)
+   {
+      HashSet result = new HashSet(array.length);
+      for (int i = 0; i < array.length; ++i)
+         result.add(array[i]);
+      return result;
+   }
+
+   /**
+    * Get the map type for a class
+    * 
+    * @param type the type
+    * @return return the tabular type or null if it is not a collection
+    */
+   public static TabularType checkMap(Type type)
+   {
+      if (type instanceof ParameterizedType == false)
+      {
+         if (type instanceof Class)
+            return checkMapClass((Class) type);
+         else
+            return null;
+      }
+      ParameterizedType parameterizedType = (ParameterizedType) type;
+      Type rawType = parameterizedType.getRawType();
+      if (rawType instanceof Class == false)
+         return null;
+      Class rawClass = (Class) rawType;
+      if (Map.class.isAssignableFrom(rawClass) == false)
+         return null;
+      Type[] args = parameterizedType.getActualTypeArguments();
+      Type keyType = args[0];
+      Type valueType = args[1];
+      return createMapType(keyType, valueType);
+   }
+
+   /**
+    * Get the map type for a class
+    * 
+    * @param clazz the class
+    * @return return the tabular type or null if it is not a collection
+    */
+   public static TabularType checkMapClass(Class clazz)
+   {
+      if (Map.class.isAssignableFrom(clazz) == false)
+         return null;
+      return createMapType(Object.class, Object.class);
+   }
+   
+   /**
+    * Create a map type
+    * 
+    * @param keyType the key type
+    * @param valueType the value type
+    * @return the map type
+    */
+   public static TabularType createMapType(Type keyType, Type valueType)
+   {
+      String name = Map.class.getName();
+      OpenType[] itemTypes = { getOpenType(keyType), getOpenType(valueType) };
+      try
+      {
+         CompositeType entryType = createMapEntryType(itemTypes);
+         return new TabularType(name, name, entryType, MAP_INDEX_NAMES);
+      }
+      catch (RuntimeException e)
+      {
+         throw e;
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+   
+   /**
+    * Create a map type
+    * 
+    * @param itemTypes the item types
+    * @return the map entry type
+    */
+   private static CompositeType createMapEntryType(OpenType[] itemTypes)
+   {
+      String entryName = Map.Entry.class.getName();
+      try
+      {
+         return new CompositeType(entryName, entryName, MAP_ITEM_NAMES, MAP_ITEM_NAMES, itemTypes);
+      }
+      catch (RuntimeException e)
+      {
+         throw e;
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+
+   /**
+    * Construct a tabular type open data
+    *
+    * @param openType the open type
+    * @param value the value
+    * @param context the context
+    * @return the open data
+    * @throws Exception for any error
+    */
+   @SuppressWarnings("unchecked")
+   public static Object constructTabularData(OpenType openType, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+
+      TabularType tabularType = (TabularType) openType;
+
+      if (value instanceof Map)
+      {
+         TabularDataSupport table = new TabularDataSupport(tabularType);
+         CompositeType entryType = tabularType.getRowType();
+         OpenType keyType = entryType.getType(MAP_KEY);
+         OpenType valueType = entryType.getType(MAP_VALUE);
+         
+         Map<Object, Object> m = (Map<Object, Object>) value;
+         for (Iterator<Map.Entry<Object, Object>> i = m.entrySet().iterator(); i.hasNext();)
+         {
+            Map.Entry<Object, Object> entry = i.next();
+            Object key = construct(keyType, entry.getKey(), context);
+            Object val = construct(valueType, entry.getValue(), context);
+            CompositeDataSupport data = new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { key, val });
+            table.put(data);
+         }
+         return table;
+      }
+      throw new UnsupportedOperationException("Cannot construct map for: " + value);
+   }
+   
+   /**
+    * Reconstruct a tabular type
+    *
+    * @param openType the open type
+    * @param type the type
+    * @param value the value
+    * @param context the context
+    * @return the value
+    * @throws Exception for any error
+    */
+   public static Object reconstructTabularData(OpenType openType, Type type, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+
+      TabularType tabularType = (TabularType) getOpenType(type);
+      if (type instanceof Class)
+      {
+         // TODO FIXME
+         // Class clazz = (Class) type;
+         // if (Map.class.isAssignableFrom(clazz))
+         //    return createMap(tabularType, Object.class, Object.class, value, context);
+      }
+      else if (type instanceof ParameterizedType)
+      {
+         ParameterizedType parameterizedType = (ParameterizedType) type;
+         Type rawType = parameterizedType.getRawType();
+         if (rawType instanceof Class)
+         {
+            Class raw = (Class) rawType;
+            if (Map.class.isAssignableFrom(raw))
+            {
+               Type keyType = parameterizedType.getActualTypeArguments()[0];
+               Type valueType = parameterizedType.getActualTypeArguments()[1];
+               return createMap(tabularType, keyType, valueType, value, context);
+            }
+         }
+      }
+      throw new UnsupportedOperationException("Cannot convert map type: " + type);
+   }
+
+   /**
+    * Create a map
+    * 
+    * @param openType the open type
+    * @param keyType the key type
+    * @param valueType the value type
+    * @param value the value
+    * @param context the context
+    * @return the map
+    * @throws Exception for any problem
+    */
+   @SuppressWarnings("unchecked")
+   private static Map createMap(TabularType openType, Type keyType, Type valueType, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+      
+      Map<Object, Object> result = new HashMap<Object, Object>();
+      
+      TabularData table = (TabularData) value;
+      Collection<?> values = table.values();
+      for (Object v : values)
+      {
+         CompositeData entry = CompositeData.class.cast(v);
+         Object key = reconstruct(keyType, entry.get(MAP_KEY), context);
+         Object val = reconstruct(valueType, entry.get(MAP_VALUE), context);
+         result.put(key, val);
+      }
+      
+      return result;
+   }
+
+   /**
+    * Construct composite type open data
+    *
+    * @param openType the open type
+    * @param value the value
+    * @param context the context
+    * @return the open data
+    * @throws Exception for any error
+    */
+   @SuppressWarnings("unchecked")
+   public static Object constructCompositeData(OpenType openType, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+      
+      Class clazz = value.getClass();
+      
+      CompositeType compositeType = (CompositeType) openType;
+      Set<String> nameSet = compositeType.keySet();
+      String[] names = nameSet.toArray(new String[nameSet.size()]);
+      
+      Object[] values = new Object[names.length];
+      
+      for (int i = 0 ; i < names.length; ++i)
+      {
+         String name = names[i];
+         OpenType itemType = compositeType.getType(name);
+         Method method = getCompositeDataMethod(clazz, name, itemType == SimpleType.BOOLEAN);
+         Object itemValue = method.invoke(value, null);
+         values[i] = construct(itemType, itemValue, context);
+      }
+      return new CompositeDataSupport(compositeType, names, values);
+   }
+
+   /**
+    * Reconstruct a composite type
+    *
+    * @param openType the open type
+    * @param type the type
+    * @param value the value
+    * @param context the context
+    * @return the value
+    * @throws Exception for any error
+    */
+   public static Object reconstructCompositeData(OpenType openType, Type type, Object value, Object context) throws Exception
+   {
+      if (value == null)
+         return null;
+      
+      CompositeData compositeData = (CompositeData) value;
+      CompositeDataInvocationHandler handler = new CompositeDataInvocationHandler(compositeData);
+      Class clazz = (Class) type;
+      Class[] interfaces = null;
+      if (clazz.isInterface())
+         interfaces = new Class[] { clazz };
+      else
+         interfaces = clazz.getInterfaces();
+      return Proxy.newProxyInstance(clazz.getClassLoader(), interfaces, handler);
+   }
+   
+   /**
+    * Get the key for a composite data getter method
+    * 
+    * @param method the method
+    * @return the key
+    */
+   public static String getCompositeDataKey(Method method)
+   {
+      String key = compositeDataKeyCache.get(method);
+      if (key != null)
+         return key;
+
+      StringBuilder fieldName = null;
+      
+      Class returnType = method.getReturnType();
+      Class[] paramTypes = method.getParameterTypes();
+      if (Void.TYPE.equals(returnType) == false && paramTypes.length == 0)
+      {
+         String name = method.getName();
+         if (name.startsWith("is") && name.length() > 2)
+         {
+            if (Boolean.TYPE.equals(returnType))
+            {
+               fieldName = new StringBuilder();
+               fieldName.append(Character.toLowerCase(name.charAt(2)));
+               if (name.length() > 3)
+                  fieldName.append(name.substring(3));
+            }
+         }
+         else if (name.startsWith("get") && name.length() > 3)
+         {
+            fieldName = new StringBuilder();
+            fieldName.append(Character.toLowerCase(name.charAt(3)));
+            if (name.length() > 4)
+               fieldName.append(name.substring(4));
+         }
+      }
+      
+      if (fieldName == null)
+         return null;
+      
+      String result = fieldName.toString();
+      compositeDataKeyCache.put(method, result);
+      return result;
+   }
+   
+   /**
+    * Get the key for a composite data getter method
+    * 
+    * @param clazz the class
+    * @param key the key
+    * @param isBoolean whether it is boolean
+    * @return the method
+    * @throws Exception for any error
+    */
+   @SuppressWarnings("unchecked")
+   public static Method getCompositeDataMethod(Class clazz, String key, boolean isBoolean) throws Exception
+   {
+      Map<String, Method> cache = compositeDataMethodCache.get(clazz);
+      if (cache != null)
+      {
+         Method method = cache.get(key);
+         if (method != null)
+            return method;
+      }
+
+      StringBuilder name = new StringBuilder();
+      name.append(Character.toUpperCase(key.charAt(0)));
+      if (key.length() > 1)
+         name.append(key.substring(1));
+      Method method = null;
+      try
+      {
+         method = clazz.getMethod("get" + name, null); 
+      }
+      catch (NoSuchMethodException e)
+      {
+         if (isBoolean)
+         {
+            try
+            {
+               method = clazz.getMethod("is" + name, null);
+            }
+            catch (NoSuchMethodException ignored)
+            {
+               throw e;
+            }
+         }
+         else
+         {
+            throw e;
+         }
+      }
+      
+      if (cache == null)
+      {
+         cache = new WeakValueHashMap();
+         compositeDataMethodCache.put(clazz, cache);
+      }
+      cache.put(key, method);
+      return method;
+   }
+   
+   /**
+    * Create a new MXBean
+    * 
+    * @param resource the resource
+    * @param mxbeanInterface the interface
+    * @return the MXBean
+    */
+   public static DynamicMBean createMXBean(Object resource, Class<?> mxbeanInterface)
+   {
+      try
+      {
+         return new MXBeanDelegate(resource, mxbeanInterface);
+      }
+      catch (RuntimeException e)
+      {
+         throw e;
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException("Error creating MXBean", e);
+      }
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/NotificationType.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/NotificationType.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/NotificationType.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,48 +1,48 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * NotificationType.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
- at Documented
- at Inherited
- at Target(ElementType.TYPE)
- at Retention(RetentionPolicy.RUNTIME)
-public @interface NotificationType
-{
-   /** The notification type */
-   String value();
-   
-   /** The user data class */
-   Class userDataClass() default void.class;
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * NotificationType.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at Documented
+ at Inherited
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+public @interface NotificationType
+{
+   /** The notification type */
+   String value();
+   
+   /** The user data class */
+   Class userDataClass() default void.class;
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/mxbean/SkeletonOpenType.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/mxbean/SkeletonOpenType.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/mxbean/SkeletonOpenType.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,85 +1,85 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-
-import javax.management.openmbean.OpenType;
-
-import org.jboss.util.UnreachableStatementException;
-
-/**
- * SkeletonOpenType.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class SkeletonOpenType
-{
-   /** The open type */
-   private OpenType openType;
-   
-   /** The composite type meta data */
-   private CompositeTypeMetaData composite;
-
-   /**
-    * Create a new SkeletonOpenType.
-    * 
-    * @param type the type
-    */
-   public SkeletonOpenType(Type type)
-   {
-      openType = MXBeanUtils.checkType(type);
-      if (openType != null)
-         return;
-      Class clazz = null;
-      if (type instanceof ParameterizedType)
-      {
-         ParameterizedType parameterizedType = (ParameterizedType) type;
-         clazz = (Class) parameterizedType.getRawType();
-      }
-      else if (type instanceof Class)
-      {
-         clazz = (Class) type;
-      }
-      else
-      {
-         throw new UnsupportedOperationException("Unable to create open type for " + type);
-      }
-      composite = CompositeTypeMetaDataFactory.getCompositeTypeMetaData(clazz);
-   }
-   
-   /**
-    * Get the openType.
-    * 
-    * @return the openType.
-    */
-   public OpenType getOpenType()
-   {
-      if (openType != null)
-         return openType;
-      if (composite != null)
-         return composite.getCompositeType();
-      throw new UnreachableStatementException();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+import javax.management.openmbean.OpenType;
+
+import org.jboss.util.UnreachableStatementException;
+
+/**
+ * SkeletonOpenType.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class SkeletonOpenType
+{
+   /** The open type */
+   private OpenType openType;
+   
+   /** The composite type meta data */
+   private CompositeTypeMetaData composite;
+
+   /**
+    * Create a new SkeletonOpenType.
+    * 
+    * @param type the type
+    */
+   public SkeletonOpenType(Type type)
+   {
+      openType = MXBeanUtils.checkType(type);
+      if (openType != null)
+         return;
+      Class clazz = null;
+      if (type instanceof ParameterizedType)
+      {
+         ParameterizedType parameterizedType = (ParameterizedType) type;
+         clazz = (Class) parameterizedType.getRawType();
+      }
+      else if (type instanceof Class)
+      {
+         clazz = (Class) type;
+      }
+      else
+      {
+         throw new UnsupportedOperationException("Unable to create open type for " + type);
+      }
+      composite = CompositeTypeMetaDataFactory.getCompositeTypeMetaData(clazz);
+   }
+   
+   /**
+    * Get the openType.
+    * 
+    * @return the openType.
+    */
+   public OpenType getOpenType()
+   {
+      if (openType != null)
+         return openType;
+      if (composite != null)
+         return composite.getCompositeType();
+      throw new UnreachableStatementException();
+   }
+}

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/AttributePersistenceManager.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/AttributePersistenceManager.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/AttributePersistenceManager.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import javax.management.AttributeList;

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/DelegatingPersistenceManager.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/DelegatingPersistenceManager.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/DelegatingPersistenceManager.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import javax.management.Attribute;

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/MBeanInfoOdb.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/MBeanInfoOdb.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/MBeanInfoOdb.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import java.io.File;

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/MbeanInfoDbPm.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/MbeanInfoDbPm.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/MbeanInfoDbPm.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import java.io.File;

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/NullPersistence.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/NullPersistence.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/NullPersistence.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import javax.management.MBeanInfo;

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/ObjectStreamPersistenceManager.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/ObjectStreamPersistenceManager.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/ObjectStreamPersistenceManager.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import java.io.File;

Modified: trunk/mbeans/src/main/org/jboss/mx/persistence/PersistenceManager.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/persistence/PersistenceManager.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/persistence/PersistenceManager.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.persistence;
 
 import javax.management.MBeanException;

Modified: trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,8 +1,8 @@
 /*
- * 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.
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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

Modified: trunk/mbeans/src/main/org/jboss/mx/server/Interceptable.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/Interceptable.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/Interceptable.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server;
 
 import org.jboss.mx.interceptor.Interceptor;

Modified: trunk/mbeans/src/main/org/jboss/mx/server/Invocation.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/Invocation.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/Invocation.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server;
 
 import java.util.Arrays;

Modified: trunk/mbeans/src/main/org/jboss/mx/server/InvocationContext.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/InvocationContext.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/InvocationContext.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,8 +1,8 @@
 /*
- * 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.
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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

Modified: trunk/mbeans/src/main/org/jboss/mx/server/MBeanInvoker.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/MBeanInvoker.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/MBeanInvoker.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server;
 
 import javax.management.Descriptor;

Modified: trunk/mbeans/src/main/org/jboss/mx/server/MethodMapper.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/MethodMapper.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/MethodMapper.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,8 +1,8 @@
 /*
- * 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.
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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

Modified: trunk/mbeans/src/main/org/jboss/mx/server/Suspendable.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/Suspendable.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/Suspendable.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/server/TCLAction.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/TCLAction.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/TCLAction.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server;
 
 import java.security.PrivilegedAction;

Modified: trunk/mbeans/src/main/org/jboss/mx/server/TimeoutException.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/TimeoutException.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/TimeoutException.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server;
 
 /**

Modified: trunk/mbeans/src/main/org/jboss/mx/server/registry/MBeanEntry.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/registry/MBeanEntry.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/registry/MBeanEntry.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server.registry;
 
 import java.util.Map;

Modified: trunk/mbeans/src/main/org/jboss/mx/server/registry/MbeanInfoDb.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/server/registry/MbeanInfoDb.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/server/registry/MbeanInfoDb.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.server.registry;
 
 import java.util.Enumeration;

Modified: trunk/mbeans/src/main/org/jboss/mx/service/ServiceConstants.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/service/ServiceConstants.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/service/ServiceConstants.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.service;
 
 

Modified: trunk/mbeans/src/main/org/jboss/mx/util/JBossNotCompliantMBeanException.java
===================================================================
--- trunk/mbeans/src/main/org/jboss/mx/util/JBossNotCompliantMBeanException.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/main/org/jboss/mx/util/JBossNotCompliantMBeanException.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -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 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.util;
 
 

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsInterface.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsInterface.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsInterface.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,98 +1,98 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.management.openmbean.ArrayType;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-
-import org.jboss.mx.mxbean.MXBeanUtils;
-
-/**
- * CollectionsInterface.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface CollectionsInterface
-{
-   String ARRAY = "array";
-   String COLLECTION = "collection";
-   String SET = "set";
-   String LIST = "list";
-   String MAP = "map";
-   String ENUM = "enum";
-   
-   String[] KEYS =
-   {
-      ARRAY,
-      COLLECTION,
-      SET,
-      LIST,
-      MAP,
-      ENUM
-   };
-
-   OpenType[] TYPES = Initializer._TYPES;
-
-   String[] getArray();
-   
-   Collection<String> getCollection();
-   
-   Set<String> getSet();
-   
-   List<String> getList();
-   
-   Map<String, Integer> getMap();
-   
-   TestEnum getEnum();
-   
-   public static class Initializer
-   {
-      static OpenType[] _TYPES;
-      
-      static
-      {
-         try
-         {
-            _TYPES = new OpenType[]
-            {
-               new ArrayType(1, SimpleType.STRING),
-               new ArrayType(1, SimpleType.STRING),
-               new ArrayType(1, SimpleType.STRING),
-               new ArrayType(1, SimpleType.STRING),
-               MXBeanUtils.createMapType(String.class, Integer.class),
-               SimpleType.STRING
-            };
-         }
-         catch (Exception e)
-         {
-            throw new RuntimeException(e);
-         }
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.openmbean.ArrayType;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+
+import org.jboss.mx.mxbean.MXBeanUtils;
+
+/**
+ * CollectionsInterface.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface CollectionsInterface
+{
+   String ARRAY = "array";
+   String COLLECTION = "collection";
+   String SET = "set";
+   String LIST = "list";
+   String MAP = "map";
+   String ENUM = "enum";
+   
+   String[] KEYS =
+   {
+      ARRAY,
+      COLLECTION,
+      SET,
+      LIST,
+      MAP,
+      ENUM
+   };
+
+   OpenType[] TYPES = Initializer._TYPES;
+
+   String[] getArray();
+   
+   Collection<String> getCollection();
+   
+   Set<String> getSet();
+   
+   List<String> getList();
+   
+   Map<String, Integer> getMap();
+   
+   TestEnum getEnum();
+   
+   public static class Initializer
+   {
+      static OpenType[] _TYPES;
+      
+      static
+      {
+         try
+         {
+            _TYPES = new OpenType[]
+            {
+               new ArrayType(1, SimpleType.STRING),
+               new ArrayType(1, SimpleType.STRING),
+               new ArrayType(1, SimpleType.STRING),
+               new ArrayType(1, SimpleType.STRING),
+               MXBeanUtils.createMapType(String.class, Integer.class),
+               SimpleType.STRING
+            };
+         }
+         catch (Exception e)
+         {
+            throw new RuntimeException(e);
+         }
+      }
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupport.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupport.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupport.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,129 +1,129 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.mx.mxbean.MXBeanSupport;
-
-/**
- * CollectionsMXBeanSupport.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CollectionsMXBeanSupport extends MXBeanSupport implements CollectionsMXBeanSupportMXBean
-{
-   String[] array;
-   Collection<String> collection;
-   Set<String> set;
-   List<String> list;
-   Map<String, Integer> map;
-   TestEnum enumeration;
-   
-   public CollectionsMXBeanSupport()
-   {
-   }
-   
-   public CollectionsMXBeanSupport(String[] array, Collection<String> collection, Set<String> set, List<String> list, Map<String, Integer> map, TestEnum enumeration)
-   {
-      this.array = array;
-      this.collection = collection;
-      this.set = set;
-      this.list = list;
-      this.map = map;
-      this.enumeration = enumeration;
-   }
-
-   public String[] getArray()
-   {
-      return array;
-   }
-   
-   public Collection<String> getCollection()
-   {
-      return collection;
-   }
-
-   public List<String> getList()
-   {
-      return list;
-   }
-
-   public Set<String> getSet()
-   {
-      return set;
-   }
-
-   public Map<String, Integer> getMap()
-   {
-      return map;
-   }
-   
-   public TestEnum getEnum()
-   {
-      return enumeration;
-   }
-
-   public void setEnum(TestEnum enumeration)
-   {
-      this.enumeration = enumeration;
-   }
-
-   public void setArray(String[] array)
-   {
-      this.array = array;
-   }
-
-   public void setCollection(Collection<String> collection)
-   {
-      this.collection = collection;
-   }
-
-   public void setList(List<String> list)
-   {
-      this.list = list;
-   }
-
-   public void setMap(Map<String, Integer> map)
-   {
-      this.map = map;
-   }
-
-   public void setSet(Set<String> set)
-   {
-      this.set = set;
-   }
-
-   public List<String> echoReverse(List<String> list)
-   {
-      ArrayList<String> result = new ArrayList<String>(list.size());
-      for (ListIterator<String> i = list.listIterator(list.size()); i.hasPrevious();)
-         result.add(i.previous());
-      return result;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.mx.mxbean.MXBeanSupport;
+
+/**
+ * CollectionsMXBeanSupport.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CollectionsMXBeanSupport extends MXBeanSupport implements CollectionsMXBeanSupportMXBean
+{
+   String[] array;
+   Collection<String> collection;
+   Set<String> set;
+   List<String> list;
+   Map<String, Integer> map;
+   TestEnum enumeration;
+   
+   public CollectionsMXBeanSupport()
+   {
+   }
+   
+   public CollectionsMXBeanSupport(String[] array, Collection<String> collection, Set<String> set, List<String> list, Map<String, Integer> map, TestEnum enumeration)
+   {
+      this.array = array;
+      this.collection = collection;
+      this.set = set;
+      this.list = list;
+      this.map = map;
+      this.enumeration = enumeration;
+   }
+
+   public String[] getArray()
+   {
+      return array;
+   }
+   
+   public Collection<String> getCollection()
+   {
+      return collection;
+   }
+
+   public List<String> getList()
+   {
+      return list;
+   }
+
+   public Set<String> getSet()
+   {
+      return set;
+   }
+
+   public Map<String, Integer> getMap()
+   {
+      return map;
+   }
+   
+   public TestEnum getEnum()
+   {
+      return enumeration;
+   }
+
+   public void setEnum(TestEnum enumeration)
+   {
+      this.enumeration = enumeration;
+   }
+
+   public void setArray(String[] array)
+   {
+      this.array = array;
+   }
+
+   public void setCollection(Collection<String> collection)
+   {
+      this.collection = collection;
+   }
+
+   public void setList(List<String> list)
+   {
+      this.list = list;
+   }
+
+   public void setMap(Map<String, Integer> map)
+   {
+      this.map = map;
+   }
+
+   public void setSet(Set<String> set)
+   {
+      this.set = set;
+   }
+
+   public List<String> echoReverse(List<String> list)
+   {
+      ArrayList<String> result = new ArrayList<String>(list.size());
+      for (ListIterator<String> i = list.listIterator(list.size()); i.hasPrevious();)
+         result.add(i.previous());
+      return result;
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupportMXBean.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupportMXBean.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CollectionsMXBeanSupportMXBean.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,57 +1,57 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.ObjectNameFactory;
-
-/**
- * CollectionsMXBeanSupportMXBean.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface CollectionsMXBeanSupportMXBean extends CollectionsInterface
-{
-   /** The Object name */
-   ObjectName REGISTERED_OBJECT_NAME = ObjectNameFactory.create("test:test=CollectionsMXBeanSupport");
-
-   void setEnum(TestEnum enumeration);
-
-   void setArray(String[] array);
-
-   void setCollection(Collection<String> collection);
-
-   void setList(List<String> list);
-
-   void setMap(Map<String, Integer> map);
-
-   void setSet(Set<String> set);
-   
-   List<String> echoReverse(List<String> list);
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.ObjectName;
+
+import org.jboss.mx.util.ObjectNameFactory;
+
+/**
+ * CollectionsMXBeanSupportMXBean.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface CollectionsMXBeanSupportMXBean extends CollectionsInterface
+{
+   /** The Object name */
+   ObjectName REGISTERED_OBJECT_NAME = ObjectNameFactory.create("test:test=CollectionsMXBeanSupport");
+
+   void setEnum(TestEnum enumeration);
+
+   void setArray(String[] array);
+
+   void setCollection(Collection<String> collection);
+
+   void setList(List<String> list);
+
+   void setMap(Map<String, Integer> map);
+
+   void setSet(Set<String> set);
+   
+   List<String> echoReverse(List<String> list);
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeInterface.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeInterface.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeInterface.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,55 +1,55 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-
-import org.jboss.mx.mxbean.CompositeTypeMetaDataFactory;
-
-/**
- * CompositeInterface.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface CompositeInterface
-{
-   String SIMPLE = "simple";
-   String COMPOSITE = "composite";
-   
-   String[] KEYS =
-   {
-      SIMPLE,
-      COMPOSITE
-   };
-
-   OpenType[] TYPES = 
-   {
-      SimpleType.STRING,
-      CompositeTypeMetaDataFactory.getCompositeType(SimpleInterface.class)
-   };
-
-   String getSimple();
-
-   SimpleInterface getComposite();
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+
+import org.jboss.mx.mxbean.CompositeTypeMetaDataFactory;
+
+/**
+ * CompositeInterface.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface CompositeInterface
+{
+   String SIMPLE = "simple";
+   String COMPOSITE = "composite";
+   
+   String[] KEYS =
+   {
+      SIMPLE,
+      COMPOSITE
+   };
+
+   OpenType[] TYPES = 
+   {
+      SimpleType.STRING,
+      CompositeTypeMetaDataFactory.getCompositeType(SimpleInterface.class)
+   };
+
+   String getSimple();
+
+   SimpleInterface getComposite();
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupport.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupport.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupport.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,71 +1,71 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import org.jboss.mx.mxbean.MXBeanSupport;
-
-/**
- * SimpleMXBeanSupport.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeMXBeanSupport extends MXBeanSupport implements CompositeMXBeanSupportMXBean
-{
-   private String simple;
-   private SimpleInterface composite;
-
-   public String getSimple()
-   {
-      return simple;
-   }
-   
-   public CompositeMXBeanSupport(String simple, SimpleInterface composite)
-   {
-      this.simple = simple;
-      this.composite = composite;
-   }
-   
-   public SimpleInterface getComposite()
-   {
-      return composite;
-   }
-
-   public void setComposite(SimpleInterface composite)
-   {
-      this.composite = composite;
-   }
-
-   public void setSimple(String simple)
-   {
-      this.simple = simple;
-   }
-
-   public SimpleInterface echoReverse(SimpleInterface composite)
-   {
-      SimpleObject result = new SimpleObject();
-      StringBuilder builder = new StringBuilder(composite.getString());
-      builder.reverse();
-      result.setString(builder.toString());
-      return result;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import org.jboss.mx.mxbean.MXBeanSupport;
+
+/**
+ * SimpleMXBeanSupport.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeMXBeanSupport extends MXBeanSupport implements CompositeMXBeanSupportMXBean
+{
+   private String simple;
+   private SimpleInterface composite;
+
+   public String getSimple()
+   {
+      return simple;
+   }
+   
+   public CompositeMXBeanSupport(String simple, SimpleInterface composite)
+   {
+      this.simple = simple;
+      this.composite = composite;
+   }
+   
+   public SimpleInterface getComposite()
+   {
+      return composite;
+   }
+
+   public void setComposite(SimpleInterface composite)
+   {
+      this.composite = composite;
+   }
+
+   public void setSimple(String simple)
+   {
+      this.simple = simple;
+   }
+
+   public SimpleInterface echoReverse(SimpleInterface composite)
+   {
+      SimpleObject result = new SimpleObject();
+      StringBuilder builder = new StringBuilder(composite.getString());
+      builder.reverse();
+      result.setString(builder.toString());
+      return result;
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupportMXBean.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupportMXBean.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/CompositeMXBeanSupportMXBean.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,44 +1,44 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.ObjectNameFactory;
-
-/**
- * CompositeMXBeanSupportMXBean.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface CompositeMXBeanSupportMXBean extends CompositeInterface
-{
-   /** The Object name */
-   ObjectName REGISTERED_OBJECT_NAME = ObjectNameFactory.create("test:test=CompositeMXBeanSupport");
-   
-   void setComposite(SimpleInterface composite);
-
-   void setSimple(String simple);
-   
-   SimpleInterface echoReverse(SimpleInterface composite);
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import javax.management.ObjectName;
+
+import org.jboss.mx.util.ObjectNameFactory;
+
+/**
+ * CompositeMXBeanSupportMXBean.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface CompositeMXBeanSupportMXBean extends CompositeInterface
+{
+   /** The Object name */
+   ObjectName REGISTERED_OBJECT_NAME = ObjectNameFactory.create("test:test=CompositeMXBeanSupport");
+   
+   void setComposite(SimpleInterface composite);
+
+   void setSimple(String simple);
+   
+   SimpleInterface echoReverse(SimpleInterface composite);
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/InvalidInterface.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/InvalidInterface.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/InvalidInterface.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,38 +1,38 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-/**
- * SimpleInterface.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface InvalidInterface
-{
-   Object getInvalid();
-   void notAGetter();
-   void getString();
-   String isString();
-   String getString(Object parameter);
-   Boolean isBoolean();
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+/**
+ * SimpleInterface.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface InvalidInterface
+{
+   Object getInvalid();
+   void notAGetter();
+   void getString();
+   String isString();
+   String getString(Object parameter);
+   Boolean isBoolean();
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/NullSimpleObject.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/NullSimpleObject.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/NullSimpleObject.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,142 +1,142 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import javax.management.ObjectName;
-
-/**
- * NullSimpleObject.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class NullSimpleObject implements SimpleInterface
-{
-   public BigDecimal getBigDecimal()
-   {
-      return null;
-   }
-
-   public BigInteger getBigInteger()
-   {
-      return null;
-   }
-
-   public Boolean getBoolean()
-   {
-      return null;
-   }
-
-   public Byte getByte()
-   {
-      return null;
-   }
-
-   public Character getCharacter()
-   {
-      return null;
-   }
-
-   public Date getDate()
-   {
-      return null;
-   }
-
-   public Double getDouble()
-   {
-      return null;
-   }
-
-   public Float getFloat()
-   {
-      return null;
-   }
-
-   public Integer getInteger()
-   {
-      return null;
-   }
-
-   public Long getLong()
-   {
-      return null;
-   }
-
-   public ObjectName getObjectName()
-   {
-      return null;
-   }
-
-   public byte getPrimitiveByte()
-   {
-      return primitiveByteValue;
-   }
-
-   public char getPrimitiveChar()
-   {
-      return primitiveCharValue;
-   }
-
-   public double getPrimitiveDouble()
-   {
-      return primitiveDoubleValue;
-   }
-
-   public float getPrimitiveFloat()
-   {
-      return primitiveFloatValue;
-   }
-
-   public int getPrimitiveInt()
-   {
-      return primitiveIntValue;
-   }
-
-   public long getPrimitiveLong()
-   {
-      return primitiveLongValue;
-   }
-
-   public short getPrimitiveShort()
-   {
-      return primitiveShortValue;
-   }
-
-   public Short getShort()
-   {
-      return null;
-   }
-
-   public String getString()
-   {
-      return null;
-   }
-
-   public boolean isPrimitiveBoolean()
-   {
-      return primitiveBooleanValue;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+import javax.management.ObjectName;
+
+/**
+ * NullSimpleObject.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class NullSimpleObject implements SimpleInterface
+{
+   public BigDecimal getBigDecimal()
+   {
+      return null;
+   }
+
+   public BigInteger getBigInteger()
+   {
+      return null;
+   }
+
+   public Boolean getBoolean()
+   {
+      return null;
+   }
+
+   public Byte getByte()
+   {
+      return null;
+   }
+
+   public Character getCharacter()
+   {
+      return null;
+   }
+
+   public Date getDate()
+   {
+      return null;
+   }
+
+   public Double getDouble()
+   {
+      return null;
+   }
+
+   public Float getFloat()
+   {
+      return null;
+   }
+
+   public Integer getInteger()
+   {
+      return null;
+   }
+
+   public Long getLong()
+   {
+      return null;
+   }
+
+   public ObjectName getObjectName()
+   {
+      return null;
+   }
+
+   public byte getPrimitiveByte()
+   {
+      return primitiveByteValue;
+   }
+
+   public char getPrimitiveChar()
+   {
+      return primitiveCharValue;
+   }
+
+   public double getPrimitiveDouble()
+   {
+      return primitiveDoubleValue;
+   }
+
+   public float getPrimitiveFloat()
+   {
+      return primitiveFloatValue;
+   }
+
+   public int getPrimitiveInt()
+   {
+      return primitiveIntValue;
+   }
+
+   public long getPrimitiveLong()
+   {
+      return primitiveLongValue;
+   }
+
+   public short getPrimitiveShort()
+   {
+      return primitiveShortValue;
+   }
+
+   public Short getShort()
+   {
+      return null;
+   }
+
+   public String getString()
+   {
+      return null;
+   }
+
+   public boolean isPrimitiveBoolean()
+   {
+      return primitiveBooleanValue;
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleInterface.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleInterface.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleInterface.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,337 +1,337 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, 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.mx.mxbean.support;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.ObjectNameFactory;
-import org.jboss.test.mx.mxbean.test.AbstractMXBeanTest;
-
-/**
- * SimpleInterface.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface SimpleInterface
-{
-   String BIG_DECIMAL = "bigDecimal";
-
-   BigDecimal bigDecimalValue = new BigDecimal("12e4");
-   BigDecimal bigDecimalChangedValue = new BigDecimal("12e5");
-
-   String BIG_INTEGER = "bigInteger";
-
-   BigInteger bigIntegerValue = new BigInteger("123456");
-   BigInteger bigIntegerChangedValue = new BigInteger("123457");
-
-   String BOOLEAN = "boolean";
-
-   Boolean booleanValue = Boolean.TRUE;
-   Boolean booleanChangedValue = Boolean.FALSE;
-
-   String BOOLEAN_PRIMITIVE = "primitiveBoolean";
-
-   boolean primitiveBooleanValue = booleanValue.booleanValue();
-   boolean primitiveBooleanChangedValue = booleanChangedValue.booleanValue();
-
-   String BYTE = "byte";
-
-   Byte byteValue = new Byte("12");
-   Byte byteChangedValue = new Byte("13");
-
-   String BYTE_PRIMITIVE = "primitiveByte";
-
-   byte primitiveByteValue = byteValue.byteValue();
-   byte primitiveByteChangedValue = byteChangedValue.byteValue();
-
-   String CHARACTER = "character";
-
-   Character characterValue = new Character('a');
-   Character characterChangedValue = new Character('b');
-
-   String CHAR_PRIMITIVE = "primitiveChar";
-
-   char primitiveCharValue = characterValue.charValue();
-   char primitiveCharChangedValue = characterChangedValue.charValue();
-
-   String DATE = "date";
-
-   Date dateValue = AbstractMXBeanTest.createDate(2001, 1, 1);
-   Date dateChangedValue = AbstractMXBeanTest.createDate(2002, 2, 2);
-
-   String DOUBLE = "double";
-
-   Double doubleValue = new Double("3.14e12");
-   Double doubleChangedValue = new Double("3.14e13");
-
-   String DOUBLE_PRIMITIVE = "primitiveDouble";
-
-   double primitiveDoubleValue = doubleValue.doubleValue();
-   double primitiveDoubleChangedValue = doubleChangedValue.doubleValue();
-
-   String FLOAT = "float";
-
-   Float floatValue = new Float("3.14");
-   Float floatChangedValue = new Float("3.15");
-
-   String FLOAT_PRIMITIVE = "primitiveFloat";
-
-   float primitiveFloatValue = floatValue.floatValue();
-   float primitiveFloatChangedValue = floatChangedValue.floatValue();
-
-   String INTEGER = "integer";
-
-   Integer integerValue = new Integer("1234");
-   Integer integerChangedValue = new Integer("1235");
-
-   String INT_PRIMITIVE = "primitiveInt";
-
-   int primitiveIntValue = integerValue.intValue();
-   int primitiveIntChangedValue = integerChangedValue.intValue();
-
-   String LONG = "long";
-
-   Long longValue = new Long("12345");
-   Long longChangedValue = new Long("12346");
-
-   String LONG_PRIMITIVE = "primitiveLong";
-
-   long primitiveLongValue = longValue.longValue();
-   long primitiveLongChangedValue = longChangedValue.longValue();
-
-   String OBJECT_NAME = "objectName";
-
-   ObjectName objectNameValue = ObjectNameFactory.create("domain:key=property");
-   ObjectName objectNameChangedValue = ObjectNameFactory.create("domain:key=property2");
-
-   String SHORT = "short";
-
-   Short shortValue = new Short("123");
-   Short shortChangedValue = new Short("124");
-
-   String SHORT_PRIMITIVE = "primitiveShort";
-
-   short primitiveShortValue = shortValue.shortValue();
-   short primitiveShortChangedValue = shortChangedValue.shortValue();
-
-   String STRING = "string";
-
-   String stringValue = new String("StringValue");
-   String stringChangedValue = new String("ChangedValue");
-
-   String[] KEYS =
-   {
-      BIG_DECIMAL,
-      BIG_INTEGER,
-      BOOLEAN,
-      BOOLEAN_PRIMITIVE,
-      BYTE,
-      BYTE_PRIMITIVE,
-      CHARACTER,
-      CHAR_PRIMITIVE,
-      DATE,
-      DOUBLE,
-      DOUBLE_PRIMITIVE,
-      FLOAT,
-      FLOAT_PRIMITIVE,
-      INTEGER,
-      INT_PRIMITIVE,
-      LONG,
-      LONG_PRIMITIVE,
-      OBJECT_NAME,
-      SHORT,
-      SHORT_PRIMITIVE,
-      STRING
-   };
-
-   Object[] VALUES = 
-   {
-      bigDecimalValue,
-      bigIntegerValue,
-      booleanValue,
-      primitiveBooleanValue,
-      byteValue,
-      primitiveByteValue,
-      characterValue,
-      primitiveCharValue,
-      dateValue,
-      doubleValue,
-      primitiveDoubleValue,
-      floatValue,
-      primitiveFloatValue,
-      integerValue,
-      primitiveIntValue,
-      longValue,
-      primitiveLongValue,
-      objectNameValue,
-      shortValue,
-      primitiveShortValue,
-      stringValue
-   };
-
-   Object[] CHANGED_VALUES = 
-   {
-      bigDecimalChangedValue,
-      bigIntegerChangedValue,
-      booleanChangedValue,
-      primitiveBooleanChangedValue,
-      byteChangedValue,
-      primitiveByteChangedValue,
-      characterChangedValue,
-      primitiveCharChangedValue,
-      dateChangedValue,
-      doubleChangedValue,
-      primitiveDoubleChangedValue,
-      floatChangedValue,
-      primitiveFloatChangedValue,
-      integerChangedValue,
-      primitiveIntChangedValue,
-      longChangedValue,
-      primitiveLongChangedValue,
-      objectNameChangedValue,
-      shortChangedValue,
-      primitiveShortChangedValue,
-      stringChangedValue
-   };
-
-   Class[] TYPES = 
-   {
-      BigDecimal.class,
-      BigInteger.class,
-      Boolean.class,
-      Boolean.TYPE,
-      Byte.class,
-      Byte.TYPE,
-      Character.class,
-      Character.TYPE,
-      Date.class,
-      Double.class,
-      Double.TYPE,
-      Float.class,
-      Float.TYPE,
-      Integer.class,
-      Integer.TYPE,
-      Long.class,
-      Long.TYPE,
-      ObjectName.class,
-      Short.class,
-      Short.TYPE,
-      String.class
-   };
-   
-   Object[] NULL_VALUES = 
-   {
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null
-   };
-   
-   Object[] LEGAL_NULL_VALUES = 
-   {
-      null,
-      null,
-      null,
-      primitiveBooleanValue,
-      null,
-      primitiveByteValue,
-      null,
-      primitiveCharValue,
-      null,
-      null,
-      primitiveDoubleValue,
-      null,
-      primitiveFloatValue,
-      null,
-      primitiveIntValue,
-      null,
-      primitiveLongValue,
-      null,
-      null,
-      primitiveShortValue,
-      null,
-   };
-
-   BigDecimal getBigDecimal();
-
-   BigInteger getBigInteger();
-
-   boolean isPrimitiveBoolean();
-
-   Boolean getBoolean();
-
-   byte getPrimitiveByte();
-
-   Byte getByte();
-
-   char getPrimitiveChar();
-
-   Character getCharacter();
-
-   Date getDate();
-
-   double getPrimitiveDouble();
-
-   Double getDouble();
-
-   float getPrimitiveFloat();
-
-   Float getFloat();
-
-   int getPrimitiveInt();
-
-   Integer getInteger();
-
-   long getPrimitiveLong();
-
-   Long getLong();
-
-   ObjectName getObjectName();
-
-   short getPrimitiveShort();
-
-   Short getShort();
-
-   String getString();
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+import javax.management.ObjectName;
+
+import org.jboss.mx.util.ObjectNameFactory;
+import org.jboss.test.mx.mxbean.test.AbstractMXBeanTest;
+
+/**
+ * SimpleInterface.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface SimpleInterface
+{
+   String BIG_DECIMAL = "bigDecimal";
+
+   BigDecimal bigDecimalValue = new BigDecimal("12e4");
+   BigDecimal bigDecimalChangedValue = new BigDecimal("12e5");
+
+   String BIG_INTEGER = "bigInteger";
+
+   BigInteger bigIntegerValue = new BigInteger("123456");
+   BigInteger bigIntegerChangedValue = new BigInteger("123457");
+
+   String BOOLEAN = "boolean";
+
+   Boolean booleanValue = Boolean.TRUE;
+   Boolean booleanChangedValue = Boolean.FALSE;
+
+   String BOOLEAN_PRIMITIVE = "primitiveBoolean";
+
+   boolean primitiveBooleanValue = booleanValue.booleanValue();
+   boolean primitiveBooleanChangedValue = booleanChangedValue.booleanValue();
+
+   String BYTE = "byte";
+
+   Byte byteValue = new Byte("12");
+   Byte byteChangedValue = new Byte("13");
+
+   String BYTE_PRIMITIVE = "primitiveByte";
+
+   byte primitiveByteValue = byteValue.byteValue();
+   byte primitiveByteChangedValue = byteChangedValue.byteValue();
+
+   String CHARACTER = "character";
+
+   Character characterValue = new Character('a');
+   Character characterChangedValue = new Character('b');
+
+   String CHAR_PRIMITIVE = "primitiveChar";
+
+   char primitiveCharValue = characterValue.charValue();
+   char primitiveCharChangedValue = characterChangedValue.charValue();
+
+   String DATE = "date";
+
+   Date dateValue = AbstractMXBeanTest.createDate(2001, 1, 1);
+   Date dateChangedValue = AbstractMXBeanTest.createDate(2002, 2, 2);
+
+   String DOUBLE = "double";
+
+   Double doubleValue = new Double("3.14e12");
+   Double doubleChangedValue = new Double("3.14e13");
+
+   String DOUBLE_PRIMITIVE = "primitiveDouble";
+
+   double primitiveDoubleValue = doubleValue.doubleValue();
+   double primitiveDoubleChangedValue = doubleChangedValue.doubleValue();
+
+   String FLOAT = "float";
+
+   Float floatValue = new Float("3.14");
+   Float floatChangedValue = new Float("3.15");
+
+   String FLOAT_PRIMITIVE = "primitiveFloat";
+
+   float primitiveFloatValue = floatValue.floatValue();
+   float primitiveFloatChangedValue = floatChangedValue.floatValue();
+
+   String INTEGER = "integer";
+
+   Integer integerValue = new Integer("1234");
+   Integer integerChangedValue = new Integer("1235");
+
+   String INT_PRIMITIVE = "primitiveInt";
+
+   int primitiveIntValue = integerValue.intValue();
+   int primitiveIntChangedValue = integerChangedValue.intValue();
+
+   String LONG = "long";
+
+   Long longValue = new Long("12345");
+   Long longChangedValue = new Long("12346");
+
+   String LONG_PRIMITIVE = "primitiveLong";
+
+   long primitiveLongValue = longValue.longValue();
+   long primitiveLongChangedValue = longChangedValue.longValue();
+
+   String OBJECT_NAME = "objectName";
+
+   ObjectName objectNameValue = ObjectNameFactory.create("domain:key=property");
+   ObjectName objectNameChangedValue = ObjectNameFactory.create("domain:key=property2");
+
+   String SHORT = "short";
+
+   Short shortValue = new Short("123");
+   Short shortChangedValue = new Short("124");
+
+   String SHORT_PRIMITIVE = "primitiveShort";
+
+   short primitiveShortValue = shortValue.shortValue();
+   short primitiveShortChangedValue = shortChangedValue.shortValue();
+
+   String STRING = "string";
+
+   String stringValue = new String("StringValue");
+   String stringChangedValue = new String("ChangedValue");
+
+   String[] KEYS =
+   {
+      BIG_DECIMAL,
+      BIG_INTEGER,
+      BOOLEAN,
+      BOOLEAN_PRIMITIVE,
+      BYTE,
+      BYTE_PRIMITIVE,
+      CHARACTER,
+      CHAR_PRIMITIVE,
+      DATE,
+      DOUBLE,
+      DOUBLE_PRIMITIVE,
+      FLOAT,
+      FLOAT_PRIMITIVE,
+      INTEGER,
+      INT_PRIMITIVE,
+      LONG,
+      LONG_PRIMITIVE,
+      OBJECT_NAME,
+      SHORT,
+      SHORT_PRIMITIVE,
+      STRING
+   };
+
+   Object[] VALUES = 
+   {
+      bigDecimalValue,
+      bigIntegerValue,
+      booleanValue,
+      primitiveBooleanValue,
+      byteValue,
+      primitiveByteValue,
+      characterValue,
+      primitiveCharValue,
+      dateValue,
+      doubleValue,
+      primitiveDoubleValue,
+      floatValue,
+      primitiveFloatValue,
+      integerValue,
+      primitiveIntValue,
+      longValue,
+      primitiveLongValue,
+      objectNameValue,
+      shortValue,
+      primitiveShortValue,
+      stringValue
+   };
+
+   Object[] CHANGED_VALUES = 
+   {
+      bigDecimalChangedValue,
+      bigIntegerChangedValue,
+      booleanChangedValue,
+      primitiveBooleanChangedValue,
+      byteChangedValue,
+      primitiveByteChangedValue,
+      characterChangedValue,
+      primitiveCharChangedValue,
+      dateChangedValue,
+      doubleChangedValue,
+      primitiveDoubleChangedValue,
+      floatChangedValue,
+      primitiveFloatChangedValue,
+      integerChangedValue,
+      primitiveIntChangedValue,
+      longChangedValue,
+      primitiveLongChangedValue,
+      objectNameChangedValue,
+      shortChangedValue,
+      primitiveShortChangedValue,
+      stringChangedValue
+   };
+
+   Class[] TYPES = 
+   {
+      BigDecimal.class,
+      BigInteger.class,
+      Boolean.class,
+      Boolean.TYPE,
+      Byte.class,
+      Byte.TYPE,
+      Character.class,
+      Character.TYPE,
+      Date.class,
+      Double.class,
+      Double.TYPE,
+      Float.class,
+      Float.TYPE,
+      Integer.class,
+      Integer.TYPE,
+      Long.class,
+      Long.TYPE,
+      ObjectName.class,
+      Short.class,
+      Short.TYPE,
+      String.class
+   };
+   
+   Object[] NULL_VALUES = 
+   {
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null,
+      null
+   };
+   
+   Object[] LEGAL_NULL_VALUES = 
+   {
+      null,
+      null,
+      null,
+      primitiveBooleanValue,
+      null,
+      primitiveByteValue,
+      null,
+      primitiveCharValue,
+      null,
+      null,
+      primitiveDoubleValue,
+      null,
+      primitiveFloatValue,
+      null,
+      primitiveIntValue,
+      null,
+      primitiveLongValue,
+      null,
+      null,
+      primitiveShortValue,
+      null,
+   };
+
+   BigDecimal getBigDecimal();
+
+   BigInteger getBigInteger();
+
+   boolean isPrimitiveBoolean();
+
+   Boolean getBoolean();
+
+   byte getPrimitiveByte();
+
+   Byte getByte();
+
+   char getPrimitiveChar();
+
+   Character getCharacter();
+
+   Date getDate();
+
+   double getPrimitiveDouble();
+
+   Double getDouble();
+
+   float getPrimitiveFloat();
+
+   Float getFloat();
+
+   int getPrimitiveInt();
+
+   Integer getInteger();
+
+   long getPrimitiveLong();
+
+   Long getLong();
+
+   ObjectName getObjectName();
+
+   short getPrimitiveShort();
+
+   Short getShort();
+
+   String getString();
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupport.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupport.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupport.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,278 +1,278 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.mxbean.MXBeanSupport;
-
-/**
- * SimpleMXBeanSupport.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class SimpleMXBeanSupport extends MXBeanSupport implements SimpleMXBeanSupportMXBean
-{
-   private BigDecimal bigDecimal = bigDecimalValue;
-   private BigInteger bigInteger = bigIntegerValue;
-   private Boolean booleanV = booleanValue;
-   private Byte byteV = byteValue;
-   private Character characterV = characterValue;
-   private Date date = dateValue;
-   private Double doubleV = doubleValue;
-   private Float floatV = floatValue;
-   private Integer integer = integerValue;
-   private Long longV = longValue;
-   private ObjectName objectName = objectNameValue;
-   private boolean primitiveBoolean = primitiveBooleanValue;
-   private byte primitiveByte = primitiveByteValue;
-   private char primitiveChar = primitiveCharValue;
-   private double primitiveDouble = primitiveDoubleValue;
-   private float primitiveFloat = primitiveFloatValue;
-   private int primitiveInt = primitiveIntValue;
-   private long primitiveLong = primitiveLongValue;
-   private Short shortV = shortValue; 
-   private short primitiveShort = primitiveShortValue;
-   private String string = stringValue;
-
-   public BigDecimal getBigDecimal()
-   {
-      return bigDecimal;
-   }
-   
-   public BigInteger getBigInteger()
-   {
-      return bigInteger;
-   }
-
-   public Boolean getBoolean()
-   {
-      return booleanV;
-   }
-
-   public Byte getByte()
-   {
-      return byteV;
-   }
-   
-   public Character getCharacter()
-   {
-      return characterV;
-   }
-
-   public Date getDate()
-   {
-      return date;
-   }
-
-   public Double getDouble()
-   {
-      return doubleV;
-   }
-
-   public Float getFloat()
-   {
-      return floatV;
-   }
-
-   public Integer getInteger()
-   {
-      return integer;
-   }
-
-   public Long getLong()
-   {
-      return longV;
-   }
-
-   public ObjectName getObjectName()
-   {
-      return objectName;
-   }
-
-   public byte getPrimitiveByte()
-   {
-      return primitiveByte;
-   }
-
-   public char getPrimitiveChar()
-   {
-      return primitiveChar;
-   }
-
-   public double getPrimitiveDouble()
-   {
-      return primitiveDouble;
-   }
-
-   public float getPrimitiveFloat()
-   {
-      return primitiveFloat;
-   }
-
-   public int getPrimitiveInt()
-   {
-      return primitiveInt;
-   }
-
-   public long getPrimitiveLong()
-   {
-      return primitiveLong;
-   }
-
-   public short getPrimitiveShort()
-   {
-      return primitiveShort;
-   }
-
-   public Short getShort()
-   {
-      return shortV;
-   }
-
-   public String getString()
-   {
-      return string;
-   }
-
-   public boolean isPrimitiveBoolean()
-   {
-      return primitiveBoolean;
-   }
-
-   public void setBoolean(Boolean booleanV)
-   {
-      this.booleanV = booleanV;
-   }
-
-   public void setByte(Byte byteV)
-   {
-      this.byteV = byteV;
-   }
-
-   public void setCharacter(Character characterV)
-   {
-      this.characterV = characterV;
-   }
-   
-   public void setDouble(Double doubleV)
-   {
-      this.doubleV = doubleV;
-   }
-   
-   public void setFloat(Float floatV)
-   {
-      this.floatV = floatV;
-   }
-
-   public void setLong(Long longV)
-   {
-      this.longV = longV;
-   }
-
-   public void setShort(Short shortV)
-   {
-      this.shortV = shortV;
-   }
-
-   public void setBigDecimal(BigDecimal bigDecimal)
-   {
-      this.bigDecimal = bigDecimal;
-   }
-
-   public void setBigInteger(BigInteger bigInteger)
-   {
-      this.bigInteger = bigInteger;
-   }
-
-   public void setDate(Date date)
-   {
-      this.date = date;
-   }
-
-   public void setInteger(Integer integer)
-   {
-      this.integer = integer;
-   }
-
-   public void setObjectName(ObjectName objectName)
-   {
-      this.objectName = objectName;
-   }
-
-   public void setPrimitiveBoolean(boolean primitiveBoolean)
-   {
-      this.primitiveBoolean = primitiveBoolean;
-   }
-
-   public void setPrimitiveByte(byte primitiveByte)
-   {
-      this.primitiveByte = primitiveByte;
-   }
-
-   public void setPrimitiveChar(char primitiveChar)
-   {
-      this.primitiveChar = primitiveChar;
-   }
-
-   public void setPrimitiveDouble(double primitiveDouble)
-   {
-      this.primitiveDouble = primitiveDouble;
-   }
-
-   public void setPrimitiveFloat(float primitiveFloat)
-   {
-      this.primitiveFloat = primitiveFloat;
-   }
-
-   public void setPrimitiveInt(int primitiveInt)
-   {
-      this.primitiveInt = primitiveInt;
-   }
-
-   public void setPrimitiveLong(long primitiveLong)
-   {
-      this.primitiveLong = primitiveLong;
-   }
-
-   public void setPrimitiveShort(short primitiveShort)
-   {
-      this.primitiveShort = primitiveShort;
-   }
-
-   public void setString(String string)
-   {
-      this.string = string;
-   }
-
-   public String echoReverse(String string)
-   {
-      StringBuilder builder = new StringBuilder(string);
-      builder.reverse();
-      return builder.toString();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+import javax.management.ObjectName;
+
+import org.jboss.mx.mxbean.MXBeanSupport;
+
+/**
+ * SimpleMXBeanSupport.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class SimpleMXBeanSupport extends MXBeanSupport implements SimpleMXBeanSupportMXBean
+{
+   private BigDecimal bigDecimal = bigDecimalValue;
+   private BigInteger bigInteger = bigIntegerValue;
+   private Boolean booleanV = booleanValue;
+   private Byte byteV = byteValue;
+   private Character characterV = characterValue;
+   private Date date = dateValue;
+   private Double doubleV = doubleValue;
+   private Float floatV = floatValue;
+   private Integer integer = integerValue;
+   private Long longV = longValue;
+   private ObjectName objectName = objectNameValue;
+   private boolean primitiveBoolean = primitiveBooleanValue;
+   private byte primitiveByte = primitiveByteValue;
+   private char primitiveChar = primitiveCharValue;
+   private double primitiveDouble = primitiveDoubleValue;
+   private float primitiveFloat = primitiveFloatValue;
+   private int primitiveInt = primitiveIntValue;
+   private long primitiveLong = primitiveLongValue;
+   private Short shortV = shortValue; 
+   private short primitiveShort = primitiveShortValue;
+   private String string = stringValue;
+
+   public BigDecimal getBigDecimal()
+   {
+      return bigDecimal;
+   }
+   
+   public BigInteger getBigInteger()
+   {
+      return bigInteger;
+   }
+
+   public Boolean getBoolean()
+   {
+      return booleanV;
+   }
+
+   public Byte getByte()
+   {
+      return byteV;
+   }
+   
+   public Character getCharacter()
+   {
+      return characterV;
+   }
+
+   public Date getDate()
+   {
+      return date;
+   }
+
+   public Double getDouble()
+   {
+      return doubleV;
+   }
+
+   public Float getFloat()
+   {
+      return floatV;
+   }
+
+   public Integer getInteger()
+   {
+      return integer;
+   }
+
+   public Long getLong()
+   {
+      return longV;
+   }
+
+   public ObjectName getObjectName()
+   {
+      return objectName;
+   }
+
+   public byte getPrimitiveByte()
+   {
+      return primitiveByte;
+   }
+
+   public char getPrimitiveChar()
+   {
+      return primitiveChar;
+   }
+
+   public double getPrimitiveDouble()
+   {
+      return primitiveDouble;
+   }
+
+   public float getPrimitiveFloat()
+   {
+      return primitiveFloat;
+   }
+
+   public int getPrimitiveInt()
+   {
+      return primitiveInt;
+   }
+
+   public long getPrimitiveLong()
+   {
+      return primitiveLong;
+   }
+
+   public short getPrimitiveShort()
+   {
+      return primitiveShort;
+   }
+
+   public Short getShort()
+   {
+      return shortV;
+   }
+
+   public String getString()
+   {
+      return string;
+   }
+
+   public boolean isPrimitiveBoolean()
+   {
+      return primitiveBoolean;
+   }
+
+   public void setBoolean(Boolean booleanV)
+   {
+      this.booleanV = booleanV;
+   }
+
+   public void setByte(Byte byteV)
+   {
+      this.byteV = byteV;
+   }
+
+   public void setCharacter(Character characterV)
+   {
+      this.characterV = characterV;
+   }
+   
+   public void setDouble(Double doubleV)
+   {
+      this.doubleV = doubleV;
+   }
+   
+   public void setFloat(Float floatV)
+   {
+      this.floatV = floatV;
+   }
+
+   public void setLong(Long longV)
+   {
+      this.longV = longV;
+   }
+
+   public void setShort(Short shortV)
+   {
+      this.shortV = shortV;
+   }
+
+   public void setBigDecimal(BigDecimal bigDecimal)
+   {
+      this.bigDecimal = bigDecimal;
+   }
+
+   public void setBigInteger(BigInteger bigInteger)
+   {
+      this.bigInteger = bigInteger;
+   }
+
+   public void setDate(Date date)
+   {
+      this.date = date;
+   }
+
+   public void setInteger(Integer integer)
+   {
+      this.integer = integer;
+   }
+
+   public void setObjectName(ObjectName objectName)
+   {
+      this.objectName = objectName;
+   }
+
+   public void setPrimitiveBoolean(boolean primitiveBoolean)
+   {
+      this.primitiveBoolean = primitiveBoolean;
+   }
+
+   public void setPrimitiveByte(byte primitiveByte)
+   {
+      this.primitiveByte = primitiveByte;
+   }
+
+   public void setPrimitiveChar(char primitiveChar)
+   {
+      this.primitiveChar = primitiveChar;
+   }
+
+   public void setPrimitiveDouble(double primitiveDouble)
+   {
+      this.primitiveDouble = primitiveDouble;
+   }
+
+   public void setPrimitiveFloat(float primitiveFloat)
+   {
+      this.primitiveFloat = primitiveFloat;
+   }
+
+   public void setPrimitiveInt(int primitiveInt)
+   {
+      this.primitiveInt = primitiveInt;
+   }
+
+   public void setPrimitiveLong(long primitiveLong)
+   {
+      this.primitiveLong = primitiveLong;
+   }
+
+   public void setPrimitiveShort(short primitiveShort)
+   {
+      this.primitiveShort = primitiveShort;
+   }
+
+   public void setString(String string)
+   {
+      this.string = string;
+   }
+
+   public String echoReverse(String string)
+   {
+      StringBuilder builder = new StringBuilder(string);
+      builder.reverse();
+      return builder.toString();
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupportMXBean.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupportMXBean.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleMXBeanSupportMXBean.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,86 +1,86 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.ObjectNameFactory;
-
-/**
- * SimpleMXBeanSupportMXBean.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public interface SimpleMXBeanSupportMXBean extends SimpleInterface
-{
-   /** The Object name */
-   ObjectName REGISTERED_OBJECT_NAME = ObjectNameFactory.create("test:test=SimpleMXBeanSupport");
-
-   void setBoolean(Boolean booleanV);
-
-   void setByte(Byte byteV);
-
-   void setCharacter(Character characterV);
-   
-   void setDouble(Double doubleV);
-   
-   void setFloat(Float floatV);
-
-   void setLong(Long longV);
-
-   void setShort(Short shortV);
-
-   void setBigDecimal(BigDecimal bigDecimal);
-
-   void setBigInteger(BigInteger bigInteger);
-
-   void setDate(Date date);
-
-   void setInteger(Integer integer);
-
-   void setObjectName(ObjectName objectName);
-
-   void setPrimitiveBoolean(boolean primitiveBoolean);
-
-   void setPrimitiveByte(byte primitiveByte);
-
-   void setPrimitiveChar(char primitiveChar);
-
-   void setPrimitiveDouble(double primitiveDouble);
-
-   void setPrimitiveFloat(float primitiveFloat);
-
-   void setPrimitiveInt(int primitiveInt);
-
-   void setPrimitiveLong(long primitiveLong);
-
-   void setPrimitiveShort(short primitiveShort);
-
-   void setString(String string);
-   
-   String echoReverse(String string);
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+import javax.management.ObjectName;
+
+import org.jboss.mx.util.ObjectNameFactory;
+
+/**
+ * SimpleMXBeanSupportMXBean.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public interface SimpleMXBeanSupportMXBean extends SimpleInterface
+{
+   /** The Object name */
+   ObjectName REGISTERED_OBJECT_NAME = ObjectNameFactory.create("test:test=SimpleMXBeanSupport");
+
+   void setBoolean(Boolean booleanV);
+
+   void setByte(Byte byteV);
+
+   void setCharacter(Character characterV);
+   
+   void setDouble(Double doubleV);
+   
+   void setFloat(Float floatV);
+
+   void setLong(Long longV);
+
+   void setShort(Short shortV);
+
+   void setBigDecimal(BigDecimal bigDecimal);
+
+   void setBigInteger(BigInteger bigInteger);
+
+   void setDate(Date date);
+
+   void setInteger(Integer integer);
+
+   void setObjectName(ObjectName objectName);
+
+   void setPrimitiveBoolean(boolean primitiveBoolean);
+
+   void setPrimitiveByte(byte primitiveByte);
+
+   void setPrimitiveChar(char primitiveChar);
+
+   void setPrimitiveDouble(double primitiveDouble);
+
+   void setPrimitiveFloat(float primitiveFloat);
+
+   void setPrimitiveInt(int primitiveInt);
+
+   void setPrimitiveLong(long primitiveLong);
+
+   void setPrimitiveShort(short primitiveShort);
+
+   void setString(String string);
+   
+   String echoReverse(String string);
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleObject.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleObject.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/SimpleObject.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,269 +1,269 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import javax.management.ObjectName;
-
-/**
- * SimpleObject.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class SimpleObject implements SimpleInterface
-{
-   private BigDecimal bigDecimal = bigDecimalValue;
-   private BigInteger bigInteger = bigIntegerValue;
-   private Boolean booleanV = booleanValue;
-   private Byte byteV = byteValue;
-   private Character characterV = characterValue;
-   private Date date = dateValue;
-   private Double doubleV = doubleValue;
-   private Float floatV = floatValue;
-   private Integer integer = integerValue;
-   private Long longV = longValue;
-   private ObjectName objectName = objectNameValue;
-   private boolean primitiveBoolean = primitiveBooleanValue;
-   private byte primitiveByte = primitiveByteValue;
-   private char primitiveChar = primitiveCharValue;
-   private double primitiveDouble = primitiveDoubleValue;
-   private float primitiveFloat = primitiveFloatValue;
-   private int primitiveInt = primitiveIntValue;
-   private long primitiveLong = primitiveLongValue;
-   private Short shortV = shortValue; 
-   private short primitiveShort = primitiveShortValue;
-   private String string = stringValue;
-
-   public BigDecimal getBigDecimal()
-   {
-      return bigDecimal;
-   }
-   
-   public BigInteger getBigInteger()
-   {
-      return bigInteger;
-   }
-
-   public Boolean getBoolean()
-   {
-      return booleanV;
-   }
-
-   public Byte getByte()
-   {
-      return byteV;
-   }
-   
-   public Character getCharacter()
-   {
-      return characterV;
-   }
-
-   public Date getDate()
-   {
-      return date;
-   }
-
-   public Double getDouble()
-   {
-      return doubleV;
-   }
-
-   public Float getFloat()
-   {
-      return floatV;
-   }
-
-   public Integer getInteger()
-   {
-      return integer;
-   }
-
-   public Long getLong()
-   {
-      return longV;
-   }
-
-   public ObjectName getObjectName()
-   {
-      return objectName;
-   }
-
-   public byte getPrimitiveByte()
-   {
-      return primitiveByte;
-   }
-
-   public char getPrimitiveChar()
-   {
-      return primitiveChar;
-   }
-
-   public double getPrimitiveDouble()
-   {
-      return primitiveDouble;
-   }
-
-   public float getPrimitiveFloat()
-   {
-      return primitiveFloat;
-   }
-
-   public int getPrimitiveInt()
-   {
-      return primitiveInt;
-   }
-
-   public long getPrimitiveLong()
-   {
-      return primitiveLong;
-   }
-
-   public short getPrimitiveShort()
-   {
-      return primitiveShort;
-   }
-
-   public Short getShort()
-   {
-      return shortV;
-   }
-
-   public String getString()
-   {
-      return string;
-   }
-
-   public boolean isPrimitiveBoolean()
-   {
-      return primitiveBoolean;
-   }
-
-   public void setBoolean(Boolean booleanV)
-   {
-      this.booleanV = booleanV;
-   }
-
-   public void setByte(Byte byteV)
-   {
-      this.byteV = byteV;
-   }
-
-   public void setCharacter(Character characterV)
-   {
-      this.characterV = characterV;
-   }
-   
-   public void setDouble(Double doubleV)
-   {
-      this.doubleV = doubleV;
-   }
-   
-   public void setFloat(Float floatV)
-   {
-      this.floatV = floatV;
-   }
-
-   public void setLong(Long longV)
-   {
-      this.longV = longV;
-   }
-
-   public void setShort(Short shortV)
-   {
-      this.shortV = shortV;
-   }
-
-   public void setBigDecimal(BigDecimal bigDecimal)
-   {
-      this.bigDecimal = bigDecimal;
-   }
-
-   public void setBigInteger(BigInteger bigInteger)
-   {
-      this.bigInteger = bigInteger;
-   }
-
-   public void setDate(Date date)
-   {
-      this.date = date;
-   }
-
-   public void setInteger(Integer integer)
-   {
-      this.integer = integer;
-   }
-
-   public void setObjectName(ObjectName objectName)
-   {
-      this.objectName = objectName;
-   }
-
-   public void setPrimitiveBoolean(boolean primitiveBoolean)
-   {
-      this.primitiveBoolean = primitiveBoolean;
-   }
-
-   public void setPrimitiveByte(byte primitiveByte)
-   {
-      this.primitiveByte = primitiveByte;
-   }
-
-   public void setPrimitiveChar(char primitiveChar)
-   {
-      this.primitiveChar = primitiveChar;
-   }
-
-   public void setPrimitiveDouble(double primitiveDouble)
-   {
-      this.primitiveDouble = primitiveDouble;
-   }
-
-   public void setPrimitiveFloat(float primitiveFloat)
-   {
-      this.primitiveFloat = primitiveFloat;
-   }
-
-   public void setPrimitiveInt(int primitiveInt)
-   {
-      this.primitiveInt = primitiveInt;
-   }
-
-   public void setPrimitiveLong(long primitiveLong)
-   {
-      this.primitiveLong = primitiveLong;
-   }
-
-   public void setPrimitiveShort(short primitiveShort)
-   {
-      this.primitiveShort = primitiveShort;
-   }
-
-   public void setString(String string)
-   {
-      this.string = string;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+import javax.management.ObjectName;
+
+/**
+ * SimpleObject.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class SimpleObject implements SimpleInterface
+{
+   private BigDecimal bigDecimal = bigDecimalValue;
+   private BigInteger bigInteger = bigIntegerValue;
+   private Boolean booleanV = booleanValue;
+   private Byte byteV = byteValue;
+   private Character characterV = characterValue;
+   private Date date = dateValue;
+   private Double doubleV = doubleValue;
+   private Float floatV = floatValue;
+   private Integer integer = integerValue;
+   private Long longV = longValue;
+   private ObjectName objectName = objectNameValue;
+   private boolean primitiveBoolean = primitiveBooleanValue;
+   private byte primitiveByte = primitiveByteValue;
+   private char primitiveChar = primitiveCharValue;
+   private double primitiveDouble = primitiveDoubleValue;
+   private float primitiveFloat = primitiveFloatValue;
+   private int primitiveInt = primitiveIntValue;
+   private long primitiveLong = primitiveLongValue;
+   private Short shortV = shortValue; 
+   private short primitiveShort = primitiveShortValue;
+   private String string = stringValue;
+
+   public BigDecimal getBigDecimal()
+   {
+      return bigDecimal;
+   }
+   
+   public BigInteger getBigInteger()
+   {
+      return bigInteger;
+   }
+
+   public Boolean getBoolean()
+   {
+      return booleanV;
+   }
+
+   public Byte getByte()
+   {
+      return byteV;
+   }
+   
+   public Character getCharacter()
+   {
+      return characterV;
+   }
+
+   public Date getDate()
+   {
+      return date;
+   }
+
+   public Double getDouble()
+   {
+      return doubleV;
+   }
+
+   public Float getFloat()
+   {
+      return floatV;
+   }
+
+   public Integer getInteger()
+   {
+      return integer;
+   }
+
+   public Long getLong()
+   {
+      return longV;
+   }
+
+   public ObjectName getObjectName()
+   {
+      return objectName;
+   }
+
+   public byte getPrimitiveByte()
+   {
+      return primitiveByte;
+   }
+
+   public char getPrimitiveChar()
+   {
+      return primitiveChar;
+   }
+
+   public double getPrimitiveDouble()
+   {
+      return primitiveDouble;
+   }
+
+   public float getPrimitiveFloat()
+   {
+      return primitiveFloat;
+   }
+
+   public int getPrimitiveInt()
+   {
+      return primitiveInt;
+   }
+
+   public long getPrimitiveLong()
+   {
+      return primitiveLong;
+   }
+
+   public short getPrimitiveShort()
+   {
+      return primitiveShort;
+   }
+
+   public Short getShort()
+   {
+      return shortV;
+   }
+
+   public String getString()
+   {
+      return string;
+   }
+
+   public boolean isPrimitiveBoolean()
+   {
+      return primitiveBoolean;
+   }
+
+   public void setBoolean(Boolean booleanV)
+   {
+      this.booleanV = booleanV;
+   }
+
+   public void setByte(Byte byteV)
+   {
+      this.byteV = byteV;
+   }
+
+   public void setCharacter(Character characterV)
+   {
+      this.characterV = characterV;
+   }
+   
+   public void setDouble(Double doubleV)
+   {
+      this.doubleV = doubleV;
+   }
+   
+   public void setFloat(Float floatV)
+   {
+      this.floatV = floatV;
+   }
+
+   public void setLong(Long longV)
+   {
+      this.longV = longV;
+   }
+
+   public void setShort(Short shortV)
+   {
+      this.shortV = shortV;
+   }
+
+   public void setBigDecimal(BigDecimal bigDecimal)
+   {
+      this.bigDecimal = bigDecimal;
+   }
+
+   public void setBigInteger(BigInteger bigInteger)
+   {
+      this.bigInteger = bigInteger;
+   }
+
+   public void setDate(Date date)
+   {
+      this.date = date;
+   }
+
+   public void setInteger(Integer integer)
+   {
+      this.integer = integer;
+   }
+
+   public void setObjectName(ObjectName objectName)
+   {
+      this.objectName = objectName;
+   }
+
+   public void setPrimitiveBoolean(boolean primitiveBoolean)
+   {
+      this.primitiveBoolean = primitiveBoolean;
+   }
+
+   public void setPrimitiveByte(byte primitiveByte)
+   {
+      this.primitiveByte = primitiveByte;
+   }
+
+   public void setPrimitiveChar(char primitiveChar)
+   {
+      this.primitiveChar = primitiveChar;
+   }
+
+   public void setPrimitiveDouble(double primitiveDouble)
+   {
+      this.primitiveDouble = primitiveDouble;
+   }
+
+   public void setPrimitiveFloat(float primitiveFloat)
+   {
+      this.primitiveFloat = primitiveFloat;
+   }
+
+   public void setPrimitiveInt(int primitiveInt)
+   {
+      this.primitiveInt = primitiveInt;
+   }
+
+   public void setPrimitiveLong(long primitiveLong)
+   {
+      this.primitiveLong = primitiveLong;
+   }
+
+   public void setPrimitiveShort(short primitiveShort)
+   {
+      this.primitiveShort = primitiveShort;
+   }
+
+   public void setString(String string)
+   {
+      this.string = string;
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestEnum.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestEnum.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestEnum.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,33 +1,33 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-/**
- * TestEnum.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public enum TestEnum
-{
-   FIRST, SECOND
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+/**
+ * TestEnum.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public enum TestEnum
+{
+   FIRST, SECOND
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestParameterizedType.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestParameterizedType.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/support/TestParameterizedType.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,66 +1,66 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.support;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-
-import org.jboss.util.NotImplementedException;
-
-/**
- * TestParameterizedType.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class TestParameterizedType implements ParameterizedType
-{
-   private Type raw;
-   private Type[] args;
-   
-   /**
-    * Create a new TestParameterizedType.
-    * 
-    * @param raw the raw type
-    * @param args the args the type args
-    */
-   public TestParameterizedType(Type raw, Type[] args)
-   {
-      this.raw = raw;
-      this.args = args;
-   }
-
-   public Type[] getActualTypeArguments()
-   {
-      return args;
-   }
-
-   public Type getRawType()
-   {
-      return raw;
-   }
-
-   public Type getOwnerType()
-   {
-      throw new NotImplementedException();
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.support;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+import org.jboss.util.NotImplementedException;
+
+/**
+ * TestParameterizedType.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class TestParameterizedType implements ParameterizedType
+{
+   private Type raw;
+   private Type[] args;
+   
+   /**
+    * Create a new TestParameterizedType.
+    * 
+    * @param raw the raw type
+    * @param args the args the type args
+    */
+   public TestParameterizedType(Type raw, Type[] args)
+   {
+      this.raw = raw;
+      this.args = args;
+   }
+
+   public Type[] getActualTypeArguments()
+   {
+      return args;
+   }
+
+   public Type getRawType()
+   {
+      return raw;
+   }
+
+   public Type getOwnerType()
+   {
+      throw new NotImplementedException();
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/AbstractMXBeanTest.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/AbstractMXBeanTest.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/AbstractMXBeanTest.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,309 +1,309 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Set;
-
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-
-import junit.framework.AssertionFailedError;
-
-import org.jboss.logging.Logger;
-import org.jboss.mx.mxbean.CompositeDataInvocationHandler;
-import org.jboss.mx.mxbean.MXBeanUtils;
-import org.jboss.test.BaseTestCase;
-import org.jboss.test.mx.mxbean.support.InvalidInterface;
-import org.jboss.test.mx.mxbean.support.SimpleInterface;
-import org.jboss.util.UnexpectedThrowable;
-
-/**
- * AbstractMXBeanTest.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public abstract class AbstractMXBeanTest extends BaseTestCase
-{
-   private static Logger staticLog = Logger.getLogger(AbstractMXBeanTest.class);
-
-   public AbstractMXBeanTest(String name)
-   {
-      super(name);
-   }
-   
-   // @fixme move to AbstractTestCase
-   public static void checkThrowableDeep(Class<? extends Throwable> wrapperExpected, Class<? extends Throwable> deepExpected, Throwable throwable) throws Exception
-   {
-      assertNotNull(deepExpected);
-      assertNotNull(throwable);
-      
-      Throwable original = throwable;
-      
-      if (wrapperExpected != null)
-      {
-         if (wrapperExpected.isInstance(original) == false)
-         {
-            if (original instanceof Exception)
-               throw (Exception) original;
-            else if (original instanceof Error)
-               throw (Error) original;
-            else
-               throw new UnexpectedThrowable("UnexpectedThrowable", original);
-         }
-         staticLog.debug("Got expected " + wrapperExpected.getName() + "(" + original + ")");
-      }
-      
-      while (throwable.getCause() != null)
-         throwable = throwable.getCause();
-      
-      if (deepExpected.isInstance(throwable) == false)
-      {
-         if (original instanceof Exception)
-            throw (Exception) original;
-         else if (original instanceof Error)
-            throw (Error) original;
-         else
-            throw new UnexpectedThrowable("UnexpectedThrowable", original);
-      }
-      else
-      {
-         staticLog.debug("Got expected " + deepExpected.getName() + "(" + throwable + ")");
-      }
-   }
-   
-   // @fixme move to AbstractTestCase
-   public static void checkThrowableDeep(Class<? extends Throwable> expected, Throwable throwable) throws Exception
-   {
-      checkThrowableDeep(null, expected, throwable);
-   }
-   
-   // @fixme move to AbstractTestCase
-   public static <T> T assertInstanceOf(Class<T> expected, Object object) throws Exception
-   {
-      if (object == null)
-         return null;
-      assertTrue(object.getClass(). getName() + " is not an instance of " + expected.getName(), expected.isInstance(object));
-      return expected.cast(object);
-   }
-   
-   public static void checkArrayEquals(Object expected, Object actual)
-   {
-      Object[] a1 = (Object[]) expected;
-      Object[] a2 = (Object[]) actual;
-      if (Arrays.deepEquals(a1, a2) == false)
-         throw new AssertionFailedError("Expected: " + a1 + "=" + Arrays.deepToString(a1) + " got " + a2 + "=" + Arrays.deepToString(a2));
-   }
-   
-   @SuppressWarnings("unchecked")
-   public static void checkCompositeDataHandlerEquals(Object expected, Object actual)
-   {
-      if (expected == null)
-      {
-         assertEquals(expected, actual);
-         return;
-      }
-
-      CompositeDataInvocationHandler handler = (CompositeDataInvocationHandler) Proxy.getInvocationHandler(actual);
-      CompositeData data = handler.getCompositeData();
-      CompositeType type = data.getCompositeType();
-      Set<String> names = type.keySet();
-      Class clazz = expected.getClass();
-      for (String name : names)
-      {
-         OpenType itemType = type.getType(name);
-         try
-         {
-            Method method = MXBeanUtils.getCompositeDataMethod(clazz, name, itemType == SimpleType.BOOLEAN);
-            Object expectedValue = method.invoke(expected, null);
-            Object actualValue = handler.invoke(actual, method, null);
-            assertEquals(expectedValue, actualValue);
-         }
-         catch (RuntimeException e)
-         {
-            throw e;
-         }
-         catch (Error e)
-         {
-            throw e;
-         }
-         catch (Throwable t)
-         {
-            throw new RuntimeException(t);
-         }
-      }
-   }
-   
-   public static void checkValueEquals(Object expected, Object actual)
-   {
-      if (actual == null)
-         assertEquals(expected, actual);
-      else if (actual instanceof Proxy)
-         checkCompositeDataHandlerEquals(expected, actual);
-      else if (actual.getClass().isArray())
-         checkArrayEquals(expected, actual);
-      else
-         assertEquals(expected, actual);
-   }
-
-   protected CompositeData createCompositeData(String name, String[] keys, Object[] values) throws Exception
-   {
-      assertNotNullArray("values", values);
-
-      Class[] types = new Class[values.length];
-      for (int i = 0; i < values.length; ++i)
-         types[i] = values[i].getClass();
-      
-      return createCompositeData(name, keys, types, values);
-   }
-   
-   protected CompositeData createCompositeData(String name, String[] keys, Class[] types, Object[] values) throws Exception
-   {
-      CompositeType compositeType = createCompositeType(name, keys, types);
-      return new CompositeDataSupport(compositeType, keys, values);
-   }
-   
-   protected CompositeData createCompositeData(String name, String[] keys, OpenType[] openTypes, Object[] values) throws Exception
-   {
-      CompositeType compositeType = createCompositeType(name, keys, openTypes);
-      return new CompositeDataSupport(compositeType, keys, values);
-   }
-   
-   protected CompositeType createCompositeType(String name, String[] keys, Class[] types) throws Exception
-   {
-      assertNotNull(name);
-      assertNotNullArray("keys", keys);
-      assertNotNullArray("types", types);
-      assertEquals(keys.length, types.length);
-      
-      OpenType[] openTypes = new OpenType[types.length];
-      for (int i = 0; i < types.length; ++i)
-         openTypes[i] = MXBeanUtils.getOpenType(types[i]);
-
-      return new CompositeType(name, name, keys, keys, openTypes);
-   }
-   
-   protected CompositeType createCompositeType(String name, String[] keys, OpenType[] openTypes) throws Exception
-   {
-      assertNotNull(name);
-      assertNotNullArray("keys", keys);
-      assertNotNullArray("types", openTypes);
-      assertEquals(keys.length, openTypes.length);
-      
-      return new CompositeType(name, name, keys, keys, openTypes);
-   }
-   
-   protected <T> T createCompositeDataProxy(Class<T> intf, String[] keys, Object[] values) throws Exception
-   {
-      assertNotNull(intf);
-      return createCompositeDataProxy(intf, intf.getName(), keys, values);
-   }
-   
-   protected <T> T createCompositeDataProxy(Class<T> intf, String name, String[] keys, Object[] values) throws Exception
-   {
-      CompositeData compositeData = createCompositeData(name, keys, values);
-      return createCompositeDataProxy(intf, compositeData);
-   }
-   
-   protected <T> T createCompositeDataProxy(Class<T> intf, String[] keys, Class[] types, Object[] values) throws Exception
-   {
-      assertNotNull(intf);
-      return createCompositeDataProxy(intf, intf.getName(), keys, types, values);
-   }
-   
-   protected <T> T createCompositeDataProxy(Class<T> intf, String name, String[] keys, Class[] types, Object[] values) throws Exception
-   {
-      CompositeData compositeData = createCompositeData(name, keys, types, values);
-      return createCompositeDataProxy(intf, compositeData);
-   }
-   
-   protected <T> T createCompositeDataProxy(Class<T> intf, String name, String[] keys, OpenType[] openTypes, Object[] values) throws Exception
-   {
-      CompositeData compositeData = createCompositeData(name, keys, openTypes, values);
-      return createCompositeDataProxy(intf, compositeData);
-   }
-   
-   protected <T> T createCompositeDataProxy(Class<T> intf, CompositeData compositeData)
-   {
-      return MXBeanUtils.createCompositeDataProxy(intf, compositeData);
-   }
-   
-   protected CompositeData createTestCompositeData() throws Exception
-   {
-      return createCompositeData("Test", SimpleInterface.KEYS, SimpleInterface.VALUES);
-   }
-   
-   protected SimpleInterface createTestCompositeDataProxy() throws Exception
-   {
-      return createCompositeDataProxy(SimpleInterface.class, SimpleInterface.KEYS, SimpleInterface.VALUES);
-   }
-   
-   protected SimpleInterface createNullCompositeDataProxy() throws Exception
-   {
-      return createCompositeDataProxy(SimpleInterface.class, SimpleInterface.KEYS, SimpleInterface.TYPES, SimpleInterface.NULL_VALUES);
-   }
-   
-   protected InvalidInterface createInvalidCompositeDataProxy() throws Exception
-   {
-      return createCompositeDataProxy(InvalidInterface.class, SimpleInterface.KEYS, SimpleInterface.VALUES);
-   }
-   
-   protected SimpleInterface createTestCompositeDataProxy(String name) throws Exception
-   {
-      return createCompositeDataProxy(SimpleInterface.class, name, SimpleInterface.KEYS, SimpleInterface.VALUES);
-   }
-   
-   protected MBeanServer createMBeanServer()
-   {
-      return MBeanServerFactory.newMBeanServer();
-   }
-   
-   protected void assertNotNullArray(String context, Object[] array) throws Exception
-   {
-      assertNotNull(context + " is null ", array);
-      for (int i = 0; i < array.length; ++i)
-         assertNotNull(context + "[" + i + "] is null", array[i]);
-   }
-
-   public static Date createDate(int year, int month, int day)
-   {
-      Calendar calender = Calendar.getInstance();
-      calender.clear();
-      calender.set(year, month-1, day, 0, 0, 0);
-      return calender.getTime();
-   }
-   
-   public static String getUpperName(String name)
-   {
-      return Character.toUpperCase(name.charAt(0)) + name.substring(1);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Set;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.CompositeDataSupport;
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+
+import junit.framework.AssertionFailedError;
+
+import org.jboss.logging.Logger;
+import org.jboss.mx.mxbean.CompositeDataInvocationHandler;
+import org.jboss.mx.mxbean.MXBeanUtils;
+import org.jboss.test.BaseTestCase;
+import org.jboss.test.mx.mxbean.support.InvalidInterface;
+import org.jboss.test.mx.mxbean.support.SimpleInterface;
+import org.jboss.util.UnexpectedThrowable;
+
+/**
+ * AbstractMXBeanTest.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class AbstractMXBeanTest extends BaseTestCase
+{
+   private static Logger staticLog = Logger.getLogger(AbstractMXBeanTest.class);
+
+   public AbstractMXBeanTest(String name)
+   {
+      super(name);
+   }
+   
+   // @fixme move to AbstractTestCase
+   public static void checkThrowableDeep(Class<? extends Throwable> wrapperExpected, Class<? extends Throwable> deepExpected, Throwable throwable) throws Exception
+   {
+      assertNotNull(deepExpected);
+      assertNotNull(throwable);
+      
+      Throwable original = throwable;
+      
+      if (wrapperExpected != null)
+      {
+         if (wrapperExpected.isInstance(original) == false)
+         {
+            if (original instanceof Exception)
+               throw (Exception) original;
+            else if (original instanceof Error)
+               throw (Error) original;
+            else
+               throw new UnexpectedThrowable("UnexpectedThrowable", original);
+         }
+         staticLog.debug("Got expected " + wrapperExpected.getName() + "(" + original + ")");
+      }
+      
+      while (throwable.getCause() != null)
+         throwable = throwable.getCause();
+      
+      if (deepExpected.isInstance(throwable) == false)
+      {
+         if (original instanceof Exception)
+            throw (Exception) original;
+         else if (original instanceof Error)
+            throw (Error) original;
+         else
+            throw new UnexpectedThrowable("UnexpectedThrowable", original);
+      }
+      else
+      {
+         staticLog.debug("Got expected " + deepExpected.getName() + "(" + throwable + ")");
+      }
+   }
+   
+   // @fixme move to AbstractTestCase
+   public static void checkThrowableDeep(Class<? extends Throwable> expected, Throwable throwable) throws Exception
+   {
+      checkThrowableDeep(null, expected, throwable);
+   }
+   
+   // @fixme move to AbstractTestCase
+   public static <T> T assertInstanceOf(Class<T> expected, Object object) throws Exception
+   {
+      if (object == null)
+         return null;
+      assertTrue(object.getClass(). getName() + " is not an instance of " + expected.getName(), expected.isInstance(object));
+      return expected.cast(object);
+   }
+   
+   public static void checkArrayEquals(Object expected, Object actual)
+   {
+      Object[] a1 = (Object[]) expected;
+      Object[] a2 = (Object[]) actual;
+      if (Arrays.deepEquals(a1, a2) == false)
+         throw new AssertionFailedError("Expected: " + a1 + "=" + Arrays.deepToString(a1) + " got " + a2 + "=" + Arrays.deepToString(a2));
+   }
+   
+   @SuppressWarnings("unchecked")
+   public static void checkCompositeDataHandlerEquals(Object expected, Object actual)
+   {
+      if (expected == null)
+      {
+         assertEquals(expected, actual);
+         return;
+      }
+
+      CompositeDataInvocationHandler handler = (CompositeDataInvocationHandler) Proxy.getInvocationHandler(actual);
+      CompositeData data = handler.getCompositeData();
+      CompositeType type = data.getCompositeType();
+      Set<String> names = type.keySet();
+      Class clazz = expected.getClass();
+      for (String name : names)
+      {
+         OpenType itemType = type.getType(name);
+         try
+         {
+            Method method = MXBeanUtils.getCompositeDataMethod(clazz, name, itemType == SimpleType.BOOLEAN);
+            Object expectedValue = method.invoke(expected, null);
+            Object actualValue = handler.invoke(actual, method, null);
+            assertEquals(expectedValue, actualValue);
+         }
+         catch (RuntimeException e)
+         {
+            throw e;
+         }
+         catch (Error e)
+         {
+            throw e;
+         }
+         catch (Throwable t)
+         {
+            throw new RuntimeException(t);
+         }
+      }
+   }
+   
+   public static void checkValueEquals(Object expected, Object actual)
+   {
+      if (actual == null)
+         assertEquals(expected, actual);
+      else if (actual instanceof Proxy)
+         checkCompositeDataHandlerEquals(expected, actual);
+      else if (actual.getClass().isArray())
+         checkArrayEquals(expected, actual);
+      else
+         assertEquals(expected, actual);
+   }
+
+   protected CompositeData createCompositeData(String name, String[] keys, Object[] values) throws Exception
+   {
+      assertNotNullArray("values", values);
+
+      Class[] types = new Class[values.length];
+      for (int i = 0; i < values.length; ++i)
+         types[i] = values[i].getClass();
+      
+      return createCompositeData(name, keys, types, values);
+   }
+   
+   protected CompositeData createCompositeData(String name, String[] keys, Class[] types, Object[] values) throws Exception
+   {
+      CompositeType compositeType = createCompositeType(name, keys, types);
+      return new CompositeDataSupport(compositeType, keys, values);
+   }
+   
+   protected CompositeData createCompositeData(String name, String[] keys, OpenType[] openTypes, Object[] values) throws Exception
+   {
+      CompositeType compositeType = createCompositeType(name, keys, openTypes);
+      return new CompositeDataSupport(compositeType, keys, values);
+   }
+   
+   protected CompositeType createCompositeType(String name, String[] keys, Class[] types) throws Exception
+   {
+      assertNotNull(name);
+      assertNotNullArray("keys", keys);
+      assertNotNullArray("types", types);
+      assertEquals(keys.length, types.length);
+      
+      OpenType[] openTypes = new OpenType[types.length];
+      for (int i = 0; i < types.length; ++i)
+         openTypes[i] = MXBeanUtils.getOpenType(types[i]);
+
+      return new CompositeType(name, name, keys, keys, openTypes);
+   }
+   
+   protected CompositeType createCompositeType(String name, String[] keys, OpenType[] openTypes) throws Exception
+   {
+      assertNotNull(name);
+      assertNotNullArray("keys", keys);
+      assertNotNullArray("types", openTypes);
+      assertEquals(keys.length, openTypes.length);
+      
+      return new CompositeType(name, name, keys, keys, openTypes);
+   }
+   
+   protected <T> T createCompositeDataProxy(Class<T> intf, String[] keys, Object[] values) throws Exception
+   {
+      assertNotNull(intf);
+      return createCompositeDataProxy(intf, intf.getName(), keys, values);
+   }
+   
+   protected <T> T createCompositeDataProxy(Class<T> intf, String name, String[] keys, Object[] values) throws Exception
+   {
+      CompositeData compositeData = createCompositeData(name, keys, values);
+      return createCompositeDataProxy(intf, compositeData);
+   }
+   
+   protected <T> T createCompositeDataProxy(Class<T> intf, String[] keys, Class[] types, Object[] values) throws Exception
+   {
+      assertNotNull(intf);
+      return createCompositeDataProxy(intf, intf.getName(), keys, types, values);
+   }
+   
+   protected <T> T createCompositeDataProxy(Class<T> intf, String name, String[] keys, Class[] types, Object[] values) throws Exception
+   {
+      CompositeData compositeData = createCompositeData(name, keys, types, values);
+      return createCompositeDataProxy(intf, compositeData);
+   }
+   
+   protected <T> T createCompositeDataProxy(Class<T> intf, String name, String[] keys, OpenType[] openTypes, Object[] values) throws Exception
+   {
+      CompositeData compositeData = createCompositeData(name, keys, openTypes, values);
+      return createCompositeDataProxy(intf, compositeData);
+   }
+   
+   protected <T> T createCompositeDataProxy(Class<T> intf, CompositeData compositeData)
+   {
+      return MXBeanUtils.createCompositeDataProxy(intf, compositeData);
+   }
+   
+   protected CompositeData createTestCompositeData() throws Exception
+   {
+      return createCompositeData("Test", SimpleInterface.KEYS, SimpleInterface.VALUES);
+   }
+   
+   protected SimpleInterface createTestCompositeDataProxy() throws Exception
+   {
+      return createCompositeDataProxy(SimpleInterface.class, SimpleInterface.KEYS, SimpleInterface.VALUES);
+   }
+   
+   protected SimpleInterface createNullCompositeDataProxy() throws Exception
+   {
+      return createCompositeDataProxy(SimpleInterface.class, SimpleInterface.KEYS, SimpleInterface.TYPES, SimpleInterface.NULL_VALUES);
+   }
+   
+   protected InvalidInterface createInvalidCompositeDataProxy() throws Exception
+   {
+      return createCompositeDataProxy(InvalidInterface.class, SimpleInterface.KEYS, SimpleInterface.VALUES);
+   }
+   
+   protected SimpleInterface createTestCompositeDataProxy(String name) throws Exception
+   {
+      return createCompositeDataProxy(SimpleInterface.class, name, SimpleInterface.KEYS, SimpleInterface.VALUES);
+   }
+   
+   protected MBeanServer createMBeanServer()
+   {
+      return MBeanServerFactory.newMBeanServer();
+   }
+   
+   protected void assertNotNullArray(String context, Object[] array) throws Exception
+   {
+      assertNotNull(context + " is null ", array);
+      for (int i = 0; i < array.length; ++i)
+         assertNotNull(context + "[" + i + "] is null", array[i]);
+   }
+
+   public static Date createDate(int year, int month, int day)
+   {
+      Calendar calender = Calendar.getInstance();
+      calender.clear();
+      calender.set(year, month-1, day, 0, 0, 0);
+      return calender.getTime();
+   }
+   
+   public static String getUpperName(String name)
+   {
+      return Character.toUpperCase(name.charAt(0)) + name.substring(1);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataArrayUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataArrayUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataArrayUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,103 +1,103 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import org.jboss.test.mx.mxbean.support.TestEnum;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataArrayUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataArrayUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataArrayUnitTestCase.class);
-   }
-   
-   public CompositeDataArrayUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testArrayString() throws Exception
-   {
-      String[] array = { "one", "two", "three" };
-      constructReconstructTest(array);
-   }
-   
-   public void testMultiArrayString() throws Exception
-   {
-      String[][] array = { { "one", "two", "three" }, { "four", "five", "six" } };
-      constructReconstructTest(array);
-   }
-   
-   public void testArrayEnum() throws Exception
-   {
-      TestEnum[] array = { TestEnum.FIRST, TestEnum.SECOND };
-      String[] openData = { TestEnum.FIRST.name(), TestEnum.SECOND.name() };
-      constructReconstructTest(array, openData);
-   }
-   
-   public void testMultiArrayEnum() throws Exception
-   {
-      TestEnum[][] array = { { TestEnum.FIRST, TestEnum.SECOND }, { TestEnum.SECOND } };
-      String[][] openData = { { TestEnum.FIRST.name(), TestEnum.SECOND.name() }, { TestEnum.SECOND.name() } };
-      constructReconstructTest(array, openData);
-   }
-   
-   public void testArrayNull() throws Exception
-   {
-      constructReconstructTest(null, new String[0].getClass());
-   }
-   
-   public void testArrayElementNull() throws Exception
-   {
-      TestEnum[] array = { TestEnum.FIRST, null };
-      String[] openData = { TestEnum.FIRST.name(), null };
-      constructReconstructTest(array, openData);
-   }
-   
-   public void testMultiArrayElementNull() throws Exception
-   {
-      TestEnum[][] array = { { TestEnum.FIRST, null }, { TestEnum.SECOND } };
-      String[][] openData = { { TestEnum.FIRST.name(), null }, { TestEnum.SECOND.name() } };
-      constructReconstructTest(array, openData);
-   }
-   
-   public void testMultiArrayNull() throws Exception
-   {
-      TestEnum[][] array = { { TestEnum.FIRST, TestEnum.SECOND }, null, { TestEnum.SECOND } };
-      String[][] openData = { { TestEnum.FIRST.name(), TestEnum.SECOND.name() }, null, { TestEnum.SECOND.name() } };
-      constructReconstructTest(array, openData);
-   }
-   
-   public void checkEquals(Object expected, Object actual)
-   {
-      checkArrayEquals(expected, actual);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import org.jboss.test.mx.mxbean.support.TestEnum;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataArrayUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataArrayUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataArrayUnitTestCase.class);
+   }
+   
+   public CompositeDataArrayUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testArrayString() throws Exception
+   {
+      String[] array = { "one", "two", "three" };
+      constructReconstructTest(array);
+   }
+   
+   public void testMultiArrayString() throws Exception
+   {
+      String[][] array = { { "one", "two", "three" }, { "four", "five", "six" } };
+      constructReconstructTest(array);
+   }
+   
+   public void testArrayEnum() throws Exception
+   {
+      TestEnum[] array = { TestEnum.FIRST, TestEnum.SECOND };
+      String[] openData = { TestEnum.FIRST.name(), TestEnum.SECOND.name() };
+      constructReconstructTest(array, openData);
+   }
+   
+   public void testMultiArrayEnum() throws Exception
+   {
+      TestEnum[][] array = { { TestEnum.FIRST, TestEnum.SECOND }, { TestEnum.SECOND } };
+      String[][] openData = { { TestEnum.FIRST.name(), TestEnum.SECOND.name() }, { TestEnum.SECOND.name() } };
+      constructReconstructTest(array, openData);
+   }
+   
+   public void testArrayNull() throws Exception
+   {
+      constructReconstructTest(null, new String[0].getClass());
+   }
+   
+   public void testArrayElementNull() throws Exception
+   {
+      TestEnum[] array = { TestEnum.FIRST, null };
+      String[] openData = { TestEnum.FIRST.name(), null };
+      constructReconstructTest(array, openData);
+   }
+   
+   public void testMultiArrayElementNull() throws Exception
+   {
+      TestEnum[][] array = { { TestEnum.FIRST, null }, { TestEnum.SECOND } };
+      String[][] openData = { { TestEnum.FIRST.name(), null }, { TestEnum.SECOND.name() } };
+      constructReconstructTest(array, openData);
+   }
+   
+   public void testMultiArrayNull() throws Exception
+   {
+      TestEnum[][] array = { { TestEnum.FIRST, TestEnum.SECOND }, null, { TestEnum.SECOND } };
+      String[][] openData = { { TestEnum.FIRST.name(), TestEnum.SECOND.name() }, null, { TestEnum.SECOND.name() } };
+      constructReconstructTest(array, openData);
+   }
+   
+   public void checkEquals(Object expected, Object actual)
+   {
+      checkArrayEquals(expected, actual);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigDecimalUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigDecimalUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigDecimalUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,56 +1,56 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.math.BigDecimal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataBigDecimalUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataBigDecimalUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataBigDecimalUnitTestCase.class);
-   }
-   
-   public CompositeDataBigDecimalUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testBigDecimal() throws Exception
-   {
-      constructReconstructTest(new BigDecimal("12e4"));
-   }
-   
-   public void testBigDecimalNull() throws Exception
-   {
-      constructReconstructTest(null, BigDecimal.class);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.math.BigDecimal;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataBigDecimalUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataBigDecimalUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataBigDecimalUnitTestCase.class);
+   }
+   
+   public CompositeDataBigDecimalUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testBigDecimal() throws Exception
+   {
+      constructReconstructTest(new BigDecimal("12e4"));
+   }
+   
+   public void testBigDecimalNull() throws Exception
+   {
+      constructReconstructTest(null, BigDecimal.class);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigIntegerUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigIntegerUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBigIntegerUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,56 +1,56 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.math.BigInteger;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataBigIntegerUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataBigIntegerUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataBigIntegerUnitTestCase.class);
-   }
-   
-   public CompositeDataBigIntegerUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testBigInteger() throws Exception
-   {
-      constructReconstructTest(new BigInteger("123456"));
-   }
-   
-   public void testBigIntegerNull() throws Exception
-   {
-      constructReconstructTest(null, BigInteger.class);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.math.BigInteger;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataBigIntegerUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataBigIntegerUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataBigIntegerUnitTestCase.class);
+   }
+   
+   public CompositeDataBigIntegerUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testBigInteger() throws Exception
+   {
+      constructReconstructTest(new BigInteger("123456"));
+   }
+   
+   public void testBigIntegerNull() throws Exception
+   {
+      constructReconstructTest(null, BigInteger.class);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBooleanUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBooleanUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataBooleanUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,74 +1,74 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataBooleanUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataBooleanUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataBooleanUnitTestCase.class);
-   }
-   
-   public CompositeDataBooleanUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testBooleanTrue() throws Exception
-   {
-      constructReconstructTest(new Boolean(true));
-   }
-   
-   public void testBooleanFalse() throws Exception
-   {
-      constructReconstructTest(new Boolean(false));
-   }
-   
-   public void testBooleanNull() throws Exception
-   {
-      constructReconstructTest(null, Boolean.class);
-   }
-   
-   public void testBooleanTruePrimitive() throws Exception
-   {
-      constructReconstructTest(new Boolean(true), Boolean.TYPE);
-   }
-   
-   public void testBooleanFalsePrimitive() throws Exception
-   {
-      constructReconstructTest(new Boolean(false), Boolean.TYPE);
-   }
-   
-   public void testBooleanNullPrimitive() throws Exception
-   {
-      assertNullFailure(Boolean.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataBooleanUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataBooleanUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataBooleanUnitTestCase.class);
+   }
+   
+   public CompositeDataBooleanUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testBooleanTrue() throws Exception
+   {
+      constructReconstructTest(new Boolean(true));
+   }
+   
+   public void testBooleanFalse() throws Exception
+   {
+      constructReconstructTest(new Boolean(false));
+   }
+   
+   public void testBooleanNull() throws Exception
+   {
+      constructReconstructTest(null, Boolean.class);
+   }
+   
+   public void testBooleanTruePrimitive() throws Exception
+   {
+      constructReconstructTest(new Boolean(true), Boolean.TYPE);
+   }
+   
+   public void testBooleanFalsePrimitive() throws Exception
+   {
+      constructReconstructTest(new Boolean(false), Boolean.TYPE);
+   }
+   
+   public void testBooleanNullPrimitive() throws Exception
+   {
+      assertNullFailure(Boolean.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataByteUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataByteUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataByteUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataByteUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataByteUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataByteUnitTestCase.class);
-   }
-   
-   public CompositeDataByteUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testByte() throws Exception
-   {
-      constructReconstructTest(new Byte(Byte.MAX_VALUE));
-   }
-   
-   public void testByteNull() throws Exception
-   {
-      constructReconstructTest(null, Byte.class);
-   }
-   
-   public void testBytePrimitive() throws Exception
-   {
-      constructReconstructTest(Byte.MAX_VALUE, Byte.TYPE);
-   }
-   
-   public void testByteNullPrimitive() throws Exception
-   {
-      assertNullFailure(Byte.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataByteUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataByteUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataByteUnitTestCase.class);
+   }
+   
+   public CompositeDataByteUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testByte() throws Exception
+   {
+      constructReconstructTest(new Byte(Byte.MAX_VALUE));
+   }
+   
+   public void testByteNull() throws Exception
+   {
+      constructReconstructTest(null, Byte.class);
+   }
+   
+   public void testBytePrimitive() throws Exception
+   {
+      constructReconstructTest(Byte.MAX_VALUE, Byte.TYPE);
+   }
+   
+   public void testByteNullPrimitive() throws Exception
+   {
+      assertNullFailure(Byte.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCharacterUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCharacterUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCharacterUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataCharacterUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataCharacterUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataCharacterUnitTestCase.class);
-   }
-   
-   public CompositeDataCharacterUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testCharacter() throws Exception
-   {
-      constructReconstructTest(new Character(Character.MAX_VALUE));
-   }
-   
-   public void testCharacterNull() throws Exception
-   {
-      constructReconstructTest(null, Character.class);
-   }
-   
-   public void testCharacterPrimitive() throws Exception
-   {
-      constructReconstructTest(Character.MAX_VALUE, Character.TYPE);
-   }
-   
-   public void testCharacterNullPrimitive() throws Exception
-   {
-      assertNullFailure(Character.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataCharacterUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataCharacterUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataCharacterUnitTestCase.class);
+   }
+   
+   public CompositeDataCharacterUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testCharacter() throws Exception
+   {
+      constructReconstructTest(new Character(Character.MAX_VALUE));
+   }
+   
+   public void testCharacterNull() throws Exception
+   {
+      constructReconstructTest(null, Character.class);
+   }
+   
+   public void testCharacterPrimitive() throws Exception
+   {
+      constructReconstructTest(Character.MAX_VALUE, Character.TYPE);
+   }
+   
+   public void testCharacterNullPrimitive() throws Exception
+   {
+      assertNullFailure(Character.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCollectionUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCollectionUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCollectionUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,137 +1,137 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.jboss.test.mx.mxbean.support.TestParameterizedType;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataCollectionUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataCollectionUnitTestCase extends CompositeDataTest
-{
-   private static final TestParameterizedType COLLECTION_OF_STRINGS = new TestParameterizedType(Collection.class, new Type[] { String.class });
-   private static final TestParameterizedType LIST_OF_STRINGS = new TestParameterizedType(List.class, new Type[] { String.class });
-   private static final TestParameterizedType SET_OF_STRINGS = new TestParameterizedType(Set.class, new Type[] { String.class });
-   
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataCollectionUnitTestCase.class);
-   }
-   
-   public CompositeDataCollectionUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testCollection() throws Exception
-   {
-      Collection<String> c = new ArrayList<String>();
-      c.add("one");
-      c.add("two");
-      c.add("three");
-      String[] openData = { "one", "two", "three" };
-      constructReconstructTest(c, COLLECTION_OF_STRINGS, openData);
-   }
-   
-   public void testCollectionNull() throws Exception
-   {
-      constructReconstructTest(null, COLLECTION_OF_STRINGS);
-   }
-   
-   public void testCollectionContainsNull() throws Exception
-   {
-      Collection<String> c = new ArrayList<String>();
-      c.add("one");
-      c.add(null);
-      c.add("three");
-      String[] openData = { "one", null, "three" };
-      constructReconstructTest(c, COLLECTION_OF_STRINGS, openData);
-   }
-   
-   public void testList() throws Exception
-   {
-      ArrayList<String> c = new ArrayList<String>();
-      c.add("one");
-      c.add("two");
-      c.add("three");
-      String[] openData = { "one", "two", "three" };
-      constructReconstructTest(c, LIST_OF_STRINGS, openData);
-   }
-   
-   public void testListNull() throws Exception
-   {
-      constructReconstructTest(null, LIST_OF_STRINGS);
-   }
-   
-   public void testListContainsNull() throws Exception
-   {
-      ArrayList<String> c = new ArrayList<String>();
-      c.add("one");
-      c.add(null);
-      c.add("three");
-      String[] openData = { "one", null, "three" };
-      constructReconstructTest(c, LIST_OF_STRINGS, openData);
-   }
-   
-   public void testSet() throws Exception
-   {
-      LinkedHashSet<String> c = new LinkedHashSet<String>();
-      c.add("one");
-      c.add("two");
-      c.add("three");
-      String[] openData = { "one", "two", "three" };
-      constructReconstructTest(c, SET_OF_STRINGS, openData);
-   }
-   
-   public void testSetNull() throws Exception
-   {
-      constructReconstructTest(null, SET_OF_STRINGS);
-   }
-   
-   public void testSetContainsNull() throws Exception
-   {
-      LinkedHashSet<String> c = new LinkedHashSet<String>();
-      c.add("one");
-      c.add(null);
-      c.add("three");
-      String[] openData = { "one", null, "three" };
-      constructReconstructTest(c, SET_OF_STRINGS, openData);
-   }
-
-   protected void checkOpenDataEquals(Object expected, Object actual)
-   {
-      checkArrayEquals(expected, actual);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.jboss.test.mx.mxbean.support.TestParameterizedType;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataCollectionUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataCollectionUnitTestCase extends CompositeDataTest
+{
+   private static final TestParameterizedType COLLECTION_OF_STRINGS = new TestParameterizedType(Collection.class, new Type[] { String.class });
+   private static final TestParameterizedType LIST_OF_STRINGS = new TestParameterizedType(List.class, new Type[] { String.class });
+   private static final TestParameterizedType SET_OF_STRINGS = new TestParameterizedType(Set.class, new Type[] { String.class });
+   
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataCollectionUnitTestCase.class);
+   }
+   
+   public CompositeDataCollectionUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testCollection() throws Exception
+   {
+      Collection<String> c = new ArrayList<String>();
+      c.add("one");
+      c.add("two");
+      c.add("three");
+      String[] openData = { "one", "two", "three" };
+      constructReconstructTest(c, COLLECTION_OF_STRINGS, openData);
+   }
+   
+   public void testCollectionNull() throws Exception
+   {
+      constructReconstructTest(null, COLLECTION_OF_STRINGS);
+   }
+   
+   public void testCollectionContainsNull() throws Exception
+   {
+      Collection<String> c = new ArrayList<String>();
+      c.add("one");
+      c.add(null);
+      c.add("three");
+      String[] openData = { "one", null, "three" };
+      constructReconstructTest(c, COLLECTION_OF_STRINGS, openData);
+   }
+   
+   public void testList() throws Exception
+   {
+      ArrayList<String> c = new ArrayList<String>();
+      c.add("one");
+      c.add("two");
+      c.add("three");
+      String[] openData = { "one", "two", "three" };
+      constructReconstructTest(c, LIST_OF_STRINGS, openData);
+   }
+   
+   public void testListNull() throws Exception
+   {
+      constructReconstructTest(null, LIST_OF_STRINGS);
+   }
+   
+   public void testListContainsNull() throws Exception
+   {
+      ArrayList<String> c = new ArrayList<String>();
+      c.add("one");
+      c.add(null);
+      c.add("three");
+      String[] openData = { "one", null, "three" };
+      constructReconstructTest(c, LIST_OF_STRINGS, openData);
+   }
+   
+   public void testSet() throws Exception
+   {
+      LinkedHashSet<String> c = new LinkedHashSet<String>();
+      c.add("one");
+      c.add("two");
+      c.add("three");
+      String[] openData = { "one", "two", "three" };
+      constructReconstructTest(c, SET_OF_STRINGS, openData);
+   }
+   
+   public void testSetNull() throws Exception
+   {
+      constructReconstructTest(null, SET_OF_STRINGS);
+   }
+   
+   public void testSetContainsNull() throws Exception
+   {
+      LinkedHashSet<String> c = new LinkedHashSet<String>();
+      c.add("one");
+      c.add(null);
+      c.add("three");
+      String[] openData = { "one", null, "three" };
+      constructReconstructTest(c, SET_OF_STRINGS, openData);
+   }
+
+   protected void checkOpenDataEquals(Object expected, Object actual)
+   {
+      checkArrayEquals(expected, actual);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCompositeUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCompositeUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataCompositeUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,74 +1,74 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import javax.management.openmbean.CompositeData;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.test.mx.mxbean.support.NullSimpleObject;
-import org.jboss.test.mx.mxbean.support.SimpleInterface;
-import org.jboss.test.mx.mxbean.support.SimpleObject;
-
-/**
- * CompositeDataCompositeUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataCompositeUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataCompositeUnitTestCase.class);
-   }
-   
-   public CompositeDataCompositeUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testComposite() throws Exception
-   {
-      SimpleObject simple = new SimpleObject();
-      CompositeData openData = createCompositeData(simple.getClass().getName(), SimpleInterface.KEYS, SimpleInterface.VALUES);
-      constructReconstructTest(simple, openData);
-   }
-   
-   public void testCompositeNull() throws Exception
-   {
-      constructReconstructTest(null, SimpleObject.class);
-   }
-   
-   public void testCompositeContainsNull() throws Exception
-   {
-      NullSimpleObject simple = new NullSimpleObject();
-      CompositeData openData = createCompositeData(simple.getClass().getName(), SimpleInterface.KEYS, SimpleInterface.TYPES, SimpleInterface.LEGAL_NULL_VALUES);
-      constructReconstructTest(simple, openData);
-   }
-
-   protected void checkFinalEquals(Object expected, Object actual)
-   {
-      checkCompositeDataHandlerEquals(expected, actual);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import javax.management.openmbean.CompositeData;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.test.mx.mxbean.support.NullSimpleObject;
+import org.jboss.test.mx.mxbean.support.SimpleInterface;
+import org.jboss.test.mx.mxbean.support.SimpleObject;
+
+/**
+ * CompositeDataCompositeUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataCompositeUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataCompositeUnitTestCase.class);
+   }
+   
+   public CompositeDataCompositeUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testComposite() throws Exception
+   {
+      SimpleObject simple = new SimpleObject();
+      CompositeData openData = createCompositeData(simple.getClass().getName(), SimpleInterface.KEYS, SimpleInterface.VALUES);
+      constructReconstructTest(simple, openData);
+   }
+   
+   public void testCompositeNull() throws Exception
+   {
+      constructReconstructTest(null, SimpleObject.class);
+   }
+   
+   public void testCompositeContainsNull() throws Exception
+   {
+      NullSimpleObject simple = new NullSimpleObject();
+      CompositeData openData = createCompositeData(simple.getClass().getName(), SimpleInterface.KEYS, SimpleInterface.TYPES, SimpleInterface.LEGAL_NULL_VALUES);
+      constructReconstructTest(simple, openData);
+   }
+
+   protected void checkFinalEquals(Object expected, Object actual)
+   {
+      checkCompositeDataHandlerEquals(expected, actual);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDateUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDateUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDateUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,56 +1,56 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.util.Date;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataDateUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataDateUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataDateUnitTestCase.class);
-   }
-   
-   public CompositeDataDateUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testDate() throws Exception
-   {
-      constructReconstructTest(createDate(2001, 1, 1));
-   }
-   
-   public void testDateNull() throws Exception
-   {
-      constructReconstructTest(null, Date.class);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.util.Date;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataDateUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataDateUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataDateUnitTestCase.class);
+   }
+   
+   public CompositeDataDateUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testDate() throws Exception
+   {
+      constructReconstructTest(createDate(2001, 1, 1));
+   }
+   
+   public void testDateNull() throws Exception
+   {
+      constructReconstructTest(null, Date.class);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDoubleUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDoubleUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataDoubleUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataDoubleUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataDoubleUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataDoubleUnitTestCase.class);
-   }
-   
-   public CompositeDataDoubleUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testDouble() throws Exception
-   {
-      constructReconstructTest(new Double(Double.MAX_VALUE));
-   }
-   
-   public void testDoubleNull() throws Exception
-   {
-      constructReconstructTest(null, Double.class);
-   }
-   
-   public void testDoublePrimitive() throws Exception
-   {
-      constructReconstructTest(Double.MAX_VALUE, Double.TYPE);
-   }
-   
-   public void testDoubleNullPrimitive() throws Exception
-   {
-      assertNullFailure(Double.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataDoubleUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataDoubleUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataDoubleUnitTestCase.class);
+   }
+   
+   public CompositeDataDoubleUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testDouble() throws Exception
+   {
+      constructReconstructTest(new Double(Double.MAX_VALUE));
+   }
+   
+   public void testDoubleNull() throws Exception
+   {
+      constructReconstructTest(null, Double.class);
+   }
+   
+   public void testDoublePrimitive() throws Exception
+   {
+      constructReconstructTest(Double.MAX_VALUE, Double.TYPE);
+   }
+   
+   public void testDoubleNullPrimitive() throws Exception
+   {
+      assertNullFailure(Double.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataEnumUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataEnumUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataEnumUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,56 +1,56 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import org.jboss.test.mx.mxbean.support.TestEnum;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeTypeEnumUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataEnumUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataEnumUnitTestCase.class);
-   }
-   
-   public CompositeDataEnumUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testEnum() throws Exception
-   {
-      constructReconstructTest(TestEnum.FIRST, TestEnum.FIRST.name());
-   }
-   
-   public void testEnumNull() throws Exception
-   {
-      constructReconstructTest(null, TestEnum.class);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import org.jboss.test.mx.mxbean.support.TestEnum;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeTypeEnumUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataEnumUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataEnumUnitTestCase.class);
+   }
+   
+   public CompositeDataEnumUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testEnum() throws Exception
+   {
+      constructReconstructTest(TestEnum.FIRST, TestEnum.FIRST.name());
+   }
+   
+   public void testEnumNull() throws Exception
+   {
+      constructReconstructTest(null, TestEnum.class);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataFloatUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataFloatUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataFloatUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataFloatUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataFloatUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataFloatUnitTestCase.class);
-   }
-   
-   public CompositeDataFloatUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testFloat() throws Exception
-   {
-      constructReconstructTest(new Float(Float.MAX_VALUE));
-   }
-   
-   public void testFloatNull() throws Exception
-   {
-      constructReconstructTest(null, Float.class);
-   }
-   
-   public void testFloatPrimitive() throws Exception
-   {
-      constructReconstructTest(Float.MAX_VALUE, Float.TYPE);
-   }
-   
-   public void testFloatNullPrimitive() throws Exception
-   {
-      assertNullFailure(Float.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataFloatUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataFloatUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataFloatUnitTestCase.class);
+   }
+   
+   public CompositeDataFloatUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testFloat() throws Exception
+   {
+      constructReconstructTest(new Float(Float.MAX_VALUE));
+   }
+   
+   public void testFloatNull() throws Exception
+   {
+      constructReconstructTest(null, Float.class);
+   }
+   
+   public void testFloatPrimitive() throws Exception
+   {
+      constructReconstructTest(Float.MAX_VALUE, Float.TYPE);
+   }
+   
+   public void testFloatNullPrimitive() throws Exception
+   {
+      assertNullFailure(Float.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataIntegerUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataIntegerUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataIntegerUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataIntegerUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataIntegerUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataIntegerUnitTestCase.class);
-   }
-   
-   public CompositeDataIntegerUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testInteger() throws Exception
-   {
-      constructReconstructTest(new Integer(Integer.MAX_VALUE));
-   }
-   
-   public void testIntegerNull() throws Exception
-   {
-      constructReconstructTest(null, Integer.class);
-   }
-   
-   public void testIntegerPrimitive() throws Exception
-   {
-      constructReconstructTest(Integer.MAX_VALUE, Integer.TYPE);
-   }
-   
-   public void testIntegerNullPrimitive() throws Exception
-   {
-      assertNullFailure(Integer.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataIntegerUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataIntegerUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataIntegerUnitTestCase.class);
+   }
+   
+   public CompositeDataIntegerUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testInteger() throws Exception
+   {
+      constructReconstructTest(new Integer(Integer.MAX_VALUE));
+   }
+   
+   public void testIntegerNull() throws Exception
+   {
+      constructReconstructTest(null, Integer.class);
+   }
+   
+   public void testIntegerPrimitive() throws Exception
+   {
+      constructReconstructTest(Integer.MAX_VALUE, Integer.TYPE);
+   }
+   
+   public void testIntegerNullPrimitive() throws Exception
+   {
+      assertNullFailure(Integer.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataInvocationHandlerUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataInvocationHandlerUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataInvocationHandlerUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,361 +1,361 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.InvalidKeyException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.mx.mxbean.CompositeDataInvocationHandler;
-import org.jboss.test.mx.mxbean.support.InvalidInterface;
-import org.jboss.test.mx.mxbean.support.SimpleInterface;
-
-/**
- * CompositeDataInvocationHandlerUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataInvocationHandlerUnitTestCase extends AbstractMXBeanTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataInvocationHandlerUnitTestCase.class);
-   }
-   
-   public CompositeDataInvocationHandlerUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testGetCompositeData() throws Exception
-   {
-      CompositeData compositeData = createTestCompositeData();
-      CompositeDataInvocationHandler test = new CompositeDataInvocationHandler(compositeData);
-      assertTrue(compositeData == test.getCompositeData());
-   }
-   
-   public void testNullCompositeData() throws Exception
-   {
-      try
-      {
-         new CompositeDataInvocationHandler(null);
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowable(IllegalArgumentException.class, t);
-      }
-   }
-   
-   public void testToEquals() throws Exception
-   {
-      SimpleInterface test1 = createTestCompositeDataProxy("Test1");
-      
-      assertFalse(test1.equals(null));
-      assertFalse(test1.equals(new Object()));
-      assertTrue(test1.equals(test1));
-
-      SimpleInterface test2 = createTestCompositeDataProxy("Test2");
-      
-      assertFalse(test1.equals(test2));
-   }
-   
-   public void testHashCode() throws Exception
-   {
-      CompositeData compositeData = createTestCompositeData();
-      SimpleInterface test = createCompositeDataProxy(SimpleInterface.class, compositeData);
-
-      assertEquals(test.hashCode(), compositeData.hashCode());
-   }
-   
-   public void testToString() throws Exception
-   {
-      CompositeData compositeData = createTestCompositeData();
-      SimpleInterface test = createCompositeDataProxy(SimpleInterface.class, compositeData);
-
-      assertEquals(test.toString(), compositeData.toString());
-   }
-   
-   public void testGetSimpleTypes() throws Exception
-   {
-      SimpleInterface test = createTestCompositeDataProxy();
-      assertEquals(SimpleInterface.bigDecimalValue, test.getBigDecimal());
-      assertEquals(SimpleInterface.bigIntegerValue, test.getBigInteger());
-      assertEquals(SimpleInterface.booleanValue, test.getBoolean());
-      assertEquals(SimpleInterface.primitiveBooleanValue, test.isPrimitiveBoolean());
-      assertEquals(SimpleInterface.byteValue, test.getByte());
-      assertEquals(SimpleInterface.primitiveByteValue, test.getPrimitiveByte());
-      assertEquals(SimpleInterface.characterValue, test.getCharacter());
-      assertEquals(SimpleInterface.primitiveCharValue, test.getPrimitiveChar());
-      assertEquals(SimpleInterface.dateValue, test.getDate());
-      assertEquals(SimpleInterface.doubleValue, test.getDouble());
-      assertEquals(SimpleInterface.primitiveDoubleValue, test.getPrimitiveDouble());
-      assertEquals(SimpleInterface.floatValue, test.getFloat());
-      assertEquals(SimpleInterface.primitiveFloatValue, test.getPrimitiveFloat());
-      assertEquals(SimpleInterface.integerValue, test.getInteger());
-      assertEquals(SimpleInterface.primitiveIntValue, test.getPrimitiveInt());
-      assertEquals(SimpleInterface.longValue, test.getLong());
-      assertEquals(SimpleInterface.primitiveLongValue, test.getPrimitiveLong());
-      assertEquals(SimpleInterface.objectNameValue, test.getObjectName());
-      assertEquals(SimpleInterface.shortValue, test.getShort());
-      assertEquals(SimpleInterface.primitiveShortValue, test.getPrimitiveShort());
-      assertEquals(SimpleInterface.stringValue, test.getString());
-   }
-   
-   public void testNullPrimitives() throws Exception
-   {
-      SimpleInterface test = createNullCompositeDataProxy();
-      assertNull(test.getBigDecimal());
-      assertNull(test.getBigInteger());
-      assertNull(test.getBoolean());
-      try
-      {
-         test.isPrimitiveBoolean();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getByte());
-      try
-      {
-         test.getPrimitiveByte();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getCharacter());
-      try
-      {
-         test.getPrimitiveChar();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getDate());
-      assertNull(test.getDouble());
-      try
-      {
-         test.getPrimitiveDouble();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getFloat());
-      try
-      {
-         test.getPrimitiveFloat();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getInteger());
-      try
-      {
-         test.getPrimitiveInt();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getLong());
-      try
-      {
-         test.getPrimitiveLong();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(test.getObjectName());
-      assertNull(test.getShort());
-      try
-      {
-         test.getPrimitiveShort();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-      assertNull(SimpleInterface.stringValue, test.getString());
-   }
-   
-   public void testGetInvalid() throws Exception
-   {
-      InvalidInterface test = createInvalidCompositeDataProxy();
-      try
-      {
-         test.getInvalid();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, InvalidKeyException.class, t);
-      }
-   }
-   
-   public void testNotAGetter() throws Exception
-   {
-      InvalidInterface test = createInvalidCompositeDataProxy();
-      try
-      {
-         test.notAGetter();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-   }
-   
-   public void testGetNoReturnType() throws Exception
-   {
-      InvalidInterface test = createInvalidCompositeDataProxy();
-      try
-      {
-         test.getString();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-   }
-   
-   public void testGetWithParameters() throws Exception
-   {
-      InvalidInterface test = createInvalidCompositeDataProxy();
-      try
-      {
-         test.getString(null);
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-   }
-   
-   public void testIsNotBoolean() throws Exception
-   {
-      InvalidInterface test = createInvalidCompositeDataProxy();
-      try
-      {
-         test.isString();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-   }
-   
-   public void testIsBoolean() throws Exception
-   {
-      InvalidInterface test = createInvalidCompositeDataProxy();
-      try
-      {
-         test.isBoolean();
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowableDeep(IllegalArgumentException.class, t);
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.InvalidKeyException;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.mx.mxbean.CompositeDataInvocationHandler;
+import org.jboss.test.mx.mxbean.support.InvalidInterface;
+import org.jboss.test.mx.mxbean.support.SimpleInterface;
+
+/**
+ * CompositeDataInvocationHandlerUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataInvocationHandlerUnitTestCase extends AbstractMXBeanTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataInvocationHandlerUnitTestCase.class);
+   }
+   
+   public CompositeDataInvocationHandlerUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testGetCompositeData() throws Exception
+   {
+      CompositeData compositeData = createTestCompositeData();
+      CompositeDataInvocationHandler test = new CompositeDataInvocationHandler(compositeData);
+      assertTrue(compositeData == test.getCompositeData());
+   }
+   
+   public void testNullCompositeData() throws Exception
+   {
+      try
+      {
+         new CompositeDataInvocationHandler(null);
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowable(IllegalArgumentException.class, t);
+      }
+   }
+   
+   public void testToEquals() throws Exception
+   {
+      SimpleInterface test1 = createTestCompositeDataProxy("Test1");
+      
+      assertFalse(test1.equals(null));
+      assertFalse(test1.equals(new Object()));
+      assertTrue(test1.equals(test1));
+
+      SimpleInterface test2 = createTestCompositeDataProxy("Test2");
+      
+      assertFalse(test1.equals(test2));
+   }
+   
+   public void testHashCode() throws Exception
+   {
+      CompositeData compositeData = createTestCompositeData();
+      SimpleInterface test = createCompositeDataProxy(SimpleInterface.class, compositeData);
+
+      assertEquals(test.hashCode(), compositeData.hashCode());
+   }
+   
+   public void testToString() throws Exception
+   {
+      CompositeData compositeData = createTestCompositeData();
+      SimpleInterface test = createCompositeDataProxy(SimpleInterface.class, compositeData);
+
+      assertEquals(test.toString(), compositeData.toString());
+   }
+   
+   public void testGetSimpleTypes() throws Exception
+   {
+      SimpleInterface test = createTestCompositeDataProxy();
+      assertEquals(SimpleInterface.bigDecimalValue, test.getBigDecimal());
+      assertEquals(SimpleInterface.bigIntegerValue, test.getBigInteger());
+      assertEquals(SimpleInterface.booleanValue, test.getBoolean());
+      assertEquals(SimpleInterface.primitiveBooleanValue, test.isPrimitiveBoolean());
+      assertEquals(SimpleInterface.byteValue, test.getByte());
+      assertEquals(SimpleInterface.primitiveByteValue, test.getPrimitiveByte());
+      assertEquals(SimpleInterface.characterValue, test.getCharacter());
+      assertEquals(SimpleInterface.primitiveCharValue, test.getPrimitiveChar());
+      assertEquals(SimpleInterface.dateValue, test.getDate());
+      assertEquals(SimpleInterface.doubleValue, test.getDouble());
+      assertEquals(SimpleInterface.primitiveDoubleValue, test.getPrimitiveDouble());
+      assertEquals(SimpleInterface.floatValue, test.getFloat());
+      assertEquals(SimpleInterface.primitiveFloatValue, test.getPrimitiveFloat());
+      assertEquals(SimpleInterface.integerValue, test.getInteger());
+      assertEquals(SimpleInterface.primitiveIntValue, test.getPrimitiveInt());
+      assertEquals(SimpleInterface.longValue, test.getLong());
+      assertEquals(SimpleInterface.primitiveLongValue, test.getPrimitiveLong());
+      assertEquals(SimpleInterface.objectNameValue, test.getObjectName());
+      assertEquals(SimpleInterface.shortValue, test.getShort());
+      assertEquals(SimpleInterface.primitiveShortValue, test.getPrimitiveShort());
+      assertEquals(SimpleInterface.stringValue, test.getString());
+   }
+   
+   public void testNullPrimitives() throws Exception
+   {
+      SimpleInterface test = createNullCompositeDataProxy();
+      assertNull(test.getBigDecimal());
+      assertNull(test.getBigInteger());
+      assertNull(test.getBoolean());
+      try
+      {
+         test.isPrimitiveBoolean();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getByte());
+      try
+      {
+         test.getPrimitiveByte();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getCharacter());
+      try
+      {
+         test.getPrimitiveChar();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getDate());
+      assertNull(test.getDouble());
+      try
+      {
+         test.getPrimitiveDouble();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getFloat());
+      try
+      {
+         test.getPrimitiveFloat();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getInteger());
+      try
+      {
+         test.getPrimitiveInt();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getLong());
+      try
+      {
+         test.getPrimitiveLong();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(test.getObjectName());
+      assertNull(test.getShort());
+      try
+      {
+         test.getPrimitiveShort();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+      assertNull(SimpleInterface.stringValue, test.getString());
+   }
+   
+   public void testGetInvalid() throws Exception
+   {
+      InvalidInterface test = createInvalidCompositeDataProxy();
+      try
+      {
+         test.getInvalid();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, InvalidKeyException.class, t);
+      }
+   }
+   
+   public void testNotAGetter() throws Exception
+   {
+      InvalidInterface test = createInvalidCompositeDataProxy();
+      try
+      {
+         test.notAGetter();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+   }
+   
+   public void testGetNoReturnType() throws Exception
+   {
+      InvalidInterface test = createInvalidCompositeDataProxy();
+      try
+      {
+         test.getString();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+   }
+   
+   public void testGetWithParameters() throws Exception
+   {
+      InvalidInterface test = createInvalidCompositeDataProxy();
+      try
+      {
+         test.getString(null);
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+   }
+   
+   public void testIsNotBoolean() throws Exception
+   {
+      InvalidInterface test = createInvalidCompositeDataProxy();
+      try
+      {
+         test.isString();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+   }
+   
+   public void testIsBoolean() throws Exception
+   {
+      InvalidInterface test = createInvalidCompositeDataProxy();
+      try
+      {
+         test.isBoolean();
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowableDeep(IllegalArgumentException.class, t);
+      }
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataLongUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataLongUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataLongUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataLongUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataLongUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataLongUnitTestCase.class);
-   }
-   
-   public CompositeDataLongUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testLong() throws Exception
-   {
-      constructReconstructTest(new Long(Long.MAX_VALUE));
-   }
-   
-   public void testLongNull() throws Exception
-   {
-      constructReconstructTest(null, Long.class);
-   }
-   
-   public void testLongPrimitive() throws Exception
-   {
-      constructReconstructTest(Long.MAX_VALUE, Long.TYPE);
-   }
-   
-   public void testLongNullPrimitive() throws Exception
-   {
-      assertNullFailure(Long.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataLongUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataLongUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataLongUnitTestCase.class);
+   }
+   
+   public CompositeDataLongUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testLong() throws Exception
+   {
+      constructReconstructTest(new Long(Long.MAX_VALUE));
+   }
+   
+   public void testLongNull() throws Exception
+   {
+      constructReconstructTest(null, Long.class);
+   }
+   
+   public void testLongPrimitive() throws Exception
+   {
+      constructReconstructTest(Long.MAX_VALUE, Long.TYPE);
+   }
+   
+   public void testLongNullPrimitive() throws Exception
+   {
+      assertNullFailure(Long.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataMapUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataMapUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataMapUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,106 +1,106 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.lang.reflect.Type;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.mx.mxbean.MXBeanUtils;
-import org.jboss.test.mx.mxbean.support.TestParameterizedType;
-
-/**
- * CompositeDataMapUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataMapUnitTestCase extends CompositeDataTest
-{
-   private static final TestParameterizedType MAP_OF_STRINGS_TO_INTEGERS = new TestParameterizedType(Map.class, new Type[] { String.class, Integer.class });
-   private static final TabularType TABLE_STRING_TO_INTEGER = MXBeanUtils.createMapType(String.class, Integer.class);
-   
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataMapUnitTestCase.class);
-   }
-   
-   public CompositeDataMapUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testMap() throws Exception
-   {
-      Map<String, Integer> c = new LinkedHashMap<String, Integer>();
-      c.put("one", 1);
-      c.put("two", 2);
-      c.put("three", 3);
-      TabularDataSupport openData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
-      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "one", 1 }));
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "two", 2 }));
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "three", 3 }));
-      constructReconstructTest(c, MAP_OF_STRINGS_TO_INTEGERS, openData);
-   }
-   
-   public void testMapNull() throws Exception
-   {
-      constructReconstructTest(null, MAP_OF_STRINGS_TO_INTEGERS);
-   }
-   
-   public void testMapNullKey() throws Exception
-   {
-      Map<String, Integer> c = new LinkedHashMap<String, Integer>();
-      c.put("one", 1);
-      c.put(null, 2);
-      c.put("three", 3);
-      TabularDataSupport openData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
-      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "one", 1 }));
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { null, 2 }));
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "three", 3 }));
-      constructReconstructTest(c, MAP_OF_STRINGS_TO_INTEGERS, openData);
-   }
-   
-   public void testMapNullValue() throws Exception
-   {
-      Map<String, Integer> c = new LinkedHashMap<String, Integer>();
-      c.put("one", 1);
-      c.put("two", null);
-      c.put("three", 3);
-      TabularDataSupport openData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
-      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "one", 1 }));
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "two", null }));
-      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "three", 3 }));
-      constructReconstructTest(c, MAP_OF_STRINGS_TO_INTEGERS, openData);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.lang.reflect.Type;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.management.openmbean.CompositeDataSupport;
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.TabularDataSupport;
+import javax.management.openmbean.TabularType;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.mx.mxbean.MXBeanUtils;
+import org.jboss.test.mx.mxbean.support.TestParameterizedType;
+
+/**
+ * CompositeDataMapUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataMapUnitTestCase extends CompositeDataTest
+{
+   private static final TestParameterizedType MAP_OF_STRINGS_TO_INTEGERS = new TestParameterizedType(Map.class, new Type[] { String.class, Integer.class });
+   private static final TabularType TABLE_STRING_TO_INTEGER = MXBeanUtils.createMapType(String.class, Integer.class);
+   
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataMapUnitTestCase.class);
+   }
+   
+   public CompositeDataMapUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testMap() throws Exception
+   {
+      Map<String, Integer> c = new LinkedHashMap<String, Integer>();
+      c.put("one", 1);
+      c.put("two", 2);
+      c.put("three", 3);
+      TabularDataSupport openData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
+      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "one", 1 }));
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "two", 2 }));
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "three", 3 }));
+      constructReconstructTest(c, MAP_OF_STRINGS_TO_INTEGERS, openData);
+   }
+   
+   public void testMapNull() throws Exception
+   {
+      constructReconstructTest(null, MAP_OF_STRINGS_TO_INTEGERS);
+   }
+   
+   public void testMapNullKey() throws Exception
+   {
+      Map<String, Integer> c = new LinkedHashMap<String, Integer>();
+      c.put("one", 1);
+      c.put(null, 2);
+      c.put("three", 3);
+      TabularDataSupport openData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
+      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "one", 1 }));
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { null, 2 }));
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "three", 3 }));
+      constructReconstructTest(c, MAP_OF_STRINGS_TO_INTEGERS, openData);
+   }
+   
+   public void testMapNullValue() throws Exception
+   {
+      Map<String, Integer> c = new LinkedHashMap<String, Integer>();
+      c.put("one", 1);
+      c.put("two", null);
+      c.put("three", 3);
+      TabularDataSupport openData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
+      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "one", 1 }));
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "two", null }));
+      openData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "three", 3 }));
+      constructReconstructTest(c, MAP_OF_STRINGS_TO_INTEGERS, openData);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataObjectNameUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataObjectNameUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataObjectNameUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,58 +1,58 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.ObjectNameFactory;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataObjectNameUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataObjectNameUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataObjectNameUnitTestCase.class);
-   }
-   
-   public CompositeDataObjectNameUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testObjectName() throws Exception
-   {
-      constructReconstructTest(ObjectNameFactory.create("domain:key=property"));
-   }
-   
-   public void testObjectNameNull() throws Exception
-   {
-      constructReconstructTest(null, ObjectName.class);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import javax.management.ObjectName;
+
+import org.jboss.mx.util.ObjectNameFactory;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataObjectNameUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataObjectNameUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataObjectNameUnitTestCase.class);
+   }
+   
+   public CompositeDataObjectNameUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testObjectName() throws Exception
+   {
+      constructReconstructTest(ObjectNameFactory.create("domain:key=property"));
+   }
+   
+   public void testObjectNameNull() throws Exception
+   {
+      constructReconstructTest(null, ObjectName.class);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataShortUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataShortUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataShortUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,64 +1,64 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeDataShortUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataShortUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataShortUnitTestCase.class);
-   }
-   
-   public CompositeDataShortUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testShort() throws Exception
-   {
-      constructReconstructTest(new Short(Short.MAX_VALUE));
-   }
-   
-   public void testShortNull() throws Exception
-   {
-      constructReconstructTest(null, Short.class);
-   }
-   
-   public void testShortPrimitive() throws Exception
-   {
-      constructReconstructTest(Short.MAX_VALUE, Short.TYPE);
-   }
-   
-   public void testShortNullPrimitive() throws Exception
-   {
-      assertNullFailure(Short.TYPE);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeDataShortUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataShortUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataShortUnitTestCase.class);
+   }
+   
+   public CompositeDataShortUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testShort() throws Exception
+   {
+      constructReconstructTest(new Short(Short.MAX_VALUE));
+   }
+   
+   public void testShortNull() throws Exception
+   {
+      constructReconstructTest(null, Short.class);
+   }
+   
+   public void testShortPrimitive() throws Exception
+   {
+      constructReconstructTest(Short.MAX_VALUE, Short.TYPE);
+   }
+   
+   public void testShortNullPrimitive() throws Exception
+   {
+      assertNullFailure(Short.TYPE);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataStringUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataStringUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataStringUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,59 +1,59 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * CompositeTypeStringUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeDataStringUnitTestCase extends CompositeDataTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(CompositeDataStringUnitTestCase.class);
-   }
-   
-   public CompositeDataStringUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testString() throws Exception
-   {
-      constructReconstructTest("Hello");
-   }
-   
-   public void testStringEmpty() throws Exception
-   {
-      constructReconstructTest("");
-   }
-   
-   public void testStringNull() throws Exception
-   {
-      constructReconstructTest(null, String.class);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * CompositeTypeStringUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeDataStringUnitTestCase extends CompositeDataTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(CompositeDataStringUnitTestCase.class);
+   }
+   
+   public CompositeDataStringUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testString() throws Exception
+   {
+      constructReconstructTest("Hello");
+   }
+   
+   public void testStringEmpty() throws Exception
+   {
+      constructReconstructTest("");
+   }
+   
+   public void testStringNull() throws Exception
+   {
+      constructReconstructTest(null, String.class);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataTest.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataTest.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeDataTest.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,129 +1,129 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.lang.reflect.Type;
-
-import javax.management.openmbean.OpenType;
-
-import junit.framework.AssertionFailedError;
-
-import org.jboss.mx.mxbean.MXBeanUtils;
-
-/**
- * CompositeDataTest.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public abstract class CompositeDataTest extends AbstractMXBeanTest
-{
-   public CompositeDataTest(String name)
-   {
-      super(name);
-   }
-
-   protected void constructReconstructTest(Object initialValue) throws Exception
-   {
-      constructReconstructTest(initialValue, initialValue);
-   }
-
-   protected void constructReconstructTest(Object initialValue, Type type) throws Exception
-   {
-      constructReconstructTest(initialValue, type, initialValue);
-   }
-
-   protected void constructReconstructTest(Object initialValue, Type type, Object expectedOpenData) throws Exception
-   {
-      constructReconstructTest(initialValue, type, expectedOpenData, initialValue);
-   }
-
-   protected void assertNullFailure(Type type) throws Exception
-   {
-      try
-      {
-         constructReconstructTest(null, type);
-         fail("Should not be here");
-      }
-      catch (AssertionFailedError e)
-      {
-         throw e;
-      }
-      catch (Throwable t)
-      {
-         checkThrowable(IllegalArgumentException.class, t);
-      }
-   }
-
-   protected void constructReconstructTest(Object initialValue, Object expectedOpenData) throws Exception
-   {
-      constructReconstructTest(initialValue, expectedOpenData, initialValue);
-   }
-
-   protected void constructReconstructTest(Object initialValue, Object expectedOpenData, Object expected) throws Exception
-   {
-      Type type = initialValue.getClass();
-      constructReconstructTest(initialValue, type, expectedOpenData, expected);
-   }
-
-   protected void constructReconstructTest(Object initialValue, Type type, Object expectedOpenData, Object expected) throws Exception
-   {
-      OpenType openType = MXBeanUtils.getOpenType(type);
-      constructReconstructTest(initialValue, type, openType, expectedOpenData, expected);
-   }
-
-   protected void constructReconstructTest(Object initialValue, Type type, OpenType openType, Object expectedOpenData, Object expected) throws Exception
-   {
-      Object openData = construct(openType, type, initialValue);
-      checkOpenDataEquals(expectedOpenData, openData);
-      if (initialValue != null)
-         assertTrue(openData + " is not " + openType, openType.isValue(openData));
-      
-      Object finalValue = reconstruct(openType, type, openData);
-      checkFinalEquals(expected, finalValue);
-   }
-   
-   protected void checkOpenDataEquals(Object expected, Object actual)
-   {
-      checkEquals(expected, actual);
-   }
-   
-   protected void checkFinalEquals(Object expected, Object actual)
-   {
-      checkEquals(expected, actual);
-   }
-   
-   protected void checkEquals(Object expected, Object actual)
-   {
-      assertEquals(expected, actual);
-   }
-
-   protected Object construct(OpenType openType, Type type, Object value) throws Exception
-   {
-      return MXBeanUtils.construct(openType, value, getClass().getName() + "#" + getName());
-   }
-   
-   protected Object reconstruct(OpenType openType, Type type, Object openData) throws Exception
-   {
-      return MXBeanUtils.reconstruct(openType, type, openData, getClass().getName() + "#" + getName());
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.lang.reflect.Type;
+
+import javax.management.openmbean.OpenType;
+
+import junit.framework.AssertionFailedError;
+
+import org.jboss.mx.mxbean.MXBeanUtils;
+
+/**
+ * CompositeDataTest.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class CompositeDataTest extends AbstractMXBeanTest
+{
+   public CompositeDataTest(String name)
+   {
+      super(name);
+   }
+
+   protected void constructReconstructTest(Object initialValue) throws Exception
+   {
+      constructReconstructTest(initialValue, initialValue);
+   }
+
+   protected void constructReconstructTest(Object initialValue, Type type) throws Exception
+   {
+      constructReconstructTest(initialValue, type, initialValue);
+   }
+
+   protected void constructReconstructTest(Object initialValue, Type type, Object expectedOpenData) throws Exception
+   {
+      constructReconstructTest(initialValue, type, expectedOpenData, initialValue);
+   }
+
+   protected void assertNullFailure(Type type) throws Exception
+   {
+      try
+      {
+         constructReconstructTest(null, type);
+         fail("Should not be here");
+      }
+      catch (AssertionFailedError e)
+      {
+         throw e;
+      }
+      catch (Throwable t)
+      {
+         checkThrowable(IllegalArgumentException.class, t);
+      }
+   }
+
+   protected void constructReconstructTest(Object initialValue, Object expectedOpenData) throws Exception
+   {
+      constructReconstructTest(initialValue, expectedOpenData, initialValue);
+   }
+
+   protected void constructReconstructTest(Object initialValue, Object expectedOpenData, Object expected) throws Exception
+   {
+      Type type = initialValue.getClass();
+      constructReconstructTest(initialValue, type, expectedOpenData, expected);
+   }
+
+   protected void constructReconstructTest(Object initialValue, Type type, Object expectedOpenData, Object expected) throws Exception
+   {
+      OpenType openType = MXBeanUtils.getOpenType(type);
+      constructReconstructTest(initialValue, type, openType, expectedOpenData, expected);
+   }
+
+   protected void constructReconstructTest(Object initialValue, Type type, OpenType openType, Object expectedOpenData, Object expected) throws Exception
+   {
+      Object openData = construct(openType, type, initialValue);
+      checkOpenDataEquals(expectedOpenData, openData);
+      if (initialValue != null)
+         assertTrue(openData + " is not " + openType, openType.isValue(openData));
+      
+      Object finalValue = reconstruct(openType, type, openData);
+      checkFinalEquals(expected, finalValue);
+   }
+   
+   protected void checkOpenDataEquals(Object expected, Object actual)
+   {
+      checkEquals(expected, actual);
+   }
+   
+   protected void checkFinalEquals(Object expected, Object actual)
+   {
+      checkEquals(expected, actual);
+   }
+   
+   protected void checkEquals(Object expected, Object actual)
+   {
+      assertEquals(expected, actual);
+   }
+
+   protected Object construct(OpenType openType, Type type, Object value) throws Exception
+   {
+      return MXBeanUtils.construct(openType, value, getClass().getName() + "#" + getName());
+   }
+   
+   protected Object reconstruct(OpenType openType, Type type, Object openData) throws Exception
+   {
+      return MXBeanUtils.reconstruct(openType, type, openData, getClass().getName() + "#" + getName());
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeTypeMetaDataFactoryUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeTypeMetaDataFactoryUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/CompositeTypeMetaDataFactoryUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,113 +1,113 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import javax.management.openmbean.CompositeType;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.mx.mxbean.CompositeTypeMetaData;
-import org.jboss.mx.mxbean.CompositeTypeMetaDataFactory;
-import org.jboss.test.mx.mxbean.support.CollectionsInterface;
-import org.jboss.test.mx.mxbean.support.CompositeInterface;
-import org.jboss.test.mx.mxbean.support.SimpleInterface;
-import org.jboss.test.mx.mxbean.support.SimpleObject;
-
-/**
- * CompositeTypeMetaDataFactoryUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class CompositeTypeMetaDataFactoryUnitTestCase extends AbstractMXBeanTest
-{
-   private static final CompositeType OBJECT_TYPE = CompositeTypeMetaData.generateObject();
-   private static final CompositeType CLASS_TYPE = CompositeTypeMetaData.generateClass();
-   private static final CompositeType CLASSLOADER_TYPE = CompositeTypeMetaData.generateClassLoader();
-   
-   public static Test suite()
-   {
-      return new TestSuite(CompositeTypeMetaDataFactoryUnitTestCase.class);
-   }
-   
-   public CompositeTypeMetaDataFactoryUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testGetCompositeDataObject() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(Object.class);
-      assertNotNull(type);
-      assertEquals(OBJECT_TYPE, type);
-   }
-   
-   public void testGetCompositeDataClass() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(Class.class);
-      assertNotNull(type);
-      assertEquals(CLASS_TYPE, type);
-   }
-   
-   public void testGetCompositeDataClassLoader() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(ClassLoader.class);
-      assertNotNull(type);
-      assertEquals(CLASSLOADER_TYPE, type);
-   }
-   
-   public void testSimpleInterfaceCompositeType() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(SimpleInterface.class);
-      assertNotNull(type);
-      assertEquals(createSimpleCompositeType(SimpleInterface.class), type);
-   }
-   
-   public void testSimpleObjectCompositeType() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(SimpleObject.class);
-      assertNotNull(type);
-      assertEquals(createSimpleCompositeType(SimpleObject.class), type);
-   }
-   
-   public void testCompositeInterfaceType() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(CompositeInterface.class);
-      assertNotNull(type);
-      CompositeType expected = createCompositeType(CompositeInterface.class.getName(), CompositeInterface.KEYS, CompositeInterface.TYPES);
-      assertEquals(expected, type);
-   }
-   
-   public void testCollectionsInterfaceType() throws Exception
-   {
-      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(CollectionsInterface.class);
-      assertNotNull(type);
-      CompositeType expected = createCompositeType(CollectionsInterface.class.getName(), CollectionsInterface.KEYS, CollectionsInterface.TYPES);
-      assertEquals(expected, type);
-   }
-   
-   protected CompositeType createSimpleCompositeType(Class clazz) throws Exception
-   {
-      return createCompositeType(clazz.getName(), SimpleInterface.KEYS, SimpleInterface.TYPES);
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import javax.management.openmbean.CompositeType;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.mx.mxbean.CompositeTypeMetaData;
+import org.jboss.mx.mxbean.CompositeTypeMetaDataFactory;
+import org.jboss.test.mx.mxbean.support.CollectionsInterface;
+import org.jboss.test.mx.mxbean.support.CompositeInterface;
+import org.jboss.test.mx.mxbean.support.SimpleInterface;
+import org.jboss.test.mx.mxbean.support.SimpleObject;
+
+/**
+ * CompositeTypeMetaDataFactoryUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CompositeTypeMetaDataFactoryUnitTestCase extends AbstractMXBeanTest
+{
+   private static final CompositeType OBJECT_TYPE = CompositeTypeMetaData.generateObject();
+   private static final CompositeType CLASS_TYPE = CompositeTypeMetaData.generateClass();
+   private static final CompositeType CLASSLOADER_TYPE = CompositeTypeMetaData.generateClassLoader();
+   
+   public static Test suite()
+   {
+      return new TestSuite(CompositeTypeMetaDataFactoryUnitTestCase.class);
+   }
+   
+   public CompositeTypeMetaDataFactoryUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testGetCompositeDataObject() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(Object.class);
+      assertNotNull(type);
+      assertEquals(OBJECT_TYPE, type);
+   }
+   
+   public void testGetCompositeDataClass() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(Class.class);
+      assertNotNull(type);
+      assertEquals(CLASS_TYPE, type);
+   }
+   
+   public void testGetCompositeDataClassLoader() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(ClassLoader.class);
+      assertNotNull(type);
+      assertEquals(CLASSLOADER_TYPE, type);
+   }
+   
+   public void testSimpleInterfaceCompositeType() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(SimpleInterface.class);
+      assertNotNull(type);
+      assertEquals(createSimpleCompositeType(SimpleInterface.class), type);
+   }
+   
+   public void testSimpleObjectCompositeType() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(SimpleObject.class);
+      assertNotNull(type);
+      assertEquals(createSimpleCompositeType(SimpleObject.class), type);
+   }
+   
+   public void testCompositeInterfaceType() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(CompositeInterface.class);
+      assertNotNull(type);
+      CompositeType expected = createCompositeType(CompositeInterface.class.getName(), CompositeInterface.KEYS, CompositeInterface.TYPES);
+      assertEquals(expected, type);
+   }
+   
+   public void testCollectionsInterfaceType() throws Exception
+   {
+      CompositeType type = CompositeTypeMetaDataFactory.getCompositeType(CollectionsInterface.class);
+      assertNotNull(type);
+      CompositeType expected = createCompositeType(CollectionsInterface.class.getName(), CollectionsInterface.KEYS, CollectionsInterface.TYPES);
+      assertEquals(expected, type);
+   }
+   
+   protected CompositeType createSimpleCompositeType(Class clazz) throws Exception
+   {
+      return createCompositeType(clazz.getName(), SimpleInterface.KEYS, SimpleInterface.TYPES);
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanInvocationHandlerUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanInvocationHandlerUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanInvocationHandlerUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,311 +1,311 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.openmbean.OpenMBeanAttributeInfo;
-import javax.management.openmbean.OpenMBeanInfo;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.mx.mxbean.MXBeanFactory;
-import org.jboss.mx.mxbean.MXBeanUtils;
-import org.jboss.test.mx.mxbean.support.CollectionsInterface;
-import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupport;
-import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupportMXBean;
-import org.jboss.test.mx.mxbean.support.CompositeInterface;
-import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupport;
-import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupportMXBean;
-import org.jboss.test.mx.mxbean.support.SimpleInterface;
-import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupport;
-import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupportMXBean;
-import org.jboss.test.mx.mxbean.support.SimpleObject;
-import org.jboss.test.mx.mxbean.support.TestEnum;
-
-/**
- * MXBeanInvocationHandlerUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanInvocationHandlerUnitTestCase extends AbstractMXBeanTest
-{
-   public static Test suite()
-   {
-      return new TestSuite(MXBeanInvocationHandlerUnitTestCase.class);
-   }
-   
-   public MXBeanInvocationHandlerUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testGetSimpleAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
-      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      SimpleMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, SimpleMXBeanSupportMXBean.class);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
-      for (int i = 0; i < types.length; ++i)
-         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
-      checkAttributes(SimpleMXBeanSupportMXBean.class, proxy, support, SimpleInterface.KEYS, types, SimpleInterface.VALUES, info);
-   }
-   
-   public void testSetSimpleAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
-      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      SimpleMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, SimpleMXBeanSupportMXBean.class);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
-      for (int i = 0; i < types.length; ++i)
-         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
-      proxy.setBigDecimal(SimpleInterface.bigDecimalChangedValue);
-      proxy.setBigInteger(SimpleInterface.bigIntegerChangedValue);
-      proxy.setBoolean(SimpleInterface.booleanChangedValue);
-      proxy.setByte(SimpleInterface.byteChangedValue);
-      proxy.setCharacter(SimpleInterface.characterChangedValue);
-      proxy.setDate(SimpleInterface.dateChangedValue);
-      proxy.setDouble(SimpleInterface.doubleChangedValue);
-      proxy.setFloat(SimpleInterface.floatChangedValue);
-      proxy.setInteger(SimpleInterface.integerChangedValue);
-      proxy.setLong(SimpleInterface.longChangedValue);
-      proxy.setObjectName(SimpleInterface.objectNameChangedValue);
-      proxy.setPrimitiveBoolean(SimpleInterface.primitiveBooleanChangedValue);
-      proxy.setPrimitiveByte(SimpleInterface.primitiveByteChangedValue);
-      proxy.setPrimitiveChar(SimpleInterface.primitiveCharChangedValue);
-      proxy.setPrimitiveDouble(SimpleInterface.primitiveDoubleChangedValue);
-      proxy.setPrimitiveFloat(SimpleInterface.primitiveFloatChangedValue);
-      proxy.setPrimitiveInt(SimpleInterface.primitiveIntChangedValue);
-      proxy.setPrimitiveLong(SimpleInterface.primitiveLongChangedValue);
-      proxy.setPrimitiveShort(SimpleInterface.primitiveShortChangedValue);
-      proxy.setShort(SimpleInterface.shortChangedValue);
-      proxy.setString(SimpleInterface.stringChangedValue);
-      checkAttributes(SimpleInterface.class, proxy, support, SimpleInterface.KEYS, types, SimpleInterface.CHANGED_VALUES, info);
-   }
-
-   public void testSimpleInvoke() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
-      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      SimpleMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, SimpleMXBeanSupportMXBean.class);
-      assertEquals("olleH", proxy.echoReverse("Hello"));
-   }
-   
-   public void testGetCompositeAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleObject composite = new SimpleObject();
-      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      CompositeMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CompositeMXBeanSupportMXBean.class);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      Object[] values = { "Simple", composite };
-      checkAttributes(CompositeMXBeanSupportMXBean.class, proxy, support, CompositeInterface.KEYS, CompositeInterface.TYPES, values, info);
-   }
-   
-   public void testSetCompositeAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleObject composite = new SimpleObject();
-      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      CompositeMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CompositeMXBeanSupportMXBean.class);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      SimpleObject changed = new SimpleObject();
-      changed.setBigDecimal(SimpleInterface.bigDecimalChangedValue);
-      changed.setBigInteger(SimpleInterface.bigIntegerChangedValue);
-      changed.setBoolean(SimpleInterface.booleanChangedValue);
-      changed.setByte(SimpleInterface.byteChangedValue);
-      changed.setCharacter(SimpleInterface.characterChangedValue);
-      changed.setDate(SimpleInterface.dateChangedValue);
-      changed.setDouble(SimpleInterface.doubleChangedValue);
-      changed.setFloat(SimpleInterface.floatChangedValue);
-      changed.setInteger(SimpleInterface.integerChangedValue);
-      changed.setLong(SimpleInterface.longChangedValue);
-      changed.setObjectName(SimpleInterface.objectNameChangedValue);
-      changed.setPrimitiveBoolean(SimpleInterface.primitiveBooleanChangedValue);
-      changed.setPrimitiveByte(SimpleInterface.primitiveByteChangedValue);
-      changed.setPrimitiveChar(SimpleInterface.primitiveCharChangedValue);
-      changed.setPrimitiveDouble(SimpleInterface.primitiveDoubleChangedValue);
-      changed.setPrimitiveFloat(SimpleInterface.primitiveFloatChangedValue);
-      changed.setPrimitiveInt(SimpleInterface.primitiveIntChangedValue);
-      changed.setPrimitiveLong(SimpleInterface.primitiveLongChangedValue);
-      changed.setPrimitiveShort(SimpleInterface.primitiveShortChangedValue);
-      changed.setShort(SimpleInterface.shortChangedValue);
-      changed.setString(SimpleInterface.stringChangedValue);
-      proxy.setSimple("Changed");
-      proxy.setComposite(changed);
-      Object[] values = new Object[] { "Changed", changed };
-      checkAttributes(CompositeMXBeanSupportMXBean.class, proxy, support, CompositeInterface.KEYS, CompositeInterface.TYPES, values, info);
-   }
-
-   public void testCompositeInvoke() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleObject composite = new SimpleObject();
-      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      CompositeMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CompositeMXBeanSupportMXBean.class);
-      composite = new SimpleObject();
-      composite.setString("hello");
-      SimpleInterface result = proxy.echoReverse(composite);
-      assertEquals("olleh", result.getString());
-   }
-   
-   public void testGetCollectionAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      String[] array = { "array" };
-      Collection<String> collection = new ArrayList<String>();
-      collection.add("collection");
-      Set<String> set = new HashSet<String>();
-      set.add("set");
-      List<String> list = new ArrayList<String>();
-      list.add("list");
-      Map<String, Integer> map = new HashMap<String, Integer>();
-      map.put("map", 1);
-      TestEnum enumeration = TestEnum.FIRST;
-      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
-      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      CollectionsMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CollectionsMXBeanSupportMXBean.class);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      Object[] values = { array, collection, set, list, map, enumeration };
-      checkAttributes(CollectionsMXBeanSupportMXBean.class, proxy, support, CollectionsInterface.KEYS, CollectionsInterface.TYPES, values, info);
-   }
-   
-   public void testSetCollectionAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      String[] array = { "array" };
-      Collection<String> collection = new ArrayList<String>();
-      collection.add("collection");
-      Set<String> set = new LinkedHashSet<String>();
-      set.add("set");
-      List<String> list = new ArrayList<String>();
-      list.add("list");
-      Map<String, Integer> map = new LinkedHashMap<String, Integer>();
-      map.put("map", 1);
-      TestEnum enumeration = TestEnum.FIRST;
-      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
-      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      CollectionsMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CollectionsMXBeanSupportMXBean.class);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-
-      String[] changedArray = { "arrayChanged" };
-      Collection<String> changedCollection = new ArrayList<String>();
-      changedCollection.add("collectionChanged");
-      Set<String> changedSet = new LinkedHashSet<String>();
-      changedSet.add("setChanged");
-      List<String> changedList = new ArrayList<String>();
-      changedList.add("listChanged");
-      Map<String, Integer> changedMap = new LinkedHashMap<String, Integer>();
-      changedMap.put("mapChanged", 2);
-      TestEnum changedEnumeration = TestEnum.SECOND;
-      
-      proxy.setArray(changedArray);
-      proxy.setCollection(changedCollection);
-      proxy.setEnum(changedEnumeration);
-      proxy.setList(changedList);
-      proxy.setMap(changedMap);
-      proxy.setSet(changedSet);
-      Object[] changedValues = { changedArray, changedCollection, changedSet, changedList, changedMap, changedEnumeration };
-      checkAttributes(CollectionsMXBeanSupportMXBean.class, proxy, support, CollectionsInterface.KEYS, CollectionsInterface.TYPES, changedValues, info);
-   }
-
-   public void testCollectionInvoke() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport();
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      CollectionsMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CollectionsMXBeanSupportMXBean.class);
-      List<String> list = new ArrayList<String>();
-      list.add("one");
-      list.add("two");
-      list.add("three");
-      List<String> expected = new ArrayList<String>();
-      expected.add("three");
-      expected.add("two");
-      expected.add("one");
-      List<String> result = proxy.echoReverse(list);
-      assertEquals(expected, result);
-   }
-
-   protected void checkAttributes(Class intf, Object proxy, Object mxbean, String[] keys, OpenType[] types, Object[] values, OpenMBeanInfo info) throws Exception
-   {
-      MBeanAttributeInfo[] attributes = info.getAttributes();
-
-      assertEquals(keys.length, values.length);
-      assertEquals(keys.length, types.length);
-      assertEquals(keys.length, attributes.length);
-      
-      Map<String, OpenMBeanAttributeInfo> mapping = new HashMap<String, OpenMBeanAttributeInfo>(attributes.length);
-      for (int i = 0; i < attributes.length; ++i)
-      {
-         OpenMBeanAttributeInfo attribute = (OpenMBeanAttributeInfo) attributes[i];
-         String name = attribute.getName();
-         mapping.put(name, attribute);
-      }
-      
-      for (int i = 0; i < keys.length; ++i)
-      {
-         String name = getUpperName(keys[i]);
-         OpenMBeanAttributeInfo attribute = mapping.get(name);
-         assertNotNull("Could not find key " + name + " in " + mapping.keySet(), attribute);
-         Method method = MXBeanUtils.getCompositeDataMethod(intf, keys[i], types[i] == SimpleType.BOOLEAN);
-         Object value = method.invoke(proxy, null);
-         checkValueEquals(values[i], value);
-         value = method.invoke(mxbean, null);
-         checkValueEquals(values[i], value);
-         assertEquals(types[i], attribute.getOpenType());
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.openmbean.OpenMBeanAttributeInfo;
+import javax.management.openmbean.OpenMBeanInfo;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.mx.mxbean.MXBeanFactory;
+import org.jboss.mx.mxbean.MXBeanUtils;
+import org.jboss.test.mx.mxbean.support.CollectionsInterface;
+import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupport;
+import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupportMXBean;
+import org.jboss.test.mx.mxbean.support.CompositeInterface;
+import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupport;
+import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupportMXBean;
+import org.jboss.test.mx.mxbean.support.SimpleInterface;
+import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupport;
+import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupportMXBean;
+import org.jboss.test.mx.mxbean.support.SimpleObject;
+import org.jboss.test.mx.mxbean.support.TestEnum;
+
+/**
+ * MXBeanInvocationHandlerUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanInvocationHandlerUnitTestCase extends AbstractMXBeanTest
+{
+   public static Test suite()
+   {
+      return new TestSuite(MXBeanInvocationHandlerUnitTestCase.class);
+   }
+   
+   public MXBeanInvocationHandlerUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testGetSimpleAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
+      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      SimpleMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, SimpleMXBeanSupportMXBean.class);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
+      for (int i = 0; i < types.length; ++i)
+         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
+      checkAttributes(SimpleMXBeanSupportMXBean.class, proxy, support, SimpleInterface.KEYS, types, SimpleInterface.VALUES, info);
+   }
+   
+   public void testSetSimpleAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
+      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      SimpleMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, SimpleMXBeanSupportMXBean.class);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
+      for (int i = 0; i < types.length; ++i)
+         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
+      proxy.setBigDecimal(SimpleInterface.bigDecimalChangedValue);
+      proxy.setBigInteger(SimpleInterface.bigIntegerChangedValue);
+      proxy.setBoolean(SimpleInterface.booleanChangedValue);
+      proxy.setByte(SimpleInterface.byteChangedValue);
+      proxy.setCharacter(SimpleInterface.characterChangedValue);
+      proxy.setDate(SimpleInterface.dateChangedValue);
+      proxy.setDouble(SimpleInterface.doubleChangedValue);
+      proxy.setFloat(SimpleInterface.floatChangedValue);
+      proxy.setInteger(SimpleInterface.integerChangedValue);
+      proxy.setLong(SimpleInterface.longChangedValue);
+      proxy.setObjectName(SimpleInterface.objectNameChangedValue);
+      proxy.setPrimitiveBoolean(SimpleInterface.primitiveBooleanChangedValue);
+      proxy.setPrimitiveByte(SimpleInterface.primitiveByteChangedValue);
+      proxy.setPrimitiveChar(SimpleInterface.primitiveCharChangedValue);
+      proxy.setPrimitiveDouble(SimpleInterface.primitiveDoubleChangedValue);
+      proxy.setPrimitiveFloat(SimpleInterface.primitiveFloatChangedValue);
+      proxy.setPrimitiveInt(SimpleInterface.primitiveIntChangedValue);
+      proxy.setPrimitiveLong(SimpleInterface.primitiveLongChangedValue);
+      proxy.setPrimitiveShort(SimpleInterface.primitiveShortChangedValue);
+      proxy.setShort(SimpleInterface.shortChangedValue);
+      proxy.setString(SimpleInterface.stringChangedValue);
+      checkAttributes(SimpleInterface.class, proxy, support, SimpleInterface.KEYS, types, SimpleInterface.CHANGED_VALUES, info);
+   }
+
+   public void testSimpleInvoke() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
+      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      SimpleMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, SimpleMXBeanSupportMXBean.class);
+      assertEquals("olleH", proxy.echoReverse("Hello"));
+   }
+   
+   public void testGetCompositeAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleObject composite = new SimpleObject();
+      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      CompositeMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CompositeMXBeanSupportMXBean.class);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      Object[] values = { "Simple", composite };
+      checkAttributes(CompositeMXBeanSupportMXBean.class, proxy, support, CompositeInterface.KEYS, CompositeInterface.TYPES, values, info);
+   }
+   
+   public void testSetCompositeAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleObject composite = new SimpleObject();
+      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      CompositeMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CompositeMXBeanSupportMXBean.class);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      SimpleObject changed = new SimpleObject();
+      changed.setBigDecimal(SimpleInterface.bigDecimalChangedValue);
+      changed.setBigInteger(SimpleInterface.bigIntegerChangedValue);
+      changed.setBoolean(SimpleInterface.booleanChangedValue);
+      changed.setByte(SimpleInterface.byteChangedValue);
+      changed.setCharacter(SimpleInterface.characterChangedValue);
+      changed.setDate(SimpleInterface.dateChangedValue);
+      changed.setDouble(SimpleInterface.doubleChangedValue);
+      changed.setFloat(SimpleInterface.floatChangedValue);
+      changed.setInteger(SimpleInterface.integerChangedValue);
+      changed.setLong(SimpleInterface.longChangedValue);
+      changed.setObjectName(SimpleInterface.objectNameChangedValue);
+      changed.setPrimitiveBoolean(SimpleInterface.primitiveBooleanChangedValue);
+      changed.setPrimitiveByte(SimpleInterface.primitiveByteChangedValue);
+      changed.setPrimitiveChar(SimpleInterface.primitiveCharChangedValue);
+      changed.setPrimitiveDouble(SimpleInterface.primitiveDoubleChangedValue);
+      changed.setPrimitiveFloat(SimpleInterface.primitiveFloatChangedValue);
+      changed.setPrimitiveInt(SimpleInterface.primitiveIntChangedValue);
+      changed.setPrimitiveLong(SimpleInterface.primitiveLongChangedValue);
+      changed.setPrimitiveShort(SimpleInterface.primitiveShortChangedValue);
+      changed.setShort(SimpleInterface.shortChangedValue);
+      changed.setString(SimpleInterface.stringChangedValue);
+      proxy.setSimple("Changed");
+      proxy.setComposite(changed);
+      Object[] values = new Object[] { "Changed", changed };
+      checkAttributes(CompositeMXBeanSupportMXBean.class, proxy, support, CompositeInterface.KEYS, CompositeInterface.TYPES, values, info);
+   }
+
+   public void testCompositeInvoke() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleObject composite = new SimpleObject();
+      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      CompositeMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CompositeMXBeanSupportMXBean.class);
+      composite = new SimpleObject();
+      composite.setString("hello");
+      SimpleInterface result = proxy.echoReverse(composite);
+      assertEquals("olleh", result.getString());
+   }
+   
+   public void testGetCollectionAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      String[] array = { "array" };
+      Collection<String> collection = new ArrayList<String>();
+      collection.add("collection");
+      Set<String> set = new HashSet<String>();
+      set.add("set");
+      List<String> list = new ArrayList<String>();
+      list.add("list");
+      Map<String, Integer> map = new HashMap<String, Integer>();
+      map.put("map", 1);
+      TestEnum enumeration = TestEnum.FIRST;
+      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
+      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      CollectionsMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CollectionsMXBeanSupportMXBean.class);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      Object[] values = { array, collection, set, list, map, enumeration };
+      checkAttributes(CollectionsMXBeanSupportMXBean.class, proxy, support, CollectionsInterface.KEYS, CollectionsInterface.TYPES, values, info);
+   }
+   
+   public void testSetCollectionAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      String[] array = { "array" };
+      Collection<String> collection = new ArrayList<String>();
+      collection.add("collection");
+      Set<String> set = new LinkedHashSet<String>();
+      set.add("set");
+      List<String> list = new ArrayList<String>();
+      list.add("list");
+      Map<String, Integer> map = new LinkedHashMap<String, Integer>();
+      map.put("map", 1);
+      TestEnum enumeration = TestEnum.FIRST;
+      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
+      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      CollectionsMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CollectionsMXBeanSupportMXBean.class);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+
+      String[] changedArray = { "arrayChanged" };
+      Collection<String> changedCollection = new ArrayList<String>();
+      changedCollection.add("collectionChanged");
+      Set<String> changedSet = new LinkedHashSet<String>();
+      changedSet.add("setChanged");
+      List<String> changedList = new ArrayList<String>();
+      changedList.add("listChanged");
+      Map<String, Integer> changedMap = new LinkedHashMap<String, Integer>();
+      changedMap.put("mapChanged", 2);
+      TestEnum changedEnumeration = TestEnum.SECOND;
+      
+      proxy.setArray(changedArray);
+      proxy.setCollection(changedCollection);
+      proxy.setEnum(changedEnumeration);
+      proxy.setList(changedList);
+      proxy.setMap(changedMap);
+      proxy.setSet(changedSet);
+      Object[] changedValues = { changedArray, changedCollection, changedSet, changedList, changedMap, changedEnumeration };
+      checkAttributes(CollectionsMXBeanSupportMXBean.class, proxy, support, CollectionsInterface.KEYS, CollectionsInterface.TYPES, changedValues, info);
+   }
+
+   public void testCollectionInvoke() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport();
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      CollectionsMXBeanSupportMXBean proxy = MXBeanFactory.makeProxy(server, objectName, CollectionsMXBeanSupportMXBean.class);
+      List<String> list = new ArrayList<String>();
+      list.add("one");
+      list.add("two");
+      list.add("three");
+      List<String> expected = new ArrayList<String>();
+      expected.add("three");
+      expected.add("two");
+      expected.add("one");
+      List<String> result = proxy.echoReverse(list);
+      assertEquals(expected, result);
+   }
+
+   protected void checkAttributes(Class intf, Object proxy, Object mxbean, String[] keys, OpenType[] types, Object[] values, OpenMBeanInfo info) throws Exception
+   {
+      MBeanAttributeInfo[] attributes = info.getAttributes();
+
+      assertEquals(keys.length, values.length);
+      assertEquals(keys.length, types.length);
+      assertEquals(keys.length, attributes.length);
+      
+      Map<String, OpenMBeanAttributeInfo> mapping = new HashMap<String, OpenMBeanAttributeInfo>(attributes.length);
+      for (int i = 0; i < attributes.length; ++i)
+      {
+         OpenMBeanAttributeInfo attribute = (OpenMBeanAttributeInfo) attributes[i];
+         String name = attribute.getName();
+         mapping.put(name, attribute);
+      }
+      
+      for (int i = 0; i < keys.length; ++i)
+      {
+         String name = getUpperName(keys[i]);
+         OpenMBeanAttributeInfo attribute = mapping.get(name);
+         assertNotNull("Could not find key " + name + " in " + mapping.keySet(), attribute);
+         Method method = MXBeanUtils.getCompositeDataMethod(intf, keys[i], types[i] == SimpleType.BOOLEAN);
+         Object value = method.invoke(proxy, null);
+         checkValueEquals(values[i], value);
+         value = method.invoke(mxbean, null);
+         checkValueEquals(values[i], value);
+         assertEquals(types[i], attribute.getOpenType());
+      }
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanSupportUnitTestCase.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanSupportUnitTestCase.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanSupportUnitTestCase.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,371 +1,371 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.management.Attribute;
-import javax.management.AttributeList;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenMBeanAttributeInfo;
-import javax.management.openmbean.OpenMBeanInfo;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.mx.mxbean.MXBeanUtils;
-import org.jboss.test.mx.mxbean.support.CollectionsInterface;
-import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupport;
-import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupportMXBean;
-import org.jboss.test.mx.mxbean.support.CompositeInterface;
-import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupport;
-import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupportMXBean;
-import org.jboss.test.mx.mxbean.support.SimpleInterface;
-import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupport;
-import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupportMXBean;
-import org.jboss.test.mx.mxbean.support.SimpleObject;
-import org.jboss.test.mx.mxbean.support.TestEnum;
-
-/**
- * MXBeanSupportUnitTestCase.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class MXBeanSupportUnitTestCase extends AbstractMXBeanTest
-{
-   private static final TabularType TABLE_STRING_TO_INTEGER = MXBeanUtils.createMapType(String.class, Integer.class);
-
-   public static Test suite()
-   {
-      return new TestSuite(MXBeanSupportUnitTestCase.class);
-   }
-   
-   public MXBeanSupportUnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   public void testGetSimpleAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
-      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
-      for (int i = 0; i < types.length; ++i)
-         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
-      checkAttributes(server, objectName, SimpleMXBeanSupportMXBean.class, support, SimpleInterface.KEYS, types, SimpleInterface.VALUES, SimpleInterface.VALUES, info);
-   }
-   
-   public void testSetSimpleAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
-      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      String[] keys = SimpleInterface.KEYS;
-      Object[] values = SimpleInterface.VALUES;
-      Object[] changedValues = SimpleInterface.CHANGED_VALUES;
-      AttributeList list = new AttributeList(keys.length);
-      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
-      for (int i = 0; i < types.length; ++i)
-      {
-         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
-         String name = getUpperName(keys[i]);
-         server.setAttribute(objectName, new Attribute(name, changedValues[i]));
-         Attribute attribute = new Attribute(name, values[i]);
-         list.add(attribute);
-      }
-      checkAttributes(server, objectName, SimpleMXBeanSupportMXBean.class, support, keys, types, SimpleInterface.CHANGED_VALUES, SimpleInterface.CHANGED_VALUES, info);
-      
-      setAttributes(server, objectName, list);
-      checkAttributes(server, objectName, SimpleMXBeanSupportMXBean.class, support, keys, types, SimpleInterface.VALUES, SimpleInterface.VALUES, info);
-   }
-
-   public void testSimpleInvoke() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
-      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      assertEquals("olleH", server.invoke(objectName, "echoReverse", new Object[] { "Hello" }, new String[] { String.class.getName() }));
-   }
-
-   public void testGetCompositeAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleObject composite = new SimpleObject();
-      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      CompositeData data = createCompositeData(SimpleInterface.class.getName(), SimpleInterface.KEYS, SimpleInterface.VALUES);
-      Object[] values = { "Simple", data };
-      Object[] realValues = { "Simple", composite };
-      checkAttributes(server, objectName, CompositeMXBeanSupportMXBean.class, support, CompositeInterface.KEYS, CompositeInterface.TYPES, values, realValues, info);
-   }
-   
-   public void testSetCompositeAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleObject composite = new SimpleObject();
-      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      String[] keys = CompositeInterface.KEYS;
-      CompositeData data = createCompositeData(SimpleInterface.class.getName(), SimpleInterface.KEYS, SimpleInterface.VALUES);
-      Object[] values = { "Simple", data };
-      data = createCompositeData(SimpleInterface.class.getName(), SimpleInterface.KEYS, SimpleInterface.CHANGED_VALUES);
-      Object[] changedValues = { "Changed", data };
-      AttributeList list = new AttributeList(keys.length);
-      for (int i = 0; i < keys.length; ++i)
-      {
-         String name = getUpperName(keys[i]);
-         server.setAttribute(objectName, new Attribute(name, changedValues[i]));
-         Attribute attribute = new Attribute(name, values[i]);
-         list.add(attribute);
-      }
-      SimpleObject changed = new SimpleObject();
-      changed.setBigDecimal(SimpleInterface.bigDecimalChangedValue);
-      changed.setBigInteger(SimpleInterface.bigIntegerChangedValue);
-      changed.setBoolean(SimpleInterface.booleanChangedValue);
-      changed.setByte(SimpleInterface.byteChangedValue);
-      changed.setCharacter(SimpleInterface.characterChangedValue);
-      changed.setDate(SimpleInterface.dateChangedValue);
-      changed.setDouble(SimpleInterface.doubleChangedValue);
-      changed.setFloat(SimpleInterface.floatChangedValue);
-      changed.setInteger(SimpleInterface.integerChangedValue);
-      changed.setLong(SimpleInterface.longChangedValue);
-      changed.setObjectName(SimpleInterface.objectNameChangedValue);
-      changed.setPrimitiveBoolean(SimpleInterface.primitiveBooleanChangedValue);
-      changed.setPrimitiveByte(SimpleInterface.primitiveByteChangedValue);
-      changed.setPrimitiveChar(SimpleInterface.primitiveCharChangedValue);
-      changed.setPrimitiveDouble(SimpleInterface.primitiveDoubleChangedValue);
-      changed.setPrimitiveFloat(SimpleInterface.primitiveFloatChangedValue);
-      changed.setPrimitiveInt(SimpleInterface.primitiveIntChangedValue);
-      changed.setPrimitiveLong(SimpleInterface.primitiveLongChangedValue);
-      changed.setPrimitiveShort(SimpleInterface.primitiveShortChangedValue);
-      changed.setShort(SimpleInterface.shortChangedValue);
-      changed.setString(SimpleInterface.stringChangedValue);
-      Object[] realChangedValues = { "Changed", changed };
-      checkAttributes(server, objectName, CompositeMXBeanSupportMXBean.class, support, CompositeInterface.KEYS, CompositeInterface.TYPES, changedValues, realChangedValues, info);
-      
-      setAttributes(server, objectName, list);
-      Object[] realValues = { "Simple", composite };
-      checkAttributes(server, objectName, CompositeMXBeanSupportMXBean.class, support, keys, CompositeInterface.TYPES, values, realValues, info);
-   }
-
-   public void testCompositeInvoke() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      SimpleObject composite = new SimpleObject();
-      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      composite = new SimpleObject();
-      composite.setString("hello");
-      CompositeData data = (CompositeData) MXBeanUtils.construct(MXBeanUtils.getOpenType(SimpleInterface.class), composite, getName());
-      Object actual = server.invoke(objectName, "echoReverse", new Object[] { data }, new String[] { SimpleInterface.class.getName() });
-      composite = new SimpleObject();
-      composite.setString("olleh");
-      CompositeData expected = (CompositeData) MXBeanUtils.construct(MXBeanUtils.getOpenType(SimpleInterface.class), composite, getName());
-      checkValueEquals(expected, actual);
-   }
-   
-   public void testGetCollectionAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      String[] array = { "array" };
-      Collection<String> collection = new ArrayList<String>();
-      collection.add("collection");
-      Set<String> set = new LinkedHashSet<String>();
-      set.add("set");
-      List<String> list = new ArrayList<String>();
-      list.add("list");
-      Map<String, Integer> map = new LinkedHashMap<String, Integer>();
-      map.put("map", 1);
-      TestEnum enumeration = TestEnum.FIRST;
-      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
-      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-      String[] collectionArray = collection.toArray(new String[collection.size()]);
-      String[] setArray = set.toArray(new String[set.size()]);
-      String[] listArray = list.toArray(new String[list.size()]);
-      TabularDataSupport mapData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
-      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
-      mapData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "map", 1 }));
-
-      Object[] values = { array, collectionArray, setArray, listArray, mapData, TestEnum.FIRST.name() };
-      Object[] realValues = { array, collection, set, list, map, enumeration };
-      checkAttributes(server, objectName, CollectionsMXBeanSupportMXBean.class, support, CollectionsInterface.KEYS, CollectionsInterface.TYPES, values, realValues, info);
-   }
-   
-   public void testSetCollectionAttributes() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      String[] array = { "array" };
-      Collection<String> collection = new ArrayList<String>();
-      collection.add("collection");
-      Set<String> set = new LinkedHashSet<String>();
-      set.add("set");
-      List<String> list = new ArrayList<String>();
-      list.add("list");
-      Map<String, Integer> map = new LinkedHashMap<String, Integer>();
-      map.put("map", 1);
-      TestEnum enumeration = TestEnum.FIRST;
-      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
-      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
-
-      String[] keys = CollectionsInterface.KEYS;
-      String[] collectionArray = collection.toArray(new String[collection.size()]);
-      String[] setArray = set.toArray(new String[set.size()]);
-      String[] listArray = list.toArray(new String[list.size()]);
-      TabularDataSupport mapData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
-      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
-      mapData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "map", 1 }));
-      Object[] values = { array, collectionArray, setArray, listArray, mapData, TestEnum.FIRST.name() };
-
-      String[] changedArray = { "arrayChanged" };
-      Collection<String> changedCollection = new ArrayList<String>();
-      changedCollection.add("collectionChanged");
-      Set<String> changedSet = new LinkedHashSet<String>();
-      changedSet.add("setChanged");
-      List<String> changedList = new ArrayList<String>();
-      changedList.add("listChanged");
-
-      String[] changedCollectionArray = changedCollection.toArray(new String[changedCollection.size()]);
-      String[] changedSetArray = changedSet.toArray(new String[changedSet.size()]);
-      String[] changedListArray = changedList.toArray(new String[changedList.size()]);
-      TabularDataSupport changedMapData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
-      changedMapData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "mapChanged", 2 }));
-      Object[] changedValues = { changedArray, changedCollectionArray, changedSetArray, changedListArray, changedMapData, TestEnum.SECOND.name() };
-
-      AttributeList attributeList = new AttributeList(keys.length);
-      for (int i = 0; i < keys.length; ++i)
-      {
-         String name = getUpperName(keys[i]);
-         server.setAttribute(objectName, new Attribute(name, changedValues[i]));
-         Attribute attribute = new Attribute(name, values[i]);
-         attributeList.add(attribute);
-      }
-      Map<String, Integer> changedMap = new LinkedHashMap<String, Integer>();
-      changedMap.put("mapChanged", 2);
-      Object[] realChangedValues = { changedArray, changedCollection, changedSet, changedList, changedMap, TestEnum.SECOND };
-      checkAttributes(server, objectName, CollectionsMXBeanSupportMXBean.class, support, keys, CollectionsInterface.TYPES, changedValues, realChangedValues, info);
-      
-      setAttributes(server, objectName, attributeList);
-      Object[] realValues = { array, collection, set, list, map, enumeration };
-      checkAttributes(server, objectName, CollectionsMXBeanSupportMXBean.class, support, keys, CollectionsInterface.TYPES, values, realValues, info);
-   }
-
-   public void testCollectionInvoke() throws Exception
-   {
-      MBeanServer server = createMBeanServer();
-      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport();
-      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
-      server.registerMBean(support, objectName);
-      String[] list = { "one", "two", "three" };
-      String[] expected = { "three", "two", "one" };
-      Object result = server.invoke(objectName, "echoReverse", new Object[] { list }, new String[] { List.class.getName() });
-      checkArrayEquals(expected, result);
-   }
-
-   private void checkAttributes(MBeanServer server, ObjectName objectName, Class intf, Object mxbean, String[] keys, OpenType[] types, Object[] values, Object[] realValues, OpenMBeanInfo info) throws Exception
-   {
-      MBeanAttributeInfo[] attributes = info.getAttributes();
-
-      assertEquals(keys.length, values.length);
-      assertEquals(keys.length, types.length);
-      assertEquals(keys.length, attributes.length);
-      
-      Map<String, OpenMBeanAttributeInfo> mapping = new HashMap<String, OpenMBeanAttributeInfo>(attributes.length);
-      for (int i = 0; i < attributes.length; ++i)
-      {
-         OpenMBeanAttributeInfo attribute = (OpenMBeanAttributeInfo) attributes[i];
-         String name = attribute.getName();
-         mapping.put(name, attribute);
-      }
-      
-      String[] attributeNames = new String[keys.length];
-      
-      for (int i = 0; i < keys.length; ++i)
-      {
-         String name = getUpperName(keys[i]);
-         OpenMBeanAttributeInfo attribute = mapping.get(name);
-         assertNotNull("Could not find key " + name + " in " + mapping.keySet(), attribute);
-         Object value = server.getAttribute(objectName, name);
-         checkValueEquals(values[i], value);
-         Method method = MXBeanUtils.getCompositeDataMethod(intf, keys[i], types[i] == SimpleType.BOOLEAN);
-         value = method.invoke(mxbean, null);
-         checkValueEquals(realValues[i], value);
-         assertEquals(types[i], attribute.getOpenType());
-         attributeNames[i] = name;
-      }
-      
-      AttributeList list = server.getAttributes(objectName, attributeNames);
-      for (int i = 0; i < keys.length; ++i)
-      {
-         String name = attributeNames[i];
-         OpenMBeanAttributeInfo attribute = mapping.get(name);
-         Attribute attr = (Attribute) list.get(i); 
-         checkValueEquals(values[i], attr.getValue());
-         assertEquals(types[i], attribute.getOpenType());
-      }
-   }
-
-   private void setAttributes(MBeanServer server, ObjectName objectName, AttributeList list) throws Exception
-   {
-      AttributeList result = server.setAttributes(objectName, list);
-      for (int i = 0; i < list.size(); ++i)
-      {
-         Attribute attribute = (Attribute) list.get(i);
-         Object expected = attribute.getValue();
-         attribute = (Attribute) result.get(i);
-         Object actual = attribute.getValue();
-         checkValueEquals(expected, actual);
-      }
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.Attribute;
+import javax.management.AttributeList;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.CompositeDataSupport;
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.OpenMBeanAttributeInfo;
+import javax.management.openmbean.OpenMBeanInfo;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+import javax.management.openmbean.TabularDataSupport;
+import javax.management.openmbean.TabularType;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.mx.mxbean.MXBeanUtils;
+import org.jboss.test.mx.mxbean.support.CollectionsInterface;
+import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupport;
+import org.jboss.test.mx.mxbean.support.CollectionsMXBeanSupportMXBean;
+import org.jboss.test.mx.mxbean.support.CompositeInterface;
+import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupport;
+import org.jboss.test.mx.mxbean.support.CompositeMXBeanSupportMXBean;
+import org.jboss.test.mx.mxbean.support.SimpleInterface;
+import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupport;
+import org.jboss.test.mx.mxbean.support.SimpleMXBeanSupportMXBean;
+import org.jboss.test.mx.mxbean.support.SimpleObject;
+import org.jboss.test.mx.mxbean.support.TestEnum;
+
+/**
+ * MXBeanSupportUnitTestCase.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MXBeanSupportUnitTestCase extends AbstractMXBeanTest
+{
+   private static final TabularType TABLE_STRING_TO_INTEGER = MXBeanUtils.createMapType(String.class, Integer.class);
+
+   public static Test suite()
+   {
+      return new TestSuite(MXBeanSupportUnitTestCase.class);
+   }
+   
+   public MXBeanSupportUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testGetSimpleAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
+      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
+      for (int i = 0; i < types.length; ++i)
+         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
+      checkAttributes(server, objectName, SimpleMXBeanSupportMXBean.class, support, SimpleInterface.KEYS, types, SimpleInterface.VALUES, SimpleInterface.VALUES, info);
+   }
+   
+   public void testSetSimpleAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
+      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      String[] keys = SimpleInterface.KEYS;
+      Object[] values = SimpleInterface.VALUES;
+      Object[] changedValues = SimpleInterface.CHANGED_VALUES;
+      AttributeList list = new AttributeList(keys.length);
+      OpenType[] types = new OpenType[SimpleInterface.TYPES.length];
+      for (int i = 0; i < types.length; ++i)
+      {
+         types[i] = MXBeanUtils.getOpenType(SimpleInterface.TYPES[i]);
+         String name = getUpperName(keys[i]);
+         server.setAttribute(objectName, new Attribute(name, changedValues[i]));
+         Attribute attribute = new Attribute(name, values[i]);
+         list.add(attribute);
+      }
+      checkAttributes(server, objectName, SimpleMXBeanSupportMXBean.class, support, keys, types, SimpleInterface.CHANGED_VALUES, SimpleInterface.CHANGED_VALUES, info);
+      
+      setAttributes(server, objectName, list);
+      checkAttributes(server, objectName, SimpleMXBeanSupportMXBean.class, support, keys, types, SimpleInterface.VALUES, SimpleInterface.VALUES, info);
+   }
+
+   public void testSimpleInvoke() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleMXBeanSupport support = new SimpleMXBeanSupport();
+      ObjectName objectName = SimpleMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      assertEquals("olleH", server.invoke(objectName, "echoReverse", new Object[] { "Hello" }, new String[] { String.class.getName() }));
+   }
+
+   public void testGetCompositeAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleObject composite = new SimpleObject();
+      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      CompositeData data = createCompositeData(SimpleInterface.class.getName(), SimpleInterface.KEYS, SimpleInterface.VALUES);
+      Object[] values = { "Simple", data };
+      Object[] realValues = { "Simple", composite };
+      checkAttributes(server, objectName, CompositeMXBeanSupportMXBean.class, support, CompositeInterface.KEYS, CompositeInterface.TYPES, values, realValues, info);
+   }
+   
+   public void testSetCompositeAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleObject composite = new SimpleObject();
+      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      String[] keys = CompositeInterface.KEYS;
+      CompositeData data = createCompositeData(SimpleInterface.class.getName(), SimpleInterface.KEYS, SimpleInterface.VALUES);
+      Object[] values = { "Simple", data };
+      data = createCompositeData(SimpleInterface.class.getName(), SimpleInterface.KEYS, SimpleInterface.CHANGED_VALUES);
+      Object[] changedValues = { "Changed", data };
+      AttributeList list = new AttributeList(keys.length);
+      for (int i = 0; i < keys.length; ++i)
+      {
+         String name = getUpperName(keys[i]);
+         server.setAttribute(objectName, new Attribute(name, changedValues[i]));
+         Attribute attribute = new Attribute(name, values[i]);
+         list.add(attribute);
+      }
+      SimpleObject changed = new SimpleObject();
+      changed.setBigDecimal(SimpleInterface.bigDecimalChangedValue);
+      changed.setBigInteger(SimpleInterface.bigIntegerChangedValue);
+      changed.setBoolean(SimpleInterface.booleanChangedValue);
+      changed.setByte(SimpleInterface.byteChangedValue);
+      changed.setCharacter(SimpleInterface.characterChangedValue);
+      changed.setDate(SimpleInterface.dateChangedValue);
+      changed.setDouble(SimpleInterface.doubleChangedValue);
+      changed.setFloat(SimpleInterface.floatChangedValue);
+      changed.setInteger(SimpleInterface.integerChangedValue);
+      changed.setLong(SimpleInterface.longChangedValue);
+      changed.setObjectName(SimpleInterface.objectNameChangedValue);
+      changed.setPrimitiveBoolean(SimpleInterface.primitiveBooleanChangedValue);
+      changed.setPrimitiveByte(SimpleInterface.primitiveByteChangedValue);
+      changed.setPrimitiveChar(SimpleInterface.primitiveCharChangedValue);
+      changed.setPrimitiveDouble(SimpleInterface.primitiveDoubleChangedValue);
+      changed.setPrimitiveFloat(SimpleInterface.primitiveFloatChangedValue);
+      changed.setPrimitiveInt(SimpleInterface.primitiveIntChangedValue);
+      changed.setPrimitiveLong(SimpleInterface.primitiveLongChangedValue);
+      changed.setPrimitiveShort(SimpleInterface.primitiveShortChangedValue);
+      changed.setShort(SimpleInterface.shortChangedValue);
+      changed.setString(SimpleInterface.stringChangedValue);
+      Object[] realChangedValues = { "Changed", changed };
+      checkAttributes(server, objectName, CompositeMXBeanSupportMXBean.class, support, CompositeInterface.KEYS, CompositeInterface.TYPES, changedValues, realChangedValues, info);
+      
+      setAttributes(server, objectName, list);
+      Object[] realValues = { "Simple", composite };
+      checkAttributes(server, objectName, CompositeMXBeanSupportMXBean.class, support, keys, CompositeInterface.TYPES, values, realValues, info);
+   }
+
+   public void testCompositeInvoke() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      SimpleObject composite = new SimpleObject();
+      CompositeMXBeanSupport support = new CompositeMXBeanSupport("Simple", composite);
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      composite = new SimpleObject();
+      composite.setString("hello");
+      CompositeData data = (CompositeData) MXBeanUtils.construct(MXBeanUtils.getOpenType(SimpleInterface.class), composite, getName());
+      Object actual = server.invoke(objectName, "echoReverse", new Object[] { data }, new String[] { SimpleInterface.class.getName() });
+      composite = new SimpleObject();
+      composite.setString("olleh");
+      CompositeData expected = (CompositeData) MXBeanUtils.construct(MXBeanUtils.getOpenType(SimpleInterface.class), composite, getName());
+      checkValueEquals(expected, actual);
+   }
+   
+   public void testGetCollectionAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      String[] array = { "array" };
+      Collection<String> collection = new ArrayList<String>();
+      collection.add("collection");
+      Set<String> set = new LinkedHashSet<String>();
+      set.add("set");
+      List<String> list = new ArrayList<String>();
+      list.add("list");
+      Map<String, Integer> map = new LinkedHashMap<String, Integer>();
+      map.put("map", 1);
+      TestEnum enumeration = TestEnum.FIRST;
+      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
+      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+      String[] collectionArray = collection.toArray(new String[collection.size()]);
+      String[] setArray = set.toArray(new String[set.size()]);
+      String[] listArray = list.toArray(new String[list.size()]);
+      TabularDataSupport mapData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
+      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
+      mapData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "map", 1 }));
+
+      Object[] values = { array, collectionArray, setArray, listArray, mapData, TestEnum.FIRST.name() };
+      Object[] realValues = { array, collection, set, list, map, enumeration };
+      checkAttributes(server, objectName, CollectionsMXBeanSupportMXBean.class, support, CollectionsInterface.KEYS, CollectionsInterface.TYPES, values, realValues, info);
+   }
+   
+   public void testSetCollectionAttributes() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      String[] array = { "array" };
+      Collection<String> collection = new ArrayList<String>();
+      collection.add("collection");
+      Set<String> set = new LinkedHashSet<String>();
+      set.add("set");
+      List<String> list = new ArrayList<String>();
+      list.add("list");
+      Map<String, Integer> map = new LinkedHashMap<String, Integer>();
+      map.put("map", 1);
+      TestEnum enumeration = TestEnum.FIRST;
+      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport(array, collection, set, list, map, enumeration);
+      ObjectName objectName = CollectionsMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      OpenMBeanInfo info = (OpenMBeanInfo) server.getMBeanInfo(objectName);
+
+      String[] keys = CollectionsInterface.KEYS;
+      String[] collectionArray = collection.toArray(new String[collection.size()]);
+      String[] setArray = set.toArray(new String[set.size()]);
+      String[] listArray = list.toArray(new String[list.size()]);
+      TabularDataSupport mapData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
+      CompositeType entryType = TABLE_STRING_TO_INTEGER.getRowType();
+      mapData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "map", 1 }));
+      Object[] values = { array, collectionArray, setArray, listArray, mapData, TestEnum.FIRST.name() };
+
+      String[] changedArray = { "arrayChanged" };
+      Collection<String> changedCollection = new ArrayList<String>();
+      changedCollection.add("collectionChanged");
+      Set<String> changedSet = new LinkedHashSet<String>();
+      changedSet.add("setChanged");
+      List<String> changedList = new ArrayList<String>();
+      changedList.add("listChanged");
+
+      String[] changedCollectionArray = changedCollection.toArray(new String[changedCollection.size()]);
+      String[] changedSetArray = changedSet.toArray(new String[changedSet.size()]);
+      String[] changedListArray = changedList.toArray(new String[changedList.size()]);
+      TabularDataSupport changedMapData = new TabularDataSupport(TABLE_STRING_TO_INTEGER);
+      changedMapData.put(new CompositeDataSupport(entryType, MXBeanUtils.MAP_ITEM_NAMES, new Object[] { "mapChanged", 2 }));
+      Object[] changedValues = { changedArray, changedCollectionArray, changedSetArray, changedListArray, changedMapData, TestEnum.SECOND.name() };
+
+      AttributeList attributeList = new AttributeList(keys.length);
+      for (int i = 0; i < keys.length; ++i)
+      {
+         String name = getUpperName(keys[i]);
+         server.setAttribute(objectName, new Attribute(name, changedValues[i]));
+         Attribute attribute = new Attribute(name, values[i]);
+         attributeList.add(attribute);
+      }
+      Map<String, Integer> changedMap = new LinkedHashMap<String, Integer>();
+      changedMap.put("mapChanged", 2);
+      Object[] realChangedValues = { changedArray, changedCollection, changedSet, changedList, changedMap, TestEnum.SECOND };
+      checkAttributes(server, objectName, CollectionsMXBeanSupportMXBean.class, support, keys, CollectionsInterface.TYPES, changedValues, realChangedValues, info);
+      
+      setAttributes(server, objectName, attributeList);
+      Object[] realValues = { array, collection, set, list, map, enumeration };
+      checkAttributes(server, objectName, CollectionsMXBeanSupportMXBean.class, support, keys, CollectionsInterface.TYPES, values, realValues, info);
+   }
+
+   public void testCollectionInvoke() throws Exception
+   {
+      MBeanServer server = createMBeanServer();
+      CollectionsMXBeanSupport support = new CollectionsMXBeanSupport();
+      ObjectName objectName = CompositeMXBeanSupportMXBean.REGISTERED_OBJECT_NAME;
+      server.registerMBean(support, objectName);
+      String[] list = { "one", "two", "three" };
+      String[] expected = { "three", "two", "one" };
+      Object result = server.invoke(objectName, "echoReverse", new Object[] { list }, new String[] { List.class.getName() });
+      checkArrayEquals(expected, result);
+   }
+
+   private void checkAttributes(MBeanServer server, ObjectName objectName, Class intf, Object mxbean, String[] keys, OpenType[] types, Object[] values, Object[] realValues, OpenMBeanInfo info) throws Exception
+   {
+      MBeanAttributeInfo[] attributes = info.getAttributes();
+
+      assertEquals(keys.length, values.length);
+      assertEquals(keys.length, types.length);
+      assertEquals(keys.length, attributes.length);
+      
+      Map<String, OpenMBeanAttributeInfo> mapping = new HashMap<String, OpenMBeanAttributeInfo>(attributes.length);
+      for (int i = 0; i < attributes.length; ++i)
+      {
+         OpenMBeanAttributeInfo attribute = (OpenMBeanAttributeInfo) attributes[i];
+         String name = attribute.getName();
+         mapping.put(name, attribute);
+      }
+      
+      String[] attributeNames = new String[keys.length];
+      
+      for (int i = 0; i < keys.length; ++i)
+      {
+         String name = getUpperName(keys[i]);
+         OpenMBeanAttributeInfo attribute = mapping.get(name);
+         assertNotNull("Could not find key " + name + " in " + mapping.keySet(), attribute);
+         Object value = server.getAttribute(objectName, name);
+         checkValueEquals(values[i], value);
+         Method method = MXBeanUtils.getCompositeDataMethod(intf, keys[i], types[i] == SimpleType.BOOLEAN);
+         value = method.invoke(mxbean, null);
+         checkValueEquals(realValues[i], value);
+         assertEquals(types[i], attribute.getOpenType());
+         attributeNames[i] = name;
+      }
+      
+      AttributeList list = server.getAttributes(objectName, attributeNames);
+      for (int i = 0; i < keys.length; ++i)
+      {
+         String name = attributeNames[i];
+         OpenMBeanAttributeInfo attribute = mapping.get(name);
+         Attribute attr = (Attribute) list.get(i); 
+         checkValueEquals(values[i], attr.getValue());
+         assertEquals(types[i], attribute.getOpenType());
+      }
+   }
+
+   private void setAttributes(MBeanServer server, ObjectName objectName, AttributeList list) throws Exception
+   {
+      AttributeList result = server.setAttributes(objectName, list);
+      for (int i = 0; i < list.size(); ++i)
+      {
+         Attribute attribute = (Attribute) list.get(i);
+         Object expected = attribute.getValue();
+         attribute = (Attribute) result.get(i);
+         Object actual = attribute.getValue();
+         checkValueEquals(expected, actual);
+      }
+   }
+}

Modified: trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanTestSuite.java
===================================================================
--- trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanTestSuite.java	2008-11-14 12:49:40 UTC (rev 81025)
+++ trunk/mbeans/src/tests/org/jboss/test/mx/mxbean/test/MXBeanTestSuite.java	2008-11-14 12:51:05 UTC (rev 81026)
@@ -1,70 +1,70 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, 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.mx.mxbean.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-/**
- * MXBean Test Suite.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 37459 $
- */
-public class MXBeanTestSuite extends TestSuite
-{
-   public static void main(String[] args)
-   {
-      TestRunner.run(suite());
-   }
-
-   public static Test suite()
-   {
-      TestSuite suite = new TestSuite("MXBean Tests");
-
-      suite.addTest(CompositeDataInvocationHandlerUnitTestCase.suite());
-      suite.addTest(CompositeTypeMetaDataFactoryUnitTestCase.suite());
-      suite.addTest(CompositeDataBigDecimalUnitTestCase.suite());
-      suite.addTest(CompositeDataBigIntegerUnitTestCase.suite());
-      suite.addTest(CompositeDataBooleanUnitTestCase.suite());
-      suite.addTest(CompositeDataByteUnitTestCase.suite());
-      suite.addTest(CompositeDataCharacterUnitTestCase.suite());
-      suite.addTest(CompositeDataDateUnitTestCase.suite());
-      suite.addTest(CompositeDataDoubleUnitTestCase.suite());
-      suite.addTest(CompositeDataFloatUnitTestCase.suite());
-      suite.addTest(CompositeDataIntegerUnitTestCase.suite());
-      suite.addTest(CompositeDataLongUnitTestCase.suite());
-      suite.addTest(CompositeDataObjectNameUnitTestCase.suite());
-      suite.addTest(CompositeDataShortUnitTestCase.suite());
-      suite.addTest(CompositeDataStringUnitTestCase.suite());
-      suite.addTest(CompositeDataEnumUnitTestCase.suite());
-      suite.addTest(CompositeDataArrayUnitTestCase.suite());
-      suite.addTest(CompositeDataCollectionUnitTestCase.suite());
-      suite.addTest(CompositeDataMapUnitTestCase.suite());
-      suite.addTest(CompositeDataCompositeUnitTestCase.suite());
-      suite.addTest(MXBeanSupportUnitTestCase.suite());
-      suite.addTest(MXBeanInvocationHandlerUnitTestCase.suite());
-      
-      return suite;
-   }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.mx.mxbean.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * MXBean Test Suite.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 37459 $
+ */
+public class MXBeanTestSuite extends TestSuite
+{
+   public static void main(String[] args)
+   {
+      TestRunner.run(suite());
+   }
+
+   public static Test suite()
+   {
+      TestSuite suite = new TestSuite("MXBean Tests");
+
+      suite.addTest(CompositeDataInvocationHandlerUnitTestCase.suite());
+      suite.addTest(CompositeTypeMetaDataFactoryUnitTestCase.suite());
+      suite.addTest(CompositeDataBigDecimalUnitTestCase.suite());
+      suite.addTest(CompositeDataBigIntegerUnitTestCase.suite());
+      suite.addTest(CompositeDataBooleanUnitTestCase.suite());
+      suite.addTest(CompositeDataByteUnitTestCase.suite());
+      suite.addTest(CompositeDataCharacterUnitTestCase.suite());
+      suite.addTest(CompositeDataDateUnitTestCase.suite());
+      suite.addTest(CompositeDataDoubleUnitTestCase.suite());
+      suite.addTest(CompositeDataFloatUnitTestCase.suite());
+      suite.addTest(CompositeDataIntegerUnitTestCase.suite());
+      suite.addTest(CompositeDataLongUnitTestCase.suite());
+      suite.addTest(CompositeDataObjectNameUnitTestCase.suite());
+      suite.addTest(CompositeDataShortUnitTestCase.suite());
+      suite.addTest(CompositeDataStringUnitTestCase.suite());
+      suite.addTest(CompositeDataEnumUnitTestCase.suite());
+      suite.addTest(CompositeDataArrayUnitTestCase.suite());
+      suite.addTest(CompositeDataCollectionUnitTestCase.suite());
+      suite.addTest(CompositeDataMapUnitTestCase.suite());
+      suite.addTest(CompositeDataCompositeUnitTestCase.suite());
+      suite.addTest(MXBeanSupportUnitTestCase.suite());
+      suite.addTest(MXBeanInvocationHandlerUnitTestCase.suite());
+      
+      return suite;
+   }
+}




More information about the jboss-cvs-commits mailing list