[weld-commits] Weld SVN: r4765 - in cdi-tck/trunk/impl/src/main: java/org/jboss/jsr299/tck/tests/decorators/custom/broken and 4 other directories.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Sat Nov 7 19:32:46 EST 2009
Author: jharting
Date: 2009-11-07 19:32:46 -0500 (Sat, 07 Nov 2009)
New Revision: 4765
Added:
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/AfterBeanDiscoveryObserver.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Bus.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/BusGarage.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorImplementation.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorMatchingBeanWithFinalClassTest.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Truck.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Vehicle.java
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/VehicleDecorator.java
cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/
cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/
cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/beans.xml
cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/javax.enterprise.inject.spi.Extension
Log:
Another test for registration of a custom implementation of the decorator interface
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/AfterBeanDiscoveryObserver.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/AfterBeanDiscoveryObserver.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/AfterBeanDiscoveryObserver.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,38 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+import java.util.Set;
+
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.AnnotatedField;
+import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
+
+public class AfterBeanDiscoveryObserver implements Extension
+{
+
+ private static CustomDecoratorImplementation decorator;
+
+ @SuppressWarnings("unchecked")
+ public void addInterceptors(@Observes AfterBeanDiscovery event,BeanManager beanManager)
+ {
+ AnnotatedType<VehicleDecorator> type = beanManager.createAnnotatedType(VehicleDecorator.class);
+ Set<AnnotatedField<? super VehicleDecorator>> annotatedFields = type.getFields();
+ AnnotatedField<? super VehicleDecorator> annotatedField = annotatedFields.iterator().next();
+ decorator = new CustomDecoratorImplementation(annotatedField, beanManager);
+
+ event.addBean(decorator);
+ }
+
+ public void vetoVehicleDecorator(@Observes ProcessAnnotatedType<VehicleDecorator> event)
+ {
+ event.veto();
+ }
+
+ public static CustomDecoratorImplementation getDecorator()
+ {
+ return decorator;
+ }
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Bus.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Bus.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Bus.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+final class Bus implements Vehicle
+{
+
+ public void start()
+ {
+ }
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/BusGarage.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/BusGarage.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/BusGarage.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,14 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+import javax.inject.Inject;
+
+class BusGarage
+{
+ @Inject
+ private Bus bus;
+
+ public Bus getBus()
+ {
+ return bus;
+ }
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorImplementation.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorImplementation.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorImplementation.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,170 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Member;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.enterprise.context.Dependent;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Annotated;
+import javax.enterprise.inject.spi.AnnotatedField;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.Decorator;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+import org.jboss.jsr299.tck.literals.DefaultLiteral;
+
+class CustomDecoratorImplementation implements Decorator<VehicleDecorator>
+{
+
+ private boolean getDecoratedTypesCalled = false;
+ private boolean getDelegateQualifiersCalled = false;
+ private boolean getDelegateTypeCalled = false;
+
+ private AnnotatedField<? super VehicleDecorator> annotatedField;
+ private Set<Type> decoratedTypes;
+ private Set<InjectionPoint> injectionPoints;
+ private BeanManager beanManager;
+
+ public CustomDecoratorImplementation(AnnotatedField<? super VehicleDecorator> annotatedField, BeanManager beanManager)
+ {
+ this.annotatedField = annotatedField;
+ this.beanManager = beanManager;
+ decoratedTypes = Collections.singleton((Type) Vehicle.class);
+ injectionPoints = Collections.singleton((InjectionPoint) new CustomInjectionPoint());
+ }
+
+ public Set<Type> getDecoratedTypes()
+ {
+ getDecoratedTypesCalled = true;
+ return decoratedTypes;
+ }
+
+ public Set<Annotation> getDelegateQualifiers()
+ {
+ getDelegateQualifiersCalled = true;
+ return Collections.emptySet();
+ }
+
+ public Type getDelegateType()
+ {
+ getDelegateTypeCalled = true;
+ return Vehicle.class;
+ }
+
+ public Class<?> getBeanClass()
+ {
+ return VehicleDecorator.class;
+ }
+
+ public Set<InjectionPoint> getInjectionPoints()
+ {
+ return injectionPoints;
+ }
+
+ public String getName()
+ {
+ return null;
+ }
+
+ public Set<Annotation> getQualifiers()
+ {
+ return Collections.emptySet();
+ }
+
+ public Class<? extends Annotation> getScope()
+ {
+ return Dependent.class;
+ }
+
+ public Set<Class<? extends Annotation>> getStereotypes()
+ {
+ return Collections.emptySet();
+ }
+
+ public Set<Type> getTypes()
+ {
+ return new HashSet<Type>(Arrays.asList(VehicleDecorator.class, Object.class));
+ }
+
+ public boolean isAlternative()
+ {
+ return false;
+ }
+
+ public boolean isNullable()
+ {
+ return false;
+ }
+
+ public VehicleDecorator create(CreationalContext<VehicleDecorator> ctx)
+ {
+ VehicleDecorator decorator = new VehicleDecorator();
+ decorator.delegate = (Vehicle) beanManager.getInjectableReference(getInjectionPoints().iterator().next(), ctx);
+ return decorator;
+ }
+
+ public void destroy(VehicleDecorator arg0, CreationalContext<VehicleDecorator> arg1)
+ {
+ arg1.release();
+ }
+
+ public boolean isGetDecoratedTypesCalled()
+ {
+ return getDecoratedTypesCalled;
+ }
+
+ public boolean isGetDelegateQualifiersCalled()
+ {
+ return getDelegateQualifiersCalled;
+ }
+
+ public boolean isGetDelegateTypeCalled()
+ {
+ return getDelegateTypeCalled;
+ }
+
+ class CustomInjectionPoint implements InjectionPoint
+ {
+
+ public boolean isTransient()
+ {
+ return false;
+ }
+
+ public boolean isDelegate()
+ {
+ return true;
+ }
+
+ public Type getType()
+ {
+ return Vehicle.class;
+ }
+
+ public Set<Annotation> getQualifiers()
+ {
+ return Collections.singleton((Annotation) new DefaultLiteral());
+ }
+
+ public Member getMember()
+ {
+ return annotatedField.getJavaMember();
+ }
+
+ public Bean<?> getBean()
+ {
+ return CustomDecoratorImplementation.this;
+ }
+
+ public Annotated getAnnotated()
+ {
+ return annotatedField;
+ }
+ };
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorMatchingBeanWithFinalClassTest.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorMatchingBeanWithFinalClassTest.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/CustomDecoratorMatchingBeanWithFinalClassTest.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, 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.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.DeploymentError;
+import org.jboss.test.audit.annotations.SpecAssertion;
+import org.jboss.test.audit.annotations.SpecVersion;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ExpectedDeploymentException;
+import org.jboss.testharness.impl.packaging.IntegrationTest;
+import org.jboss.testharness.impl.packaging.jsr299.BeansXml;
+import org.jboss.testharness.impl.packaging.jsr299.Extension;
+import org.testng.annotations.Test;
+
+ at Artifact
+ at BeansXml("beans.xml")
+ at SpecVersion(spec = "cdi", version = "20091101")
+ at IntegrationTest
+ at Extension("javax.enterprise.inject.spi.Extension")
+ at ExpectedDeploymentException(DeploymentError.class)
+public class CustomDecoratorMatchingBeanWithFinalClassTest extends AbstractJSR299Test
+{
+ @Test(groups = "ri-broken")
+ @SpecAssertion(section = "8.3", id = "ab")
+ // WELD-274
+ public void testCustomDecoratorDecoratingFinalBean()
+ {
+ assert false;
+ }
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Truck.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Truck.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Truck.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,10 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+class Truck implements Vehicle
+{
+
+ public void start()
+ {
+ }
+
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Vehicle.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Vehicle.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/Vehicle.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+interface Vehicle
+{
+ void start();
+}
Added: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/VehicleDecorator.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/VehicleDecorator.java (rev 0)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/VehicleDecorator.java 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,15 @@
+package org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass;
+
+import javax.decorator.Delegate;
+import javax.inject.Inject;
+
+class VehicleDecorator implements Vehicle
+{
+ @Inject @Delegate
+ Vehicle delegate;
+
+ public void start()
+ {
+ delegate.start();
+ }
+}
Added: cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/beans.xml
===================================================================
--- cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/beans.xml (rev 0)
+++ cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/beans.xml 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1,5 @@
+<beans>
+ <decorators>
+ <class>org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.VehicleDecorator</class>
+ </decorators>
+</beans>
Added: cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/javax.enterprise.inject.spi.Extension
===================================================================
--- cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/javax.enterprise.inject.spi.Extension (rev 0)
+++ cdi-tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/custom/broken/finalBeanClass/javax.enterprise.inject.spi.Extension 2009-11-08 00:32:46 UTC (rev 4765)
@@ -0,0 +1 @@
+org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.AfterBeanDiscoveryObserver
\ No newline at end of file
More information about the weld-commits
mailing list