[jboss-cvs] JBossAS SVN: r63381 - in trunk/profileservice/src: main/org/jboss/profileservice/management/templates and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 7 03:00:39 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-06-07 03:00:39 -0400 (Thu, 07 Jun 2007)
New Revision: 63381

Modified:
   trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ServiceManagedObject.java
   trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplate.java
   trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplateInfo.java
   trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/DataSourceDeployment.java
   trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConn.java
   trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConnMBean.java
   trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceDeployer.java
   trunk/profileservice/src/resources/profileservice-beans.xml
Log:
Add an example of a CompositeMetaType property

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ServiceManagedObject.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ServiceManagedObject.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ServiceManagedObject.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -28,6 +28,10 @@
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.managed.plugins.ManagedObjectImpl;
 import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.metatype.api.types.CompositeMetaType;
+import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.system.metadata.ServiceAttributeMetaData;
 import org.jboss.system.metadata.ServiceMetaData;
 
@@ -75,6 +79,16 @@
             if( propertyNameMappings != null )
                mappedName = propertyNameMappings.get(fieldName);
             ServiceAttributeFields attrFields = new ServiceAttributeFields(attr, fieldName, mappedName);
+            // Should be coming from the metadata
+            if( fieldName.equals("ConnectionProps") )
+            {
+               String[] itemNames = {"conn-prop1", "conn-prop2"};
+               String[] itemDescriptions = {"conn-prop1 description", "conn-prop2 description"};
+               MetaType[] itemTypes = {SimpleMetaType.STRING, SimpleMetaType.STRING};
+               CompositeMetaType propsType = new ImmutableCompositeMetaType("java.lang.Properties", "DS connection properties",
+                     itemNames, itemDescriptions, itemTypes);
+               attrFields.setMetaType(propsType);
+            }
             properties.add(new ManagedPropertyImpl(this, attrFields));            
          }
       }

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplate.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplate.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplate.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -34,6 +34,9 @@
 import org.jboss.deployers.spi.structure.DeploymentContext;
 import org.jboss.logging.Logger;
 import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.CompositeMetaType;
+import org.jboss.metatype.api.values.CompositeValue;
+import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.virtual.VirtualFile;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
@@ -115,13 +118,36 @@
          fw.write("  <");
          fw.write(tagName);
          fw.write('>');
-         Object value = p.getValue();
-         if( value == null )
-            value = "";
-         fw.write(value.toString());
-         fw.write("</");
-         fw.write(tagName);
-         fw.write(">\n");
+         // Except for connection-properties
+         if( p.getMetaType() instanceof CompositeMetaType )
+         {
+            CompositeValue cvalue = (CompositeValue) p.getValue();
+            for(String key : cvalue.getMetaType().keySet())
+            {
+               if( cvalue.containsKey(key) )
+               {
+                  SimpleValue svalue = (SimpleValue) cvalue.get(key);
+                  String string = svalue.toString();
+                  fw.write("  <");
+                  fw.write(key);
+                  fw.write('>');
+                  fw.write(string);
+                  fw.write("</");
+                  fw.write(tagName);
+                  fw.write(">\n");                  
+               }
+            }
+         }
+         else
+         {
+            Object value = p.getValue();
+            if( value == null )
+               value = "";
+            fw.write(value.toString());
+            fw.write("</");
+            fw.write(tagName);
+            fw.write(">\n");
+         }
       }
       // close dsType tag
       fw.write("</");

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplateInfo.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplateInfo.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/templates/DsXmlDataSourceTemplateInfo.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -28,6 +28,9 @@
 import org.jboss.managed.plugins.DefaultFieldsImpl;
 import org.jboss.managed.plugins.ManagedObjectImpl;
 import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.metatype.api.types.CompositeMetaType;
+import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
+import org.jboss.metatype.api.types.MetaType;
 import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
@@ -119,6 +122,19 @@
       f5.setMetaType(SimpleMetaType.STRING);
       ManagedPropertyImpl driverClass = new ManagedPropertyImpl(mo, f5);
       super.addProperty(driverClass);
+      // The driver connection properties field info
+      DefaultFieldsImpl f6 = new DefaultFieldsImpl();
+      setFieldName("connection-properties", f6);
+      f6.setDescription("The jdbc driver connection properties");
+      f6.setMandatory(false);
+      String[] itemNames = {"conn-prop1", "conn-prop2"};
+      String[] itemDescriptions = {"conn-prop1 description", "conn-prop2 description"};
+      MetaType[] itemTypes = {SimpleMetaType.STRING, SimpleMetaType.STRING};
+      CompositeMetaType propsType = new ImmutableCompositeMetaType("java.lang.Properties", "DS connection properties",
+            itemNames, itemDescriptions, itemTypes);
+      f6.setMetaType(propsType);
+      ManagedPropertyImpl connProps = new ManagedPropertyImpl(mo, f6);
+      super.addProperty(connProps);
 
       // The type of the datasource
       ManagedObjectImpl mo2 = new ManagedObjectImpl(dsTypeAttachmentName);

Modified: trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/DataSourceDeployment.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/DataSourceDeployment.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/DataSourceDeployment.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -4,9 +4,13 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 
 import org.jboss.logging.Logger;
 import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.values.CompositeValue;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.util.StringPropertyReplacer;
 import org.jboss.util.xml.DOMUtils;
 import org.w3c.dom.Document;
@@ -19,7 +23,7 @@
  * attachment. This is a javabean form of the *-dsf.xml fields.
  * 
  * @author Scott.Stark at jboss.org
- * @version $Revision:$
+ * @version $Revision$
  */
 public class DataSourceDeployment
    implements Serializable
@@ -39,8 +43,8 @@
    private String securityDomain;
    private String minPoolSize;
    private String maxPoolSize;
+   private Properties connProps;
    private ArrayList<String> depends = new ArrayList<String>();
-
    
    public String getType()
    {
@@ -152,6 +156,16 @@
       this.username = username;
    }
 
+   public Properties getConnectionProps()
+   {
+      return connProps;
+   }
+
+   public void setConnectionProps(Properties connProps)
+   {
+      this.connProps = connProps;
+   }
+
    public List<String> getDepends()
    {
       return depends;
@@ -220,6 +234,11 @@
                      String depends = getText(ej);
                      addDepends(depends);
                   }
+                  else if (ej.getTagName().equals("connection-properties"))
+                  {
+                     // TODO
+                     
+                  }
                }
             }
 
@@ -283,6 +302,11 @@
          {
             this.typeMapping = value.toString();
          }
+         else if (name.equals("connection-properties"))
+         {
+            CompositeValue cvalue = (CompositeValue) value;
+            parseConnProps(cvalue);
+         }
          else if (name.equals("depends"))
          {
             String depends = value.toString();
@@ -316,6 +340,8 @@
       tmp.append(securityDomain);
       tmp.append(",typeMapping=");
       tmp.append(typeMapping);
+      tmp.append(",connProps=");
+      tmp.append(connProps);
       tmp.append(')');
       return tmp.toString();
    }
@@ -332,4 +358,19 @@
          text = StringPropertyReplacer.replaceProperties(text);
       return text;
    }
+   private void parseConnProps(CompositeValue cvalue)
+   {
+      connProps = new Properties();
+      for(String key : cvalue.getMetaType().keySet())
+      {
+         if( cvalue.containsKey(key) )
+         {
+            MetaValue value = cvalue.get(key);
+            // We only handle SimpleValue types
+            SimpleValue svalue = (SimpleValue) value;
+            connProps.setProperty(key, svalue.getValue().toString());
+         }
+      }
+   }
+
 }


Property changes on: trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/DataSourceDeployment.java
___________________________________________________________________
Name: svn:keywords
   - Id,Revision
   + Id Revision

Modified: trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConn.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConn.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConn.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -22,6 +22,7 @@
 package org.jboss.profileservice.mock.ds;
 
 import java.util.List;
+import java.util.Properties;
 
 import javax.naming.InitialContext;
 
@@ -201,6 +202,15 @@
       ds.setUsername(username);
    }
 
+   public Properties getConnectionProps()
+   {
+      return ds.getConnectionProps();
+   }
+   public void setConnectionProps(Properties props)
+   {
+      ds.setConnectionProps(props);
+   }
+
    /* (non-Javadoc)
     * @see org.jboss.profileservice.mock.ds.x#start()
     */

Modified: trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConnMBean.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConnMBean.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceConnMBean.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -1,6 +1,7 @@
 package org.jboss.profileservice.mock.ds;
 
 import java.util.List;
+import java.util.Properties;
 
 public interface FakeDataSourceConnMBean
 {
@@ -42,6 +43,9 @@
 
    public void setUsername(String username);
 
+   public Properties getConnectionProps();
+   public void setConnectionProps(Properties props);
+
    public void start() throws Exception;
 
    public void stop() throws Exception;

Modified: trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceDeployer.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceDeployer.java	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/main/org/jboss/profileservice/mock/ds/FakeDataSourceDeployer.java	2007-06-07 07:00:39 UTC (rev 63381)
@@ -224,6 +224,12 @@
       if(ds.getMaxPoolSize() != null)
          attribute.setValue(new ServiceTextValueMetaData(ds.getMaxPoolSize()));
       attributes.add(attribute);
+      // connectionProps
+      attribute = new ServiceAttributeMetaData();
+      attribute.setName("ConnectionProps");
+      if(ds.getMaxPoolSize() != null)
+         attribute.setValue(new ServiceTextValueMetaData(ds.getMaxPoolSize()));
+      attributes.add(attribute);
 
       dsMbean.setAttributes(attributes);
 

Modified: trunk/profileservice/src/resources/profileservice-beans.xml
===================================================================
--- trunk/profileservice/src/resources/profileservice-beans.xml	2007-06-06 22:15:44 UTC (rev 63380)
+++ trunk/profileservice/src/resources/profileservice-beans.xml	2007-06-07 07:00:39 UTC (rev 63381)
@@ -136,6 +136,7 @@
                 <entry><key>min-pool-size</key><value>MinPoolSize</value></entry>
                 <entry><key>max-pool-size</key><value>MaxPoolSize</value></entry>
                 <entry><key>security-domain</key><value>SecurityDomain</value></entry>
+                <entry><key>connection-properties</key><value>ConnectionProperties</value></entry>
             </map>
         </constructor>
     </bean>




More information about the jboss-cvs-commits mailing list