[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