[jboss-cvs] JBossAS SVN: r86536 - branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/templates.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Mar 31 11:54:21 EDT 2009


Author: emuckenhuber
Date: 2009-03-31 11:54:21 -0400 (Tue, 31 Mar 2009)
New Revision: 86536

Modified:
   branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/templates/JmsDestinationTemplate.java
Log:
[JBAS-6711] handle dlq, serverPeer, expiryQueue in jms template

Modified: branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/templates/JmsDestinationTemplate.java
===================================================================
--- branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/templates/JmsDestinationTemplate.java	2009-03-31 13:43:13 UTC (rev 86535)
+++ branches/Branch_5_x/profileservice/src/main/org/jboss/profileservice/management/templates/JmsDestinationTemplate.java	2009-03-31 15:54:21 UTC (rev 86536)
@@ -27,6 +27,7 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.management.ObjectName;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Marshaller;
@@ -40,7 +41,9 @@
 import org.jboss.managed.api.DeploymentTemplateInfo;
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.plugins.values.MetaValueFactoryBuilder;
 import org.jboss.virtual.VFS;
 import org.jboss.virtual.VirtualFile;
 
@@ -58,6 +61,8 @@
    /** The file suffix. */
    private static final String FILE_SUFFIX = "-service.xml";
    
+   private static final MetaValueFactory mvf = MetaValueFactoryBuilder.create();
+   
    private DeploymentTemplateInfo info;
    
    public String getDeploymentName(String deploymentBaseName)
@@ -140,7 +145,8 @@
          throw new IllegalStateException("Unsupported destination type: " + destinationType);
       }
       List<JmsAttributeMetaData> attributes = new ArrayList<JmsAttributeMetaData>();
-
+      destination.attribute = attributes;
+      
       Map<String, ManagedProperty> properties = info.getProperties();
       for(ManagedProperty p : properties.values())
       {
@@ -155,17 +161,39 @@
          
          if(v.getMetaType().isSimple())
          {
-            JmsAttributeMetaData jndiNameMD = new JmsAttributeMetaData(name, "" + ((SimpleValue)v).getValue());
-            destination.attribute = attributes;
-            attributes.add(jndiNameMD);            
+            JmsAttributeMetaData attributeMD = new JmsAttributeMetaData(name, "" + ((SimpleValue)v).getValue());
+            attributes.add(attributeMD);            
          }
          else
-            throw new IllegalArgumentException("Not handled value: " + v);
+         {
+            if(name.equals("DLQ"))
+            {
+               ObjectName n = (ObjectName) mvf.unwrap(v);
+               attributes.add(new JmsAttributeMetaData("DLQ", n.getCanonicalName()));
+            }
+            else if(name.equals("ExpiryQueue"))
+            {
+               ObjectName n = (ObjectName) mvf.unwrap(v);
+               attributes.add(new JmsAttributeMetaData("ExpiryQueue", n.getCanonicalName()));
+            }
+            // TODO securityConfig
+         }
       }
-
+      
+      // Add dependencies
       List<JmsDependencyMetaData> depends = new ArrayList<JmsDependencyMetaData>();
       destination.depends = depends;
-      depends.add(new JmsDependencyMetaData("ServerPeer", "jboss.messaging:service=ServerPeer"));
+      // Set server peer
+      ObjectName serverPeer = (ObjectName) getProperty(info, "serverPeer");
+      if(serverPeer != null)
+      {
+         depends.add(new JmsDependencyMetaData("ServerPeer", serverPeer.getCanonicalName()));
+      }
+      else
+      {
+         depends.add(new JmsDependencyMetaData("ServerPeer", "jboss.messaging:service=ServerPeer"));
+      }
+      // <depends>
       depends.add(new JmsDependencyMetaData("jboss.messaging:service=PostOffice"));
 
       JmsDestinationDeployment deployment = new JmsDestinationDeployment();
@@ -215,15 +243,7 @@
       Object value = prop.getValue();
       if(value instanceof MetaValue)
       {
-         if (prop.getMetaType().isComposite())
-         {
-            throw new IllegalArgumentException("Unable to handle composite: "+prop);
-         }
-         else if(prop.getMetaType().isSimple())
-         {
-            SimpleValue sv = SimpleValue.class.cast(value);
-            value = sv.getValue();
-         }
+         return mvf.unwrap((MetaValue) value);
       }
       return value;
    }
@@ -275,7 +295,6 @@
    {
       @XmlAttribute(name = "optional-attribute-name")
       String attribute;
-
       @XmlValue
       String value;
 
@@ -283,13 +302,11 @@
       {
       }
 
-
       public JmsDependencyMetaData(String value)
       {
          this.value = value;
       }
 
-
       public JmsDependencyMetaData(String attribute, String value)
       {
          this.attribute = attribute;




More information about the jboss-cvs-commits mailing list