[jboss-cvs] JBossAS SVN: r99180 - in projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal: impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Jan 9 09:44:30 EST 2010


Author: jesper.pedersen
Date: 2010-01-09 09:44:30 -0500 (Sat, 09 Jan 2010)
New Revision: 99180

Modified:
   projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/deployment/ParameterType.java
   projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/DeploymentDeployer.java
Log:
Improve support for <parameter>

Modified: projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/deployment/ParameterType.java
===================================================================
--- projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/deployment/ParameterType.java	2010-01-09 14:27:40 UTC (rev 99179)
+++ projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/deployment/ParameterType.java	2010-01-09 14:44:30 UTC (rev 99180)
@@ -71,4 +71,16 @@
    {
       clazz = value;
    }
+
+   /**
+    * String representation
+    * @return The value
+    */
+   public String toString()
+   {
+      if (clazz == null)
+         return "<Unknown>";
+
+      return clazz;
+   }
 }

Modified: projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/DeploymentDeployer.java
===================================================================
--- projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/DeploymentDeployer.java	2010-01-09 14:27:40 UTC (rev 99179)
+++ projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/DeploymentDeployer.java	2010-01-09 14:44:30 UTC (rev 99180)
@@ -337,13 +337,32 @@
          }
 
          ConstructorType ct = bt.getConstructor();
-         if (ct != null && ct.getFactory() != null)
+         if (ct != null)
          {
-            if (result == null)
-               result = new HashSet<String>();
+            if (ct.getFactory() != null)
+            {
+               if (result == null)
+                  result = new HashSet<String>();
 
-            result.add(ct.getFactory().getBean());
-            kernel.addBeanDependants(bt.getName(), ct.getFactory().getBean());
+               result.add(ct.getFactory().getBean());
+               kernel.addBeanDependants(bt.getName(), ct.getFactory().getBean());
+            }
+            else if (ct.getParameter() != null && ct.getParameter().size() > 0)
+            {
+               for (ParameterType pt : ct.getParameter())
+               {
+                  Object v = pt.getContent().get(0);
+                  if (v instanceof InjectType)
+                  {
+                     if (result == null)
+                        result = new HashSet<String>();
+
+                     InjectType it = (InjectType)v;
+                     result.add(it.getBean());
+                     kernel.addBeanDependants(bt.getName(), it.getBean());
+                  }
+               }
+            }
          }
 
          return result;
@@ -617,8 +636,9 @@
 
                      if (pt.getClazz() == null)
                      {
-                        if (!SUPPORTED_TYPES.contains(parameterClass))
-                           include = false;
+                        if (!(pt.getContent().get(0) instanceof InjectType))
+                           if (!SUPPORTED_TYPES.contains(parameterClass))
+                              include = false;
                      }
                      else
                      {
@@ -674,8 +694,9 @@
 
                         if (pt.getClazz() == null)
                         {
-                           if (!SUPPORTED_TYPES.contains(parameterClass))
-                              include = false;
+                           if (!(pt.getContent().get(0) instanceof InjectType))
+                              if (!SUPPORTED_TYPES.contains(parameterClass))
+                                 include = false;
                         }
                         else
                         {
@@ -693,7 +714,7 @@
             }
          }
 
-         throw new Exception("Unable to find method (" + name + ") in " + clz.getName());
+         throw new Exception("Unable to find method (" + name + "[" + parameters + "]) in " + clz.getName());
       }
 
       /**




More information about the jboss-cvs-commits mailing list