[jboss-cvs] JBossAS SVN: r72903 - in projects/jboss-mdr/trunk/src: main/org/jboss/metadata/spi/signature and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 30 17:28:37 EDT 2008


Author: alesj
Date: 2008-04-30 17:28:37 -0400 (Wed, 30 Apr 2008)
New Revision: 72903

Added:
   projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ConstructorParametersSignature.java
   projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ParametersSignature.java
   projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/javassist/JavassistConstructorParametersSignature.java
   projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/support/ConstructorParamBean.java
Modified:
   projects/jboss-mdr/trunk/src/main/org/jboss/metadata/plugins/loader/reflection/AnnotatedElementMetaDataLoader.java
   projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/MethodParametersSignature.java
   projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/SignatureMetaDataTest.java
   projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/memory/test/MemoryLoaderComponentBasicAnnotationsUnitTestCase.java
   projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/test/AnnotatedElementLoaderComponentBasicAnnotationsUnitTestCase.java
   projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/shared/ComponentBasicAnnotationsTest.java
Log:
ConstructorParametersSignature introduction.

Modified: projects/jboss-mdr/trunk/src/main/org/jboss/metadata/plugins/loader/reflection/AnnotatedElementMetaDataLoader.java
===================================================================
--- projects/jboss-mdr/trunk/src/main/org/jboss/metadata/plugins/loader/reflection/AnnotatedElementMetaDataLoader.java	2008-04-30 20:20:51 UTC (rev 72902)
+++ projects/jboss-mdr/trunk/src/main/org/jboss/metadata/plugins/loader/reflection/AnnotatedElementMetaDataLoader.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -38,14 +38,15 @@
 import org.jboss.metadata.spi.scope.CommonLevels;
 import org.jboss.metadata.spi.scope.Scope;
 import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.metadata.spi.signature.ConstructorParametersSignature;
 import org.jboss.metadata.spi.signature.ConstructorSignature;
 import org.jboss.metadata.spi.signature.FieldSignature;
 import org.jboss.metadata.spi.signature.MethodParametersSignature;
 import org.jboss.metadata.spi.signature.MethodSignature;
 import org.jboss.metadata.spi.signature.Signature;
+import org.jboss.reflect.plugins.introspection.ReflectionUtils;
 import org.jboss.util.JBossStringBuilder;
 import org.jboss.util.Strings;
-import org.jboss.reflect.plugins.introspection.ReflectionUtils;
 
 /**
  * AnnotatedElementMetaDataLoader.
@@ -158,6 +159,20 @@
                return null;
             }
          }
+         else if (signature instanceof ConstructorParametersSignature)
+         {
+            try
+            {
+               Constructor constructor = clazz.getConstructor(signature.getParametersTypes(clazz));
+               Annotation[][] paramAnnotations = constructor.getParameterAnnotations();
+               ConstructorParametersSignature sig = (ConstructorParametersSignature) signature;
+               return new SimpleMetaDataLoader(paramAnnotations[sig.getParam()]);
+            }
+            catch (NoSuchMethodException e)
+            {
+               return null;
+            }
+         }
          else if (signature instanceof FieldSignature)
          {
             Field field = ReflectionUtils.findField(clazz, signature.getName());
@@ -178,11 +193,11 @@
 
       if (annotated instanceof Constructor)
       {
-         if (signature instanceof MethodParametersSignature)
+         if (signature instanceof ConstructorParametersSignature)
          {
             Constructor<?> constructor = Constructor.class.cast(annotated);
             Annotation[][] paramAnnotations = constructor.getParameterAnnotations();
-            MethodParametersSignature sig = (MethodParametersSignature) signature;
+            ConstructorParametersSignature sig = (ConstructorParametersSignature) signature;
             return new SimpleMetaDataLoader(paramAnnotations[sig.getParam()]);
          }
       }

Copied: projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ConstructorParametersSignature.java (from rev 72888, projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/MethodParametersSignature.java)
===================================================================
--- projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ConstructorParametersSignature.java	                        (rev 0)
+++ projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ConstructorParametersSignature.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -0,0 +1,78 @@
+/*
+* 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.metadata.spi.signature;
+
+import java.lang.reflect.Constructor;
+
+import org.jboss.reflect.spi.ConstructorInfo;
+
+/**
+ * Constructor parameters Signature.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class ConstructorParametersSignature extends ParametersSignature
+{
+   /**
+    * Create a new Signature.
+    *
+    * @param param the parameter number
+    * @param parameters the parameters
+    */
+   public ConstructorParametersSignature(int param, String... parameters)
+   {
+      super(param,  parameters);
+   }
+
+   /**
+    * Create a new Signature.
+    *
+    * @param param the parameter number
+    * @param parameters the parameters
+    */
+   public ConstructorParametersSignature(int param, Class<?>... parameters)
+   {
+      super(param, parameters);
+   }
+
+   /**
+    * Create a new Signature.
+    *
+    * @param constructor the constructor
+    * @param param the parameter number
+    */
+   public ConstructorParametersSignature(Constructor constructor, int param)
+   {
+      super(param, constructor.getParameterTypes());
+   }
+
+   /**
+    * Create a new Signature.
+    *
+    * @param constructor the constructor info
+    * @param param the parameter number
+    */
+   public ConstructorParametersSignature(ConstructorInfo constructor, int param)
+   {
+      super(param, convertParameterTypes(constructor.getParameterTypes()));
+   }
+}
\ No newline at end of file

Modified: projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/MethodParametersSignature.java
===================================================================
--- projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/MethodParametersSignature.java	2008-04-30 20:20:51 UTC (rev 72902)
+++ projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/MethodParametersSignature.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -29,13 +29,11 @@
  * Method parameters Signature.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
-public class MethodParametersSignature extends Signature
+public class MethodParametersSignature extends ParametersSignature
 {
-   /** The parameter number */
-   private int param;
-   
    /**
     * Create a new Signature.
     * 
@@ -45,9 +43,7 @@
     */
    public MethodParametersSignature(String name, String[] parameters, int param)
    {
-      super(name, parameters);
-      this.param = param;
-      checkParam();
+      super(name, param, parameters);
    }
 
    /**
@@ -59,9 +55,7 @@
     */
    public MethodParametersSignature(String name, int param, Class<?>... parameters)
    {
-      super(name, parameters);
-      this.param = param;
-      checkParam();
+      super(name, param, parameters);
    }
 
    /**
@@ -72,9 +66,7 @@
     */
    public MethodParametersSignature(Method method, int param)
    {
-      super(method.getName(), method.getParameterTypes());
-      this.param = param;
-      checkParam();
+      super(method.getName(), param, method.getParameterTypes());
    }
 
    /**
@@ -85,33 +77,6 @@
     */
    public MethodParametersSignature(MethodInfo method, int param)
    {
-      super(method.getName(), convertParameterTypes(method.getParameterTypes()));
-      this.param = param;
-      checkParam();
+      super(method.getName(), param, convertParameterTypes(method.getParameterTypes()));
    }
-
-   /**
-    * Get the param.
-    * 
-    * @return the param.
-    */
-   public int getParam()
-   {
-      return param;
-   }
-
-   /**
-    * Check the param number makes sense
-    */
-   protected void checkParam()
-   {
-      if (param < 0 || param >= getParameters().length)
-         throw new IllegalArgumentException("param must be between 0 and " + getParameters().length);
-   }
-
-   protected void internalToString(StringBuilder builder)
-   {
-      super.internalToString(builder);
-      builder.append("#").append(param);
-   }
 }

Added: projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ParametersSignature.java
===================================================================
--- projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ParametersSignature.java	                        (rev 0)
+++ projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/ParametersSignature.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -0,0 +1,112 @@
+/*
+* 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.metadata.spi.signature;
+
+/**
+ * Parameters Signature.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public abstract class ParametersSignature extends Signature
+{
+   /** The parameter number */
+   private int param;
+
+   /**
+    * Create a new Signature.
+    *
+    * @param param the parameter number
+    * @param parameters the parameters
+    */
+   protected ParametersSignature(int param, String... parameters)
+   {
+      super(parameters);
+      this.param = param;
+      checkParam();
+   }
+
+   /**
+    * Create a new Signature.
+    *
+    * @param param the parameter number
+    * @param parameters the parameters
+    */
+   protected ParametersSignature(int param, Class<?>... parameters)
+   {
+      super(parameters);
+      this.param = param;
+      checkParam();
+   }
+
+   /**
+    * Create a new Signature.
+    *
+    * @param name the name
+    * @param param the parameter number
+    * @param parameters the parameters
+    */
+   protected ParametersSignature(String name, int param, String... parameters)
+   {
+      super(name, parameters);
+      this.param = param;
+      checkParam();
+   }
+
+   /**
+    * Create a new Signature.
+    *
+    * @param name the name
+    * @param param the parameter number
+    * @param parameters the parameters
+    */
+   protected ParametersSignature(String name, int param, Class<?>... parameters)
+   {
+      super(name, parameters);
+      this.param = param;
+      checkParam();
+   }
+
+   /**
+    * Get the param.
+    *
+    * @return the param.
+    */
+   public int getParam()
+   {
+      return param;
+   }
+
+   /**
+    * Check the param number makes sense
+    */
+   protected void checkParam()
+   {
+      if (param < 0 || param >= getParameters().length)
+         throw new IllegalArgumentException("param must be between 0 and " + getParameters().length);
+   }
+
+   protected void internalToString(StringBuilder builder)
+   {
+      super.internalToString(builder);
+      builder.append("#").append(param);
+   }
+}
\ No newline at end of file

Copied: projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/javassist/JavassistConstructorParametersSignature.java (from rev 72888, projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/javassist/JavassistMethodParametersSignature.java)
===================================================================
--- projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/javassist/JavassistConstructorParametersSignature.java	                        (rev 0)
+++ projects/jboss-mdr/trunk/src/main/org/jboss/metadata/spi/signature/javassist/JavassistConstructorParametersSignature.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -0,0 +1,46 @@
+/*
+* 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.metadata.spi.signature.javassist;
+
+import javassist.CtConstructor;
+import javassist.NotFoundException;
+import org.jboss.metadata.spi.signature.ConstructorParametersSignature;
+
+/**
+ * Javassist Constructor parameters Signature.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class JavassistConstructorParametersSignature extends ConstructorParametersSignature
+{
+   /**
+    * Create a new Signature.
+    *
+    * @param constructor the method
+    * @param param the parameter number
+    * @throws javassist.NotFoundException for any error
+    */
+   public JavassistConstructorParametersSignature(CtConstructor constructor, int param) throws NotFoundException
+   {
+      super(param, JavassistSignatureFactory.convertParameters(constructor.getParameterTypes()));
+   }
+}
\ No newline at end of file

Modified: projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/SignatureMetaDataTest.java
===================================================================
--- projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/SignatureMetaDataTest.java	2008-04-30 20:20:51 UTC (rev 72902)
+++ projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/SignatureMetaDataTest.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -29,6 +29,7 @@
 
 import org.jboss.config.plugins.property.PropertyConfiguration;
 import org.jboss.config.spi.Configuration;
+import org.jboss.metadata.spi.signature.ConstructorParametersSignature;
 import org.jboss.metadata.spi.signature.ConstructorSignature;
 import org.jboss.metadata.spi.signature.FieldSignature;
 import org.jboss.metadata.spi.signature.MethodParametersSignature;
@@ -130,6 +131,26 @@
       return new MethodParametersSignature(getMethodInfo(), 0);
    }
 
+   protected ConstructorParametersSignature getStringConstructorParametersSignature() throws Exception
+   {
+      return new ConstructorParametersSignature(0, Calendar.class.getName());
+   }
+
+   protected ConstructorParametersSignature getClassConstructorParametersSignature() throws Exception
+   {
+      return new ConstructorParametersSignature(0, Calendar.class);
+   }
+
+   protected ConstructorParametersSignature getConstructorParametersSignature() throws Exception
+   {
+      return new ConstructorParametersSignature(getConstructor(), 0);
+   }
+
+   protected ConstructorParametersSignature getConstructorInfoParametersSignature() throws Exception
+   {
+      return new ConstructorParametersSignature(getConstructorInfo(), 0);
+   }
+
    protected Constructor<?> getConstructor() throws Exception
    {
       return SignatureTester.class.getDeclaredConstructor(Calendar.class);
@@ -168,7 +189,7 @@
 
    protected Signature[] getSignatures() throws Exception
    {
-      Signature[] signatures = new Signature[15];
+      Signature[] signatures = new Signature[19];
       signatures[0] = getDefaultConstructorSignature();
       signatures[1] = getStringParameterConstructorSignature();
       signatures[2] = getClassParameterConstructorSignature();
@@ -184,6 +205,10 @@
       signatures[12] = getStringMethodParametersSignature();
       signatures[13] = getMethodParametersSignature();
       signatures[14] = getMethodInfoParametersSignature();
+      signatures[15] = getStringConstructorParametersSignature();
+      signatures[16] = getClassConstructorParametersSignature();
+      signatures[17] = getConstructorParametersSignature();
+      signatures[18] = getConstructorInfoParametersSignature();
       return signatures;
    }
 
@@ -225,4 +250,14 @@
       signatures[3] = getMethodInfoParametersSignature();
       return signatures;
    }
+
+   protected ConstructorParametersSignature[] getConstructorParametersSignatures() throws Exception
+   {
+      ConstructorParametersSignature[] signatures = new ConstructorParametersSignature[4];
+      signatures[0] = getStringConstructorParametersSignature();
+      signatures[1] = getClassConstructorParametersSignature();
+      signatures[2] = getConstructorParametersSignature();
+      signatures[3] = getConstructorInfoParametersSignature();
+      return signatures;
+   }
 }

Modified: projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/memory/test/MemoryLoaderComponentBasicAnnotationsUnitTestCase.java
===================================================================
--- projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/memory/test/MemoryLoaderComponentBasicAnnotationsUnitTestCase.java	2008-04-30 20:20:51 UTC (rev 72902)
+++ projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/memory/test/MemoryLoaderComponentBasicAnnotationsUnitTestCase.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -24,6 +24,7 @@
 import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
 import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.retrieval.MetaDataRetrievalToMetaDataBridge;
+import org.jboss.metadata.spi.signature.ConstructorParametersSignature;
 import org.jboss.metadata.spi.signature.ConstructorSignature;
 import org.jboss.metadata.spi.signature.FieldSignature;
 import org.jboss.metadata.spi.signature.MethodParametersSignature;
@@ -105,4 +106,19 @@
       loader.addComponentMetaDataRetrieval(new MethodParametersSignature("testAnnotation12", 1, String.class, Class.class), component);
       return new MetaDataRetrievalToMetaDataBridge(loader);
    }
+
+   protected MetaData setupConstructorParams()
+   {
+      MemoryMetaDataLoader loader = new MemoryMetaDataLoader();
+      MemoryMetaDataLoader component = new MemoryMetaDataLoader();
+      loader.addComponentMetaDataRetrieval(new ConstructorParametersSignature(0, String.class), component);
+      component = new MemoryMetaDataLoader();
+      component.addAnnotation(new TestAnnotationImpl());
+      loader.addComponentMetaDataRetrieval(new ConstructorParametersSignature(0, Integer.class), component);
+      component = new MemoryMetaDataLoader();
+      component.addAnnotation(new TestAnnotation1Impl());
+      component.addAnnotation(new TestAnnotation2Impl());
+      loader.addComponentMetaDataRetrieval(new ConstructorParametersSignature(1, String.class, Class.class), component);
+      return new MetaDataRetrievalToMetaDataBridge(loader);
+   }
 }

Copied: projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/support/ConstructorParamBean.java (from rev 71863, projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/support/MethodParamBean.java)
===================================================================
--- projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/support/ConstructorParamBean.java	                        (rev 0)
+++ projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/support/ConstructorParamBean.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -0,0 +1,46 @@
+/*
+* 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.metadata.loader.reflection.support;
+
+import org.jboss.test.metadata.shared.support.TestAnnotation;
+import org.jboss.test.metadata.shared.support.TestAnnotation1;
+import org.jboss.test.metadata.shared.support.TestAnnotation2;
+
+/**
+ * ConstructorParamBean.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class ConstructorParamBean
+{
+   public ConstructorParamBean(String p1)
+   {
+   }
+
+   public ConstructorParamBean(@TestAnnotation Integer p1)
+   {
+   }
+
+   public ConstructorParamBean(String p1, @TestAnnotation1 @TestAnnotation2 Class<?> p2)
+   {
+   }
+}
\ No newline at end of file

Modified: projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/test/AnnotatedElementLoaderComponentBasicAnnotationsUnitTestCase.java
===================================================================
--- projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/test/AnnotatedElementLoaderComponentBasicAnnotationsUnitTestCase.java	2008-04-30 20:20:51 UTC (rev 72902)
+++ projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/loader/reflection/test/AnnotatedElementLoaderComponentBasicAnnotationsUnitTestCase.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -25,6 +25,7 @@
 import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.retrieval.MetaDataRetrievalToMetaDataBridge;
 import org.jboss.test.metadata.loader.reflection.support.ConstructorBean;
+import org.jboss.test.metadata.loader.reflection.support.ConstructorParamBean;
 import org.jboss.test.metadata.loader.reflection.support.FieldBean;
 import org.jboss.test.metadata.loader.reflection.support.MethodBean;
 import org.jboss.test.metadata.loader.reflection.support.MethodParamBean;
@@ -66,4 +67,10 @@
       AnnotatedElementMetaDataLoader loader = new AnnotatedElementMetaDataLoader(MethodParamBean.class);
       return new MetaDataRetrievalToMetaDataBridge(loader);
    }
+
+   protected MetaData setupConstructorParams()
+   {
+      AnnotatedElementMetaDataLoader loader = new AnnotatedElementMetaDataLoader(ConstructorParamBean.class);
+      return new MetaDataRetrievalToMetaDataBridge(loader);
+   }
 }

Modified: projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/shared/ComponentBasicAnnotationsTest.java
===================================================================
--- projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/shared/ComponentBasicAnnotationsTest.java	2008-04-30 20:20:51 UTC (rev 72902)
+++ projects/jboss-mdr/trunk/src/tests/org/jboss/test/metadata/shared/ComponentBasicAnnotationsTest.java	2008-04-30 21:28:37 UTC (rev 72903)
@@ -22,6 +22,7 @@
 package org.jboss.test.metadata.shared;
 
 import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.signature.ConstructorParametersSignature;
 import org.jboss.metadata.spi.signature.ConstructorSignature;
 import org.jboss.metadata.spi.signature.FieldSignature;
 import org.jboss.metadata.spi.signature.MethodParametersSignature;
@@ -56,7 +57,9 @@
    protected abstract MetaData setupMethod();
    
    protected abstract MetaData setupMethodParams();
-   
+
+   protected abstract MetaData setupConstructorParams();
+
    public void testFieldNotFound() throws Exception
    {
       MetaData metaData = setupField();
@@ -85,6 +88,13 @@
       assertNull(metaData);
    }
    
+   public void testConstructorParamsNotFound() throws Exception
+   {
+      MetaData metaData = setupConstructorParams();
+      metaData = metaData.getComponentMetaData(new ConstructorParametersSignature(0, Void.class));
+      assertNull(metaData);
+   }
+
    public void testFieldEmpty() throws Exception
    {
       MetaData metaData = setupField();
@@ -113,6 +123,13 @@
       testEmpty(metaData);
    }
       
+   public void testConstructorParamsEmpty() throws Exception
+   {
+      MetaData metaData = setupConstructorParams();
+      metaData = metaData.getComponentMetaData(new ConstructorParametersSignature(0, String.class));
+      testEmpty(metaData);
+   }
+
    protected void testEmpty(MetaData metaData) throws Exception
    {
       assertNotNull(metaData);
@@ -151,6 +168,13 @@
       testTestAnnotation(metaData);
    }
    
+   public void testConstructorParamsTestAnnotation() throws Exception
+   {
+      MetaData metaData = setupConstructorParams();
+      metaData = metaData.getComponentMetaData(new ConstructorParametersSignature(0, Integer.class));
+      testTestAnnotation(metaData);
+   }
+
    protected void testTestAnnotation(MetaData metaData) throws Exception
    {
       assertNotNull(metaData);
@@ -192,6 +216,13 @@
       testTestAnnotation12(metaData);
    }
 
+   public void testConstructorParamTestAnnotation12() throws Exception
+   {
+      MetaData metaData = setupConstructorParams();
+      metaData = metaData.getComponentMetaData(new ConstructorParametersSignature(1, String.class, Class.class));
+      testTestAnnotation12(metaData);
+   }
+
    protected void testTestAnnotation12(MetaData metaData) throws Exception
    {
       assertNotNull(metaData);




More information about the jboss-cvs-commits mailing list