[jboss-cvs] JBossAS SVN: r85275 - in projects/jboss-man/trunk/managed/src: test/java/org/jboss/test/managed/factory/support and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 5 01:59:07 EST 2009
Author: scott.stark at jboss.org
Date: 2009-03-05 01:59:07 -0500 (Thu, 05 Mar 2009)
New Revision: 85275
Added:
projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/support/JmsDestinationTemplateInfo.java
Modified:
projects/jboss-man/trunk/managed/src/main/java/org/jboss/managed/plugins/BasicDeploymentTemplateInfo.java
projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/test/DeploymentTemplateInfoUnitTestCase.java
Log:
JBMAN-62, Need copy(BasicDeploymentTemplateInfo)
Modified: projects/jboss-man/trunk/managed/src/main/java/org/jboss/managed/plugins/BasicDeploymentTemplateInfo.java
===================================================================
--- projects/jboss-man/trunk/managed/src/main/java/org/jboss/managed/plugins/BasicDeploymentTemplateInfo.java 2009-03-05 06:55:50 UTC (rev 85274)
+++ projects/jboss-man/trunk/managed/src/main/java/org/jboss/managed/plugins/BasicDeploymentTemplateInfo.java 2009-03-05 06:59:07 UTC (rev 85275)
@@ -95,18 +95,10 @@
this.properties.put(property.getName(), property);
}
-
public DeploymentTemplateInfo copy()
{
BasicDeploymentTemplateInfo copy = new BasicDeploymentTemplateInfo(name, description);
- copy.setRootManagedPropertyName(rootManagedPropertyName);
- Map<String, ManagedProperty> copyProps = new HashMap<String, ManagedProperty>();
- for(ManagedProperty prop : properties.values())
- {
- ManagedProperty copyProp = prop.copy();
- copyProps.put(copyProp.getName(), copyProp);
- }
- copy.setProperties(copyProps);
+ this.copy(copy);
return copy;
}
@@ -122,4 +114,16 @@
tmp.append('}');
return tmp.toString();
}
+
+ protected void copy(BasicDeploymentTemplateInfo copy)
+ {
+ copy.setRootManagedPropertyName(rootManagedPropertyName);
+ Map<String, ManagedProperty> copyProps = new HashMap<String, ManagedProperty>();
+ for(ManagedProperty prop : properties.values())
+ {
+ ManagedProperty copyProp = prop.copy();
+ copyProps.put(copyProp.getName(), copyProp);
+ }
+ copy.setProperties(copyProps);
+ }
}
Added: projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/support/JmsDestinationTemplateInfo.java
===================================================================
--- projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/support/JmsDestinationTemplateInfo.java (rev 0)
+++ projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/support/JmsDestinationTemplateInfo.java 2009-03-05 06:59:07 UTC (rev 85275)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * 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.managed.factory.support;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.annotation.factory.AnnotationProxy;
+import org.jboss.managed.api.DeploymentTemplateInfo;
+import org.jboss.managed.api.annotation.ManagementObjectID;
+import org.jboss.managed.plugins.BasicDeploymentTemplateInfo;
+import org.jboss.managed.plugins.DefaultFieldsImpl;
+import org.jboss.managed.plugins.ManagedObjectImpl;
+import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.MetaValue;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision:$
+ */
+public class JmsDestinationTemplateInfo extends BasicDeploymentTemplateInfo
+{
+ private static final long serialVersionUID = 1;
+ private String destinationType = "queue";
+
+ public JmsDestinationTemplateInfo(String name, String description, String destinationType)
+ {
+ super(name, description);
+ this.destinationType = destinationType;
+ super.setRootManagedPropertyName("services");
+
+ ManagedObjectImpl mo;
+ if("queue".equals(destinationType))
+ mo = new ManagedObjectImpl("org.jboss.jms.server.destination.QueueServiceMO");
+ else if("topic".equals(destinationType))
+ mo = new ManagedObjectImpl("org.jboss.jms.server.destination.TopicServiceMO");
+ else
+ throw new IllegalStateException("Unexpected destination type: " + destinationType);
+
+ addManagedProperty("name", "The destination name", true, false, SimpleMetaType.STRING, mo);
+ addManagedProperty("JNDIName", "The destination's JNDI name", false, true, SimpleMetaType.STRING, mo);
+ }
+
+
+ public String getDestinationType()
+ {
+ return destinationType;
+ }
+
+
+ @Override
+ public JmsDestinationTemplateInfo copy()
+ {
+ JmsDestinationTemplateInfo copy = new JmsDestinationTemplateInfo(getName(), getDescription(), destinationType);
+ super.copy(copy);
+ return copy;
+ }
+
+ private void addManagedProperty(String fieldName,
+ String fieldDescr,
+ boolean mandatory,
+ boolean isID,
+ MetaType metaType,
+ ManagedObjectImpl mo)
+ {
+
+ addManagedProperty(fieldName, fieldDescr, mandatory, isID, metaType, null, mo);
+ }
+
+ private void addManagedProperty(String fieldName,
+ String fieldDescr,
+ boolean mandatory,
+ boolean isID,
+ MetaType metaType,
+ MetaValue value,
+ ManagedObjectImpl mo)
+ {
+ DefaultFieldsImpl fields = new DefaultFieldsImpl();
+ fields.setDescription(fieldDescr);
+ fields.setMandatory(mandatory);
+ fields.setMetaType(metaType);
+ fields.setName(fieldName);
+ ManagedPropertyImpl mp = new ManagedPropertyImpl(mo, fields);
+ if(isID)
+ {
+ Map<String, Annotation> annotations = new HashMap<String, Annotation>();
+ Map<String, Object> idFields = Collections.emptyMap();
+ try
+ {
+ ManagementObjectID id = (ManagementObjectID) AnnotationProxy.createProxy(idFields, ManagementObjectID.class);
+ annotations.put(ManagementObjectID.class.getName(), id);
+ mp.setAnnotations(annotations);
+ }
+ catch(Exception e)
+ {
+ throw new UndeclaredThrowableException(e);
+ }
+ }
+
+ super.addProperty(mp);
+ if(value != null)
+ mp.setValue(value);
+ }
+}
Modified: projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/test/DeploymentTemplateInfoUnitTestCase.java
===================================================================
--- projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/test/DeploymentTemplateInfoUnitTestCase.java 2009-03-05 06:55:50 UTC (rev 85274)
+++ projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/test/DeploymentTemplateInfoUnitTestCase.java 2009-03-05 06:59:07 UTC (rev 85275)
@@ -32,6 +32,7 @@
import org.jboss.metatype.api.values.MetaValue;
import org.jboss.metatype.api.values.SimpleValueSupport;
import org.jboss.test.managed.factory.AbstractManagedObjectFactoryTest;
+import org.jboss.test.managed.factory.support.JmsDestinationTemplateInfo;
import org.jboss.test.managed.factory.support.template.ManagementObjectExplicit;
@@ -127,4 +128,23 @@
assertEquals("property1.value", SimpleValueSupport.wrap("value1-copy"), value1);
assertEquals("property1_1.value", SimpleValueSupport.wrap("value1-orig"), value1_1);
}
+
+ public void testSubclassCopy()
+ {
+ JmsDestinationTemplateInfo info = new JmsDestinationTemplateInfo("testSubclassCopy", "testSubclassCopy", "queue");
+ ManagedProperty jndiName = info.getProperties().get("JNDIName");
+ jndiName.setValue(SimpleValueSupport.wrap("testSubclassCopy"));
+ JmsDestinationTemplateInfo info2 = info.copy();
+ jndiName.setValue(SimpleValueSupport.wrap("testSubclassCopy-updated"));
+ ManagedProperty jndiName2 = info2.getProperties().get("JNDIName");
+ MetaValue value = jndiName.getValue();
+ MetaValue value2 = jndiName2.getValue();
+
+ assertTrue(info.getProperties() != info2.getProperties());
+ assertTrue(jndiName != jndiName2);
+ assertTrue(jndiName.getFields() != jndiName2.getFields());
+ assertTrue(value != value2);
+ assertEquals("jndiName", SimpleValueSupport.wrap("testSubclassCopy-updated"), jndiName.getValue());
+ assertEquals("jndiName2", SimpleValueSupport.wrap("testSubclassCopy"), value2);
+ }
}
More information about the jboss-cvs-commits
mailing list