[weld-commits] Weld SVN: r5872 - in core/trunk: impl/src/main/java/org/jboss/weld/bean/builtin and 4 other directories.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Wed Feb 17 16:52:15 EST 2010


Author: pete.muir at jboss.org
Date: 2010-02-17 16:52:15 -0500 (Wed, 17 Feb 2010)
New Revision: 5872

Added:
   core/trunk/impl/src/main/java/org/jboss/weld/injection/SimpleInjectionPoint.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/ExtraSpecial.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Pig.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/PigSty.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Special.java
Removed:
   core/trunk/impl/src/main/java/org/jboss/weld/injection/DummyInjectionPoint.java
Modified:
   core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java
   core/trunk/impl/src/main/java/org/jboss/weld/injection/CurrentInjectionPoint.java
   core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/InjectionPointTest.java
Log:
WELD-438

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/AbstractProducerBean.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -59,7 +59,6 @@
 import org.jboss.weld.exceptions.IllegalProductException;
 import org.jboss.weld.exceptions.WeldException;
 import org.jboss.weld.injection.CurrentInjectionPoint;
-import org.jboss.weld.injection.DummyInjectionPoint;
 import org.jboss.weld.introspector.WeldMember;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.metadata.cache.MetaAnnotationStore;
@@ -256,35 +255,34 @@
             throw new IllegalProductException(NON_SERIALIZABLE_PRODUCT_ERROR, getProducer());
          }
          InjectionPoint injectionPoint = Container.instance().services().get(CurrentInjectionPoint.class).peek();
-         if (injectionPoint == null || injectionPoint.equals(DummyInjectionPoint.INSTANCE))
+         if (injectionPoint != null && injectionPoint.getBean() != null)
          {
-            return;
-         }
-         if (!instanceSerializable && Beans.isPassivatingScope(injectionPoint.getBean(), beanManager))
-         {
-            if (injectionPoint.getMember() instanceof Field)
+            if (!instanceSerializable && Beans.isPassivatingScope(injectionPoint.getBean(), beanManager))
             {
-               if (!injectionPoint.isTransient() && instance != null && !instanceSerializable)
+               if (injectionPoint.getMember() instanceof Field)
                {
-                  throw new IllegalProductException(NON_SERIALIZABLE_FIELD_INJECTION_ERROR, this, injectionPoint);
+                  if (!injectionPoint.isTransient() && instance != null && !instanceSerializable)
+                  {
+                     throw new IllegalProductException(NON_SERIALIZABLE_FIELD_INJECTION_ERROR, this, injectionPoint);
+                  }
                }
-            }
-            else if (injectionPoint.getMember() instanceof Method)
-            {
-               Method method = (Method) injectionPoint.getMember();
-               if (method.isAnnotationPresent(Inject.class))
+               else if (injectionPoint.getMember() instanceof Method)
                {
-                  throw new IllegalProductException(NON_SERIALIZABLE_INITIALIZER_PARAM_INJECTION_ERROR, this, injectionPoint);
+                  Method method = (Method) injectionPoint.getMember();
+                  if (method.isAnnotationPresent(Inject.class))
+                  {
+                     throw new IllegalProductException(NON_SERIALIZABLE_INITIALIZER_PARAM_INJECTION_ERROR, this, injectionPoint);
+                  }
+                  if (method.isAnnotationPresent(Produces.class))
+                  {
+                     throw new IllegalProductException(NON_SERIALIZABLE_PRODUCER_PARAM_INJECTION_ERROR, this, injectionPoint);
+                  }
                }
-               if (method.isAnnotationPresent(Produces.class))
+               else if (injectionPoint.getMember() instanceof Constructor<?>)
                {
-                  throw new IllegalProductException(NON_SERIALIZABLE_PRODUCER_PARAM_INJECTION_ERROR, this, injectionPoint);
+                  throw new IllegalProductException(NON_SERIALIZABLE_CONSTRUCTOR_PARAM_INJECTION_ERROR, this, injectionPoint);
                }
             }
-            else if (injectionPoint.getMember() instanceof Constructor<?>)
-            {
-               throw new IllegalProductException(NON_SERIALIZABLE_CONSTRUCTOR_PARAM_INJECTION_ERROR, this, injectionPoint);
-            }
          }
       }
    }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -37,6 +37,7 @@
 import org.jboss.weld.Container;
 import org.jboss.weld.exceptions.InvalidObjectException;
 import org.jboss.weld.injection.CurrentInjectionPoint;
+import org.jboss.weld.injection.SimpleInjectionPoint;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.resolution.ResolvableBuilder;
 import org.jboss.weld.util.Beans;
@@ -67,17 +68,18 @@
    public T get()
    {      
       Bean<?> bean = getBeanManager().getBean(new ResolvableBuilder(getType()).addQualifiers(getQualifiers()).setDeclaringBean(getInjectionPoint().getBean()).create());
-      // Push in an empty CC to ensure that we don't get the CC of whatever is injecting the bean containing the Instance injection point
+      // Generate a correct injection point for the bean, we do this by taking the original injection point and adjusting the qualifiers and type
+      InjectionPoint ip = new SimpleInjectionPoint(getInjectionPoint().isTransient(), getInjectionPoint().isDelegate(), getType(), getQualifiers(), getInjectionPoint().getMember(), getInjectionPoint().getBean(), getInjectionPoint().getAnnotated());
       try
-      {
-         Container.instance().services().get(CurrentInjectionPoint.class).pushDummy();
+      {   
+         Container.instance().services().get(CurrentInjectionPoint.class).push(ip);
          @SuppressWarnings("unchecked")
          T instance = (T) getBeanManager().getReference(bean, getType(), getBeanManager().createCreationalContext(bean));
          return instance;
       }
       finally
       {
-         Container.instance().services().get(CurrentInjectionPoint.class).popDummy();
+         Container.instance().services().get(CurrentInjectionPoint.class).pop();
       }
    }
 

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/proxy/ClientProxyMethodHandler.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -33,6 +33,7 @@
 import org.jboss.weld.context.CreationalContextImpl;
 import org.jboss.weld.context.WeldCreationalContext;
 import org.jboss.weld.injection.CurrentInjectionPoint;
+import org.jboss.weld.injection.SimpleInjectionPoint;
 import org.jboss.weld.serialization.spi.ContextualStore;
 import org.jboss.weld.util.reflection.SecureReflections;
 import org.slf4j.cal10n.LocLogger;
@@ -134,16 +135,16 @@
          creationalContext = currentCreationalContext.get().getCreationalContext(bean);
          outer = false;
       }
+      Context context = Container.instance().deploymentManager().getContext(bean.getScope());
       try
       {
-         Context context = Container.instance().deploymentManager().getContext(bean.getScope());
          // Ensure that there is no injection point associated
-         Container.instance().services().get(CurrentInjectionPoint.class).pushDummy();
+         Container.instance().services().get(CurrentInjectionPoint.class).push(SimpleInjectionPoint.EMPTY_INJECTION_POINT);
          return context.get(bean, creationalContext);
       }
       finally
       {
-         Container.instance().services().get(CurrentInjectionPoint.class).popDummy();
+         Container.instance().services().get(CurrentInjectionPoint.class).pop();
          if (outer)
          {
             currentCreationalContext.remove();

Modified: core/trunk/impl/src/main/java/org/jboss/weld/injection/CurrentInjectionPoint.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/injection/CurrentInjectionPoint.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/impl/src/main/java/org/jboss/weld/injection/CurrentInjectionPoint.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -73,19 +73,6 @@
          return null;
       }
    }
-   
-   public void pushDummy()
-   {
-      currentInjectionPoint.get().push(DummyInjectionPoint.INSTANCE);
-   }
-   
-   public void popDummy()
-   {
-      if (!currentInjectionPoint.get().isEmpty() && DummyInjectionPoint.INSTANCE.equals(currentInjectionPoint.get().peek()))
-      {
-         currentInjectionPoint.get().pop();
-      }
-   }
 
    public void cleanup()
    {

Deleted: core/trunk/impl/src/main/java/org/jboss/weld/injection/DummyInjectionPoint.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/injection/DummyInjectionPoint.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/impl/src/main/java/org/jboss/weld/injection/DummyInjectionPoint.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -1,69 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat, Inc., and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.weld.injection;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Member;
-import java.lang.reflect.Type;
-import java.util.Collections;
-import java.util.Set;
-
-import javax.enterprise.inject.spi.Annotated;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.InjectionPoint;
-
-public class DummyInjectionPoint implements InjectionPoint
-{
-   
-   public static final DummyInjectionPoint INSTANCE = new DummyInjectionPoint();
-   
-   public boolean isTransient()
-   {
-      return true;
-   }
-
-   public boolean isDelegate()
-   {
-      return false;
-   }
-
-   public Type getType()
-   {
-      return InjectionPoint.class;
-   }
-
-   public Set<Annotation> getQualifiers()
-   {
-      return Collections.emptySet();
-   }
-
-   public Member getMember()
-   {
-      return null;
-   }
-
-   public Bean<?> getBean()
-   {
-      return null;
-   }
-
-   public Annotated getAnnotated()
-   {
-      return null;
-   }
-   
-}

Copied: core/trunk/impl/src/main/java/org/jboss/weld/injection/SimpleInjectionPoint.java (from rev 5857, core/trunk/impl/src/main/java/org/jboss/weld/injection/DummyInjectionPoint.java)
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/injection/SimpleInjectionPoint.java	                        (rev 0)
+++ core/trunk/impl/src/main/java/org/jboss/weld/injection/SimpleInjectionPoint.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.weld.injection;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Member;
+import java.lang.reflect.Type;
+import java.util.Collections;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Annotated;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+import org.jboss.weld.util.collections.Arrays2;
+
+public class SimpleInjectionPoint implements InjectionPoint
+{
+   
+   public static final InjectionPoint EMPTY_INJECTION_POINT = new SimpleInjectionPoint(false, false, Object.class, Collections.<Annotation>emptySet(), null, null, null); 
+   
+   private final boolean _transient;
+   private final boolean delegate;
+   private final Type type;
+   private final Set<Annotation> qualifiers;
+   private final Member member;
+   private final Bean<?> bean;
+   private final Annotated annotated;
+   
+   public SimpleInjectionPoint(boolean _transient, boolean delegate, Type type, Set<Annotation> qualifiers, Member member, Bean<?> bean, Annotated annotated)
+   {
+      this._transient = _transient;
+      this.delegate = delegate;
+      this.type = type;
+      this.qualifiers = qualifiers;
+      this.member = member;
+      this.bean = bean;
+      this.annotated = annotated;
+   }
+   
+   public SimpleInjectionPoint(boolean _transient, boolean delegate, Type type, Annotation[] qualifiers, Member member, Bean<?> bean, Annotated annotated)
+   {
+      this(_transient, delegate, type, Arrays2.asSet(qualifiers), member, bean, annotated);
+   }
+
+   public boolean isTransient()
+   {
+      return _transient;
+   }
+
+   public boolean isDelegate()
+   {
+      return delegate;
+   }
+
+   public Type getType()
+   {
+      return type;
+   }
+
+   public Set<Annotation> getQualifiers()
+   {
+      return qualifiers;
+   }
+
+   public Member getMember()
+   {
+      return member;
+   }
+
+   public Bean<?> getBean()
+   {
+      return bean;
+   }
+
+   public Annotated getAnnotated()
+   {
+      return annotated;
+   }
+   
+}


Property changes on: core/trunk/impl/src/main/java/org/jboss/weld/injection/SimpleInjectionPoint.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Beans.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -124,8 +124,12 @@
     */
    public static boolean isPassivatingScope(Bean<?> bean, BeanManagerImpl manager)
    {
-      if (bean instanceof SessionBean<?>)
+      if (bean == null)
       {
+         return false;
+      }
+      else if (bean instanceof SessionBean<?>)
+      {
          return ((SessionBean<?>) bean).getEjbDescriptor().isStateful();
       }
       else

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/ExtraSpecial.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/ExtraSpecial.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/ExtraSpecial.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.weld.tests.injectionPoint;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.enterprise.util.AnnotationLiteral;
+import javax.inject.Qualifier;
+
+ at Qualifier
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({FIELD, METHOD, TYPE, PARAMETER})
+public @interface ExtraSpecial
+{
+
+   static class ExtraSpecialLiteral extends AnnotationLiteral<ExtraSpecial> implements ExtraSpecial
+   {
+      
+      private ExtraSpecialLiteral() {}
+      
+   }
+   
+   public static final ExtraSpecial INSTANCE = new ExtraSpecialLiteral();
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/ExtraSpecial.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/InjectionPointTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/InjectionPointTest.java	2010-02-17 17:29:27 UTC (rev 5871)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/InjectionPointTest.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -16,7 +16,10 @@
  */
 package org.jboss.weld.tests.injectionPoint;
 
+import java.lang.reflect.ParameterizedType;
+
 import javax.enterprise.inject.IllegalProductException;
+import javax.enterprise.inject.Instance;
 import javax.enterprise.inject.spi.InjectionPoint;
 
 import org.jboss.testharness.impl.packaging.Artifact;
@@ -59,5 +62,26 @@
    {
       assert getReference(GrassyField.class).getCow().getName().equals("daisy");
    }
+   
+   @Test(description = "WELD-438")
+   public void testInjectionPointWhenInstanceGetIsUsed() throws Exception
+   {
+      Pig pig = getReference(PigSty.class).getPig();
+      assert pig != null;
+      assert pig.getInjectionPoint().getBean() != null;
+      assert pig.getInjectionPoint().getBean().getBeanClass().equals(PigSty.class);
+      assert pig.getInjectionPoint().getMember().equals(PigSty.class.getDeclaredField("pig"));
+      assert pig.getInjectionPoint().getAnnotated() != null;
+      assert pig.getInjectionPoint().getAnnotated().getBaseType() instanceof ParameterizedType;
+      ParameterizedType parameterizedType = ((ParameterizedType) pig.getInjectionPoint().getAnnotated().getBaseType());
+      assert parameterizedType.getRawType().equals(Instance.class);
+      assert parameterizedType.getActualTypeArguments().length == 1;
+      assert parameterizedType.getActualTypeArguments()[0].equals(Pig.class);
+      assert pig.getInjectionPoint().getAnnotated().isAnnotationPresent(Special.class);
+      assert !pig.getInjectionPoint().getAnnotated().isAnnotationPresent(ExtraSpecial.class);
+      assert Utils.annotationSetMatches(pig.injectionPoint.getQualifiers(), Special.class, ExtraSpecial.class);
+      assert Pig.class.equals(pig.getInjectionPoint().getType());
+      
+   }
 
 }

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Pig.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Pig.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Pig.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -0,0 +1,17 @@
+package org.jboss.weld.tests.injectionPoint;
+
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.inject.Inject;
+
+ at Special @ExtraSpecial
+public class Pig
+{
+   
+   @Inject InjectionPoint injectionPoint;
+   
+   public InjectionPoint getInjectionPoint()
+   {
+      return injectionPoint;
+   }
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Pig.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/PigSty.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/PigSty.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/PigSty.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -0,0 +1,16 @@
+package org.jboss.weld.tests.injectionPoint;
+
+import javax.enterprise.inject.Instance;
+import javax.inject.Inject;
+
+public class PigSty
+{
+   @Inject @Special Instance<Pig> pig;
+   
+   public Pig getPig()
+   {
+      return pig.select(ExtraSpecial.INSTANCE).get();
+   }
+   
+}
+


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/PigSty.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Special.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Special.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Special.java	2010-02-17 21:52:15 UTC (rev 5872)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.weld.tests.injectionPoint;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+ at Qualifier
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({FIELD, METHOD, TYPE, PARAMETER})
+public @interface Special
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/injectionPoint/Special.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native



More information about the weld-commits mailing list