[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