[webbeans-commits] Webbeans SVN: r2872 - ri/trunk/impl/src/main/java/org/jboss/webbeans/bean and 23 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Jun 23 17:09:52 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-06-23 17:09:52 -0400 (Tue, 23 Jun 2009)
New Revision: 2872

Added:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/DecoratorResolver.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/AbstractFooDecorator.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bar.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Baz.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BazDecorator.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bazt.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BaztImpl.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Boo.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/CowShed.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Field.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldDecorator.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldImpl.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Foo.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBar.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBarImpl.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooDecorator.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Logger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Meta.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/MockLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/TimestampLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/Logger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/MockLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/TimestampLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/Logger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MockLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/TimestampLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/Logger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/MockLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/TimestampLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/EnhancedLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/Logger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/MockLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/TimestampLogger.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DataAccessImpl.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/AnimalImpl.java
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/lifecycle/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/lifecycle/beans.xml
Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/BeansXmlParser.java
   tck/trunk/impl/src/main/resources/tck-audit.xml
Log:
Various decorator tests

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-06-23 20:42:32 UTC (rev 2871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -80,6 +80,7 @@
 import org.jboss.webbeans.event.EventObserver;
 import org.jboss.webbeans.event.ObserverImpl;
 import org.jboss.webbeans.injection.NonContextualInjector;
+import org.jboss.webbeans.injection.resolution.DecoratorResolver;
 import org.jboss.webbeans.injection.resolution.ResolvableFactory;
 import org.jboss.webbeans.injection.resolution.ResolvableWBClass;
 import org.jboss.webbeans.injection.resolution.Resolver;
@@ -110,10 +111,10 @@
    
    private static class CurrentActivity
    {
-      
+	
       private final Context context;
-      private final BeanManagerImpl manager;      
-      
+      private final BeanManagerImpl manager;
+		
       public CurrentActivity(Context context, BeanManagerImpl manager)
       {
          this.context = context;
@@ -164,14 +165,14 @@
    public static final String JNDI_KEY = "java:app/Manager";
    
    /*
-    * Application scoped services
-    * ****************************
-    */  
+    * Application scoped services 
+    * ***************************
+    */
    private transient final ExecutorService taskExecutor = Executors.newSingleThreadExecutor();
    private transient final ServiceRegistry services;
-   
+
    /*
-    * Application scoped data structures
+    * Application scoped data structures 
     * ***********************************
     */
    private transient List<Class<? extends Annotation>> enabledDeploymentTypes;
@@ -184,19 +185,19 @@
    private transient final Map<String, RIBean<?>> riBeans;
    private final transient Map<Bean<?>, Bean<?>> specializedBeans;
    private final transient AtomicInteger ids;
-   
+
    /*
-    * Activity scoped services
+    * Activity scoped services 
     * *************************
-    */  
+    */
    private transient final EventManager eventManager;
    private transient final Resolver resolver;
    private transient final Resolver decoratorResolver;
    private final transient NonContextualInjector nonContextualInjector;
    private final transient ELResolver webbeansELResolver;
-   
+
    /*
-    * Activity scoped data structures
+    * Activity scoped data structures 
     * ********************************
     */
    private transient final ThreadLocal<Stack<InjectionPoint>> currentInjectionPoint;
@@ -206,8 +207,7 @@
    private final transient ConcurrentSetMultiMap<Type, EventObserver<?>> registeredObservers;
    private final transient Set<BeanManagerImpl> childActivities;
    private final Integer id;
-   
-   
+
    /**
     * Create a new, root, manager
     * 
@@ -220,23 +220,23 @@
       defaultEnabledDeploymentTypes.add(0, Standard.class);
       defaultEnabledDeploymentTypes.add(1, Production.class);
       
+      List<Class<?>> defaultEnabledDecoratorClasses = new ArrayList<Class<?>>();
+
       return new BeanManagerImpl(
             serviceRegistry, 
-            new CopyOnWriteArrayList<Bean<?>>(), 
+            new CopyOnWriteArrayList<Bean<?>>(),
             new CopyOnWriteArrayList<Decorator<?>>(),
             new ConcurrentSetHashMultiMap<Type, EventObserver<?>>(),
             new Namespace(),
             new ConcurrentHashMap<Class<?>, EnterpriseBean<?>>(),
-            new ConcurrentHashMap<String, RIBean<?>>(), 
-            new ClientProxyProvider(), 
+            new ConcurrentHashMap<String, RIBean<?>>(),
+            new ClientProxyProvider(),
             new ConcurrentListHashMultiMap<Class<? extends Annotation>, Context>(),
-            new CopyOnWriteArraySet<CurrentActivity>(),
-            new HashMap<Bean<?>, Bean<?>>(),
-            defaultEnabledDeploymentTypes,
-            new AtomicInteger()
-            );
+            new CopyOnWriteArraySet<CurrentActivity>(), 
+            new HashMap<Bean<?>, Bean<?>>(), defaultEnabledDeploymentTypes, defaultEnabledDecoratorClasses, 
+            new AtomicInteger());
    }
-   
+
    /**
     * Create a new child manager
     * 
@@ -251,44 +251,29 @@
       ConcurrentSetMultiMap<Type, EventObserver<?>> registeredObservers = new ConcurrentSetHashMultiMap<Type, EventObserver<?>>();
       registeredObservers.deepPutAll(parentManager.getRegisteredObservers());
       Namespace rootNamespace = new Namespace(parentManager.getRootNamespace());
-      
+
       return new BeanManagerImpl(
-            parentManager.getServices(),
-            beans,
-            parentManager.getDecorators(),
-            registeredObservers,
-            rootNamespace,
+            parentManager.getServices(), 
+            beans, parentManager.getDecorators(), 
+            registeredObservers, rootNamespace, 
             parentManager.getNewEnterpriseBeanMap(), 
-            parentManager.getRiBeans(),
-            parentManager.getClientProxyProvider(),
-            parentManager.getContexts(),
-            parentManager.getCurrentActivities(),
-            parentManager.getSpecializedBeans(),
-            parentManager.getEnabledDeploymentTypes(),
-            parentManager.getIds()
-            );
+            parentManager.getRiBeans(), 
+            parentManager.getClientProxyProvider(), 
+            parentManager.getContexts(), 
+            parentManager.getCurrentActivities(), 
+            parentManager.getSpecializedBeans(), 
+            parentManager.getEnabledDeploymentTypes(), 
+            parentManager.getEnabledDecoratorClasses(), 
+            parentManager.getIds());
    }
 
    /**
     * Create a new manager
+    * @param enabledDecoratorClasses 
     * 
     * @param ejbServices the ejbResolver to use
     */
-   private BeanManagerImpl(
-         ServiceRegistry serviceRegistry, 
-         List<Bean<?>> beans,
-         List<Decorator<?>> decorators,
-         ConcurrentSetMultiMap<Type, EventObserver<?>> registeredObservers,
-         Namespace rootNamespace,
-         Map<Class<?>, EnterpriseBean<?>> newEnterpriseBeans, 
-         Map<String, RIBean<?>> riBeans,
-         ClientProxyProvider clientProxyProvider,
-         ConcurrentListMultiMap<Class<? extends Annotation>, Context> contexts,
-         Set<CurrentActivity> currentActivities,
-         Map<Bean<?>, Bean<?>> specializedBeans,
-         List<Class<? extends Annotation>> enabledDeploymentTypes,
-         AtomicInteger ids
-         )
+   private BeanManagerImpl(ServiceRegistry serviceRegistry, List<Bean<?>> beans, List<Decorator<?>> decorators, ConcurrentSetMultiMap<Type, EventObserver<?>> registeredObservers, Namespace rootNamespace, Map<Class<?>, EnterpriseBean<?>> newEnterpriseBeans, Map<String, RIBean<?>> riBeans, ClientProxyProvider clientProxyProvider, ConcurrentListMultiMap<Class<? extends Annotation>, Context> contexts, Set<CurrentActivity> currentActivities, Map<Bean<?>, Bean<?>> specializedBeans, List<Class<? extends Annotation>> enabledDeploymentTypes, List<Class<?>> enabledDecoratorClasses, AtomicInteger ids)
    {
       this.services = serviceRegistry;
       this.beans = beans;
@@ -301,12 +286,13 @@
       this.specializedBeans = specializedBeans;
       this.registeredObservers = registeredObservers;
       setEnabledDeploymentTypes(enabledDeploymentTypes);
+      setEnabledDecoratorClasses(enabledDecoratorClasses);
       this.rootNamespace = rootNamespace;
       this.ids = ids;
       this.id = ids.incrementAndGet();
-      
+
       this.resolver = new Resolver(this, beans);
-      this.decoratorResolver = new Resolver(this, decorators);
+      this.decoratorResolver = new DecoratorResolver(this, decorators);
       this.eventManager = new EventManager(this);
       this.nonContextualInjector = new NonContextualInjector(this);
       this.webbeansELResolver = new WebBeansELResolverImpl(this);
@@ -426,6 +412,14 @@
    }
 
    /**
+    * @return the enabledDecoratorClasses
+    */
+   public List<Class<?>> getEnabledDecoratorClasses()
+   {
+      return Collections.unmodifiableList(enabledDecoratorClasses);
+   }
+
+   /**
     * Set the enabled deployment types
     * 
     * @param enabledDeploymentTypes
@@ -446,7 +440,6 @@
    {
       this.enabledInterceptorClasses = enabledInterceptorClasses;
    }
-
    
    public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings)
    {
@@ -480,7 +473,7 @@
       return resolver.get(ResolvableFactory.of(element));
    }
 
-   public Set<Bean<?>> getBeans(InjectionPoint injectionPoint)
+   public Set<Bean<?>> getInjectableBeans(InjectionPoint injectionPoint)
    {
       boolean registerInjectionPoint = !injectionPoint.getType().equals(InjectionPoint.class);
       try
@@ -490,7 +483,16 @@
             currentInjectionPoint.get().push(injectionPoint);
          }
          // TODO Do this properly
-         return getBeans(ResolvableWBClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this));
+         Set<Bean<?>> beans = getBeans(ResolvableWBClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this));
+         Set<Bean<?>> injectableBeans = new HashSet<Bean<?>>();
+         for (Bean<?> bean : beans)
+         {
+            if (!(bean instanceof Decorator || bean instanceof Interceptor))
+            {
+               injectableBeans.add(bean);
+            }
+         }
+         return injectableBeans;
       }
       finally
       {
@@ -523,7 +525,7 @@
             }
             if (bean instanceof DecoratorBean)
             {
-               decorators.add(DecoratorBean.wrapForResolver((Decorator<?>) bean));
+               decorators.add((Decorator<?>) bean);
             }
             riBeans.put(bean.getId(), bean);
             registerBeanNamespace(bean);
@@ -590,10 +592,9 @@
       contexts.put(context.getScopeType(), context);
    }
 
-  
    public void addObserver(Observer<?> observer, Annotation... bindings)
    {
-      addObserver(observer,eventManager.getTypeOfObserver(observer),bindings);
+      addObserver(observer, eventManager.getTypeOfObserver(observer), bindings);
    }
 
    /**
@@ -609,15 +610,12 @@
 
    public void addObserver(ObserverMethod<?, ?> observerMethod)
    {
-      addObserver((Observer<?>)observerMethod, observerMethod.getObservedEventType(), 
-            new ArrayList<Annotation>(observerMethod.getObservedEventBindings()).toArray(new Annotation[0]));
-      
+      addObserver(observerMethod, observerMethod.getObservedEventType(), new ArrayList<Annotation>(observerMethod.getObservedEventBindings()).toArray(new Annotation[0]));
    }
 
-
    /**
     * Does the actual observer registration
-    *  
+    * 
     * @param observer
     * @param eventType
     * @param bindings
@@ -638,7 +636,6 @@
       eventManager.removeObserver(observer);
    }
 
-
    /**
     * Fires an event object with given event object for given bindings
     * 
@@ -722,15 +719,15 @@
          return getContext(bean.getScopeType()).get((Bean) bean, creationalContext);
       }
    }
-   
 
    /*
-    * TODO this is not correct, as the current implementation of getInstance does not 
-    * pay attention to what type the resulting instance needs to implement
+    * TODO this is not correct, as the current implementation of getInstance
+    * does not pay attention to what type the resulting instance needs to
+    * implement
     */
    public Object getReference(Bean<?> bean, Type beanType)
    {
-      return getInjectableReference(bean, CreationalContextImpl.of(bean));  
+      return getInjectableReference(bean, CreationalContextImpl.of(bean));
    }
 
    @SuppressWarnings("unchecked")
@@ -824,11 +821,12 @@
     * @param bindings The binding types to match
     * @return A list of matching decorators
     * 
-    * @see javax.enterprise.inject.spi.BeanManager#resolveDecorators(java.util.Set, java.lang.annotation.Annotation[])
+    * @see javax.enterprise.inject.spi.BeanManager#resolveDecorators(java.util.Set,
+    *      java.lang.annotation.Annotation[])
     */
    public List<Decorator<?>> resolveDecorators(Set<Type> types, Annotation... bindings)
    {
-      throw new UnsupportedOperationException();
+      return new ArrayList(decoratorResolver.get(ResolvableFactory.of(types, bindings)));
    }
    
    public List<Decorator<?>> resolveDecorators(Bean<?> bean)
@@ -910,7 +908,7 @@
       if (activeCurrentActivities.size() == 0)
       {
          return CurrentManager.rootManager();
-      } 
+      }
       else if (activeCurrentActivities.size() == 1)
       {
          return activeCurrentActivities.get(0).getManager();
@@ -1041,7 +1039,6 @@
       return rootNamespace;
    }
 
-
    public <T> InjectionTarget<T> createInjectionTarget(Class<T> type)
    {
       throw new UnsupportedOperationException("Not yet implemented");
@@ -1062,8 +1059,6 @@
       throw new UnsupportedOperationException("Not yet implemented");
    }
 
-
-
    public <X> Bean<? extends X> getMostSpecializedBean(Bean<X> bean)
    {
       Bean<?> key = bean;
@@ -1078,15 +1073,12 @@
       return (Bean<X>) key;
    }
 
-
    public void validate(InjectionPoint injectionPoint)
    {
       throw new UnsupportedOperationException("Not yet implemented");
    }
 
-
-   public Set<Annotation> getInterceptorBindingTypeDefinition(
-         Class<? extends Annotation> bindingType)
+   public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? extends Annotation> bindingType)
    {
       throw new UnsupportedOperationException("Not yet implemented");
    }
@@ -1101,8 +1093,7 @@
       throw new UnsupportedOperationException("Not yet implemented");
    }
 
-   public Set<Annotation> getStereotypeDefinition(
-         Class<? extends Annotation> stereotype)
+   public Set<Annotation> getStereotypeDefinition(Class<? extends Annotation> stereotype)
    {
       throw new UnsupportedOperationException("Not yet implemented");
    }
@@ -1112,8 +1103,7 @@
       throw new UnsupportedOperationException("Not yet implemented");
    }
 
-   public boolean isInterceptorBindingType(
-         Class<? extends Annotation> annotationType)
+   public boolean isInterceptorBindingType(Class<? extends Annotation> annotationType)
    {
       throw new UnsupportedOperationException("Not yet implemented");
    }
@@ -1130,32 +1120,32 @@
 
    public <X> Bean<? extends X> getHighestPrecedenceBean(Set<Bean<? extends X>> beans)
    {
-	   if (beans.size() == 1)
-	   {
-		   return beans.iterator().next();
-	   }
-	   else if (beans.isEmpty()) 
-	   {
-		   return null;
-	   }
-	   
-	   // make a copy so that the sort is stable with respect to new deployment types added through the SPI
-	   // TODO This code needs to be in Resolver
-	   // TODO This needs caching
+      if (beans.size() == 1)
+      {
+         return beans.iterator().next();
+      }
+      else if (beans.isEmpty())
+      {
+         return null;
+      }
+
+      // make a copy so that the sort is stable with respect to new deployment types added through the SPI
+      // TODO This code needs to be in Resolver
+      // TODO This needs caching
       final List<Class<? extends Annotation>> enabledDeploymentTypes = getEnabledDeploymentTypes();
-      
-      SortedSet<Bean<? extends X>> sortedBeans = new TreeSet<Bean<? extends X>>(new Comparator<Bean<? extends X>>() 
-      { 
-		   public int compare(Bean<? extends X> o1, Bean<? extends X> o2) 
-		   {
-			   int diff = enabledDeploymentTypes.indexOf(o1) - enabledDeploymentTypes.indexOf(o2);
-			   if (diff == 0)
-			   {
-				   throw new AmbiguousResolutionException();
-			   }
-			   return diff;
-		   }
-      });
+
+      SortedSet<Bean<? extends X>> sortedBeans = new TreeSet<Bean<? extends X>>(new Comparator<Bean<? extends X>>()
+      {
+         public int compare(Bean<? extends X> o1, Bean<? extends X> o2)
+         {
+            int diff = enabledDeploymentTypes.indexOf(o1) - enabledDeploymentTypes.indexOf(o2);
+            if (diff == 0)
+            {
+               throw new AmbiguousResolutionException();
+            }
+            return diff;
+         }
+            });
       sortedBeans.addAll(beans);
       return sortedBeans.last();
    }
@@ -1164,7 +1154,5 @@
    {
       return webbeansELResolver;
    }
-
-
-
+   
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java	2009-06-23 20:42:32 UTC (rev 2871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -104,7 +104,7 @@
             checkFacadeInjectionPoint(injectionPoint, Any.class, Event.class);
             Annotation[] bindings = injectionPoint.getBindings().toArray(new Annotation[0]);
             WBAnnotated<?, ?> annotatedItem = ResolvableWBClass.of(injectionPoint.getType(), bindings, manager);
-            Set<?> resolvedBeans = manager.getBeans(injectionPoint);
+            Set<?> resolvedBeans = manager.getInjectableBeans(injectionPoint);
             if (resolvedBeans.isEmpty())
             {
                throw new UnsatisfiedResolutionException("The injection point " + injectionPoint + " with binding types "  + Names.annotationsToString(injectionPoint.getBindings()) + " in " + bean + " has unsatisfied dependencies with binding types ");

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java	2009-06-23 20:42:32 UTC (rev 2871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -64,6 +64,7 @@
    private WBAnnotated<?, ?> decorates;
    private Set<Annotation> delegateBindings;
    private Type delegateType;
+   private Set<Type> delegateTypes;
    private Set<Type> decoratedTypes;
 
    protected DecoratorBean(WBClass<T> type, BeanManagerImpl manager)
@@ -81,6 +82,7 @@
          initDecoratedTypes();
          initDelegateBindings();
          initDelegateType();
+         checkDelegateType();
       }
    }
 
@@ -124,6 +126,7 @@
    protected void initDelegateType()
    {
       this.delegateType = this.decorates.getBaseType();
+      this.delegateTypes = this.decorates.getTypeClosure();
    }
 
    protected void checkDelegateType()
@@ -174,4 +177,14 @@
       return decoratedTypes;
    }
 
+   /**
+    * The type closure of the delegate type
+    * 
+    * @return the delegateTypes
+    */
+   public Set<Type> getDelegateTypes()
+   {
+      return delegateTypes;
+   }
+
 }

Added: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/DecoratorResolver.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/DecoratorResolver.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/DecoratorResolver.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,65 @@
+/*
+ * 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.webbeans.injection.resolution;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.List;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
+
+import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.bean.DecoratorBean;
+
+/**
+ * @author pmuir
+ *
+ */
+public class DecoratorResolver extends Resolver
+{
+
+   public DecoratorResolver(BeanManagerImpl manager, List<? extends Bean<?>> beans)
+   {
+      super(manager, beans);
+   }
+
+   @Override
+   protected boolean matches(MatchingResolvable resolvable, Bean<?> bean)
+   {
+      if (bean instanceof DecoratorBean)
+      {
+         DecoratorBean<?> decoratorBean = (DecoratorBean<?>) bean;
+         return resolvable.matches(getBeanTypes(decoratorBean), getBeanBindings(decoratorBean)) && getManager().getEnabledDecoratorClasses().contains(decoratorBean.getType());
+      }
+      else
+      {
+         throw new IllegalStateException("Unable to process non container generated decorator!");
+      }
+   }
+
+   private Set<Annotation> getBeanBindings(DecoratorBean<?> bean)
+   {
+      return bean.getDelegateBindings();
+   }
+
+   private Set<Type> getBeanTypes(DecoratorBean<?> bean)
+   {
+      return bean.getDelegateTypes();
+   }
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/DecoratorResolver.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java	2009-06-23 20:42:32 UTC (rev 2871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -2,6 +2,7 @@
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -25,6 +26,16 @@
       }
    }
 
+   public static Resolvable of(Set<Type> typeClosure, Set<Annotation> bindings)
+   {
+      return new ResolvableImpl(bindings, typeClosure);
+   }
+
+   public static Resolvable of(Set<Type> typeClosure, Annotation... bindings)
+   {
+      return new ResolvableImpl(new HashSet<Annotation>(Arrays.asList(bindings)), typeClosure);
+   }
+
    private ResolvableFactory() {}
 
    private static class ResolvableImpl implements Resolvable

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java	2009-06-23 20:42:32 UTC (rev 2871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -47,7 +47,7 @@
 {
    private static final long serialVersionUID = 1L;
    
-   private static abstract class MatchingResolvable extends ForwardingResolvable
+   protected static abstract class MatchingResolvable extends ForwardingResolvable
    {
       
       private final BeanManagerImpl manager;
@@ -144,7 +144,7 @@
       {
          public Set<Bean<?>> call() throws Exception
          {
-            return retainHighestPrecedenceBeans(getMatchingBeans(wrapped, beans), manager.getEnabledDeploymentTypes());
+            return retainHighestPrecedenceBeans(getMatchingBeans(wrapped), manager.getEnabledDeploymentTypes());
          }
 
       };
@@ -207,7 +207,6 @@
 
          public Set<Bean<? extends Object>> call() throws Exception
          {
-            
             Set<Bean<?>> matchedBeans = new HashSet<Bean<?>>();
             for (Bean<?> bean : beans)
             {
@@ -221,8 +220,6 @@
 
       });
    }
-   
-   
 
    /**
     * Filters out the beans with the highest enabled deployment type
@@ -271,12 +268,12 @@
     * @param beans The beans to filter
     * @return A set of filtered beans
     */
-   private static Set<Bean<?>> getMatchingBeans(MatchingResolvable resolvable, List<? extends Bean<?>> beans)
+   private Set<Bean<?>> getMatchingBeans(MatchingResolvable resolvable)
    {
       Set<Bean<?>> resolvedBeans = new HashSet<Bean<?>>();
       for (Bean<?> bean : beans)
       {
-         if (resolvable.matches(bean.getTypes(), bean.getBindings()))
+         if (matches(resolvable, bean))
          {
             resolvedBeans.add(bean);
          }
@@ -284,6 +281,11 @@
       return resolvedBeans;
    }
 
+   protected boolean matches(MatchingResolvable resolvable, Bean<?> bean)
+   {
+      return resolvable.matches(bean.getTypes(), bean.getBindings());
+   }
+
    /**
     * Gets a string representation
     * 
@@ -300,4 +302,9 @@
       return buffer.toString();
    }
 
+   protected BeanManagerImpl getManager()
+   {
+      return manager;
+   }
+
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/BeansXmlParser.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/BeansXmlParser.java	2009-06-23 20:42:32 UTC (rev 2871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/BeansXmlParser.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -141,12 +141,12 @@
                }
                if (child instanceof Element && "interceptors".equals(child.getNodeName()))
                {
-                  decoratorElements.add(new XmlElement(url, (Element) child));
+                  interceptorElements.add(new XmlElement(url, (Element) child));
                }
-               
+
                if (child instanceof Element && "decorators".equals(child.getNodeName()))
                {
-                  interceptorElements.add(new XmlElement(url, (Element) child));
+                  decoratorElements.add(new XmlElement(url, (Element) child));
                }
             }
          }
@@ -171,7 +171,7 @@
          enabledDecoratorClasses = new ArrayList<Class<?>>();
          enabledDecoratorClasses.addAll(processElement(resourceLoader, decoratorElements.get(0)));
       }
-         
+      
       if (interceptorElements.size() > 1)
       {
          throw new DeploymentException("<interceptor> can only be specified once, but it is specified muliple times " + interceptorElements);
@@ -228,7 +228,7 @@
          {
             try
             {
-               list.add(resourceLoader.classForName(className).asSubclass(Annotation.class));
+               list.add(resourceLoader.classForName(className));
             }
             catch (ResourceLoadingException e)
             {
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/AbstractFooDecorator.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/AbstractFooDecorator.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/AbstractFooDecorator.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public class AbstractFooDecorator implements Boo
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/AbstractFooDecorator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bar.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bar.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bar.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Bar
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bar.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Baz.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Baz.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Baz.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,33 @@
+/*
+ * 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.definition;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Baz
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Baz.class));
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Baz.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BazDecorator.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BazDecorator.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BazDecorator.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,32 @@
+/*
+ * 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.definition;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public class BazDecorator implements Baz 
+{
+
+   @Decorates Bazt bazt;
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BazDecorator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bazt.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bazt.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bazt.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,33 @@
+/*
+ * 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.definition;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Bazt extends Baz
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Bazt.class));  
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Bazt.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BaztImpl.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BaztImpl.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BaztImpl.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public class BaztImpl implements Bazt
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/BaztImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Boo.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Boo.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Boo.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Boo
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Boo.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/CowShed.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/CowShed.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/CowShed.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,39 @@
+/*
+ * 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.definition;
+
+import javax.enterprise.inject.Current;
+
+/**
+ * @author pmuir
+ *
+ */
+public class CowShed
+{
+
+   @Current Logger logger;
+
+   @Current Foo foo;
+
+   @Current Bar bar;
+
+   public void milk()
+   {
+      logger.log("milked");
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/CowShed.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,116 @@
+/*
+ * 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.definition;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Set;
+
+import javax.decorator.Decorates;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.Decorator;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.hibernate.tck.annotations.SpecAssertions;
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.jsr299.BeansXml;
+import org.testng.annotations.Test;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Artifact
+ at BeansXml("beans.xml")
+public class DecoratorDefinitionTest extends AbstractJSR299Test
+{
+
+   @Test
+   @SpecAssertions
+   ({
+      @SpecAssertion(section="8.1", id="a"),
+      @SpecAssertion(section="8.1", id="d"),
+      @SpecAssertion(section="8.1.1", id="a"),
+      @SpecAssertion(section="8.1.3", id="c")
+   })
+
+   public void testDecoratorIsManagedBean()
+   {
+      List<Decorator<?>> decorators = getCurrentManager().resolveDecorators(Logger.TYPES);
+      assert decorators.size() == 1;
+      Set<Bean<?>> beans = getCurrentManager().getBeans(TimestampLogger.class);
+      assert beans.size() == 1;
+      assert decorators.get(0).equals(beans.iterator().next());
+   }
+
+   @Test
+   @SpecAssertions
+   ({
+      @SpecAssertion(section="8.1", id="b"),
+      @SpecAssertion(section="8.1", id="c")
+   })
+   public void testDecoratedTypes()
+   {
+      List<Decorator<?>> decorators = getCurrentManager().resolveDecorators(Foo.TYPES);
+      assert decorators.size() == 1;
+      assert decorators.get(0).getDecoratedTypes().size() == 3;
+      assert decorators.get(0).getDecoratedTypes().contains(Foo.class);
+      assert decorators.get(0).getDecoratedTypes().contains(Bar.class);
+      assert decorators.get(0).getDecoratedTypes().contains(Baz.class);
+      assert !decorators.get(0).getDecoratedTypes().contains(Serializable.class);
+      assert !decorators.get(0).getDecoratedTypes().contains(FooDecorator.class);
+      assert !decorators.get(0).getDecoratedTypes().contains(AbstractFooDecorator.class);
+      assert !decorators.get(0).getDecoratedTypes().contains(Boo.class);
+   }
+
+   @Test
+   @SpecAssertion(section="8.1.2", id="a")
+   public void testDelegateInjectionPoint()
+   {
+      List<Decorator<?>> decorators = getCurrentManager().resolveDecorators(Logger.TYPES);
+      assert decorators.size() == 1;
+      Decorator<?> decorator = decorators.get(0);
+      assert decorator.getInjectionPoints().size() == 1;
+      assert decorator.getInjectionPoints().iterator().next().getType().equals(Logger.class);
+      assert decorator.getInjectionPoints().iterator().next().getAnnotated().isAnnotationPresent(Decorates.class);
+      assert decorator.getDelegateType().equals(Logger.class);
+      assert decorator.getDelegateBindings().size() == 1;
+      assert decorator.getDelegateBindings().iterator().next().annotationType().equals(Current.class);
+   }
+
+   @Test
+   @SpecAssertion(section="8.1.3", id="b")
+   public void testDecoratorDoesNotImplementDelegateType()
+   {
+      List<Decorator<?>> decorators = getCurrentManager().resolveDecorators(Baz.TYPES);
+      assert decorators.size() == 2;
+   }
+
+   @Test
+   @SpecAssertion(section="8.2", id="a")
+   public void testNonEnabledDecoratorNotResolved()
+   {
+      List<Decorator<?>> decorators = getCurrentManager().resolveDecorators(Field.TYPES);
+      assert decorators.size() == 0;
+   }
+
+
+
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Field.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Field.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Field.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,31 @@
+/*
+ * 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.definition;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Field
+{
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Field.class));
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Field.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldDecorator.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldDecorator.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldDecorator.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,32 @@
+/*
+ * 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.definition;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public class FieldDecorator implements Field
+{
+
+   @Decorates Field field;
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldDecorator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldImpl.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldImpl.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldImpl.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public class FieldImpl implements Field
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FieldImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Foo.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Foo.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Foo.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,34 @@
+/*
+ * 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.definition;
+
+import java.io.Serializable;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Foo extends Baz, Serializable
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Foo.class));
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Foo.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBar.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBar.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBar.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,33 @@
+/*
+ * 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.definition;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface FooBar extends Foo, Bar
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(FooBar.class));
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBar.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBarImpl.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBarImpl.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBarImpl.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public class FooBarImpl implements FooBar
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooBarImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooDecorator.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooDecorator.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooDecorator.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,32 @@
+/*
+ * 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.definition;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public class FooDecorator extends AbstractFooDecorator implements Foo, Bar
+{
+
+   @Decorates FooBar foobar;
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/FooDecorator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Logger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Logger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Logger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,35 @@
+/*
+ * 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.definition;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Logger
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Logger.class));
+
+   public void log(String string);
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Logger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Meta.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Meta.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Meta.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.tests.decorators.definition;
+
+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 static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Meta
+{
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/Meta.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/MockLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/MockLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/MockLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,41 @@
+/*
+ * 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.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public class MockLogger implements Logger
+{
+
+   private static String log = "";
+
+   public void log(String string)
+   {
+      log += string;
+   }
+
+   /**
+    * @return the log
+    */
+   public static String getLog()
+   {
+      return log;
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/MockLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/TimestampLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/TimestampLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/TimestampLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,32 @@
+/*
+ * 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.definition;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public abstract class TimestampLogger implements Logger
+{
+
+   @Decorates Logger logger;
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/TimestampLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,42 @@
+/*
+ * 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.definition.broken.finalBeanClass;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.DefinitionError;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ExpectedDeploymentException;
+import org.testng.annotations.Test;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Artifact
+ at ExpectedDeploymentException(DefinitionError.class)
+public class FinalBeanClassTest extends AbstractJSR299Test
+{
+
+   @Test(groups="ri-broken")
+   @SpecAssertion(section="8.1.2", id="d")
+   public void testAppliesToFinalManagedBeanClass()
+   {
+
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/Logger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/Logger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/Logger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,35 @@
+/*
+ * 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.definition.broken.finalBeanClass;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Logger
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Logger.class));
+
+   public void log(String string);
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/Logger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/MockLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/MockLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/MockLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,41 @@
+/*
+ * 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.definition.broken.finalBeanClass;
+
+/**
+ * @author pmuir
+ *
+ */
+public final class MockLogger implements Logger
+{
+
+   private static String log = "";
+
+   public void log(String string)
+   {
+      log += string;
+   }
+
+   /**
+    * @return the log
+    */
+   public static String getLog()
+   {
+      return log;
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/MockLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/TimestampLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/TimestampLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/TimestampLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,33 @@
+/*
+ * 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.definition.broken.finalBeanClass;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public abstract class TimestampLogger implements Logger
+{
+
+   @Decorates private Logger logger;
+
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/TimestampLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/Logger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/Logger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/Logger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,35 @@
+/*
+ * 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.definition.broken.multipleDelegateInjectionPoints;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Logger
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Logger.class));
+
+   public void log(String string);
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/Logger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MockLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MockLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MockLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,41 @@
+/*
+ * 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.definition.broken.multipleDelegateInjectionPoints;
+
+/**
+ * @author pmuir
+ *
+ */
+public class MockLogger implements Logger
+{
+
+   private static String log = "";
+
+   public void log(String string)
+   {
+      log += string;
+   }
+
+   /**
+    * @return the log
+    */
+   public static String getLog()
+   {
+      return log;
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MockLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,42 @@
+/*
+ * 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.definition.broken.multipleDelegateInjectionPoints;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.DefinitionError;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ExpectedDeploymentException;
+import org.testng.annotations.Test;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Artifact
+ at ExpectedDeploymentException(DefinitionError.class)
+public class MultipleDelegateInjectionPointsTest extends AbstractJSR299Test
+{
+
+   @Test
+   @SpecAssertion(section="8.1.2", id="ca")
+   public void testMultipleDelegateInjectionPoints()
+   {
+
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/TimestampLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/TimestampLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/TimestampLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,33 @@
+/*
+ * 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.definition.broken.multipleDelegateInjectionPoints;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public abstract class TimestampLogger implements Logger
+{
+
+   @Decorates Logger logger;
+   @Decorates Logger logger2;
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/TimestampLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/Logger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/Logger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/Logger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,35 @@
+/*
+ * 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.definition.broken.noDelegateInjectionPoints;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Logger
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Logger.class));
+
+   public void log(String string);
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/Logger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/MockLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/MockLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/MockLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,41 @@
+/*
+ * 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.definition.broken.noDelegateInjectionPoints;
+
+/**
+ * @author pmuir
+ *
+ */
+public class MockLogger implements Logger
+{
+
+   private static String log = "";
+
+   public void log(String string)
+   {
+      log += string;
+   }
+
+   /**
+    * @return the log
+    */
+   public static String getLog()
+   {
+      return log;
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/MockLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,42 @@
+/*
+ * 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.definition.broken.noDelegateInjectionPoints;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.DefinitionError;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ExpectedDeploymentException;
+import org.testng.annotations.Test;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Artifact
+ at ExpectedDeploymentException(DefinitionError.class)
+public class NoDelegateInjectionPointsTest extends AbstractJSR299Test
+{
+
+   @Test
+   @SpecAssertion(section="8.1.2", id="cb")
+   public void testNoDelegateInjectionPoints()
+   {
+
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/TimestampLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/TimestampLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/TimestampLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,30 @@
+/*
+ * 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.definition.broken.noDelegateInjectionPoints;
+
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public abstract class TimestampLogger implements Logger
+{
+
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/TimestampLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/EnhancedLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/EnhancedLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/EnhancedLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.definition.broken.notAllDecoratedTypesImplemented;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface EnhancedLogger
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/EnhancedLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/Logger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/Logger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/Logger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,35 @@
+/*
+ * 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.definition.broken.notAllDecoratedTypesImplemented;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author pmuir
+ *
+ */
+public interface Logger
+{
+
+   public static final Set<Type> TYPES = new HashSet<Type>(Arrays.asList(Logger.class));
+
+   public void log(String string);
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/Logger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/MockLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/MockLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/MockLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,41 @@
+/*
+ * 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.definition.broken.notAllDecoratedTypesImplemented;
+
+/**
+ * @author pmuir
+ *
+ */
+public class MockLogger implements Logger, EnhancedLogger
+{
+
+   private static String log = "";
+
+   public void log(String string)
+   {
+      log += string;
+   }
+
+   /**
+    * @return the log
+    */
+   public static String getLog()
+   {
+      return log;
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/MockLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,42 @@
+/*
+ * 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.definition.broken.notAllDecoratedTypesImplemented;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.DefinitionError;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ExpectedDeploymentException;
+import org.testng.annotations.Test;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Artifact
+ at ExpectedDeploymentException(DefinitionError.class)
+public class NotAllDecoratedTypesImplementedTest extends AbstractJSR299Test
+{
+
+   @Test
+   @SpecAssertion(section="8.1.3", id="a")
+   public void testNotAllDecoratedTypesImplemented()
+   {
+
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/TimestampLogger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/TimestampLogger.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/TimestampLogger.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,32 @@
+/*
+ * 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.definition.broken.notAllDecoratedTypesImplemented;
+
+import javax.decorator.Decorates;
+import javax.decorator.Decorator;
+
+/**
+ * @author pmuir
+ *
+ */
+ at Decorator
+public abstract class TimestampLogger implements Logger, EnhancedLogger
+{
+
+   @Decorates private Logger logger;
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/TimestampLogger.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DataAccessImpl.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DataAccessImpl.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DataAccessImpl.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,71 @@
+/*
+ * 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.deployment.lifecycle;
+
+/**
+ * @author pmuir
+ *
+ */
+public class DataAccessImpl implements DataAccess
+{
+
+   /* (non-Javadoc)
+    * @see org.jboss.jsr299.tck.tests.deployment.lifecycle.DataAccess#delete()
+    */
+   public void delete()
+   {
+      // TODO Auto-generated method stub
+
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.jsr299.tck.tests.deployment.lifecycle.DataAccess#getDataType()
+    */
+   public Class<?> getDataType()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.jsr299.tck.tests.deployment.lifecycle.DataAccess#getId()
+    */
+   public Object getId()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.jsr299.tck.tests.deployment.lifecycle.DataAccess#load(java.lang.Object)
+    */
+   public Object load(Object id)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.jsr299.tck.tests.deployment.lifecycle.DataAccess#save()
+    */
+   public void save()
+   {
+      // TODO Auto-generated method stub
+
+   }
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DataAccessImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/AnimalImpl.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/AnimalImpl.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/AnimalImpl.java	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,26 @@
+/*
+ * 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.implementation.simple.definition;
+
+/**
+ * @author pmuir
+ *
+ */
+public class AnimalImpl implements Animal
+{
+
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/AnimalImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/beans.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,7 @@
+<beans> 
+   <decorators>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.BazDecorator</class>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.FooDecorator</class>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.TimestampLogger</class>
+   </decorators>
+</beans>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/beans.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,5 @@
+<beans> 
+   <decorators>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanClass.TimestampLogger</class>
+   </decorators>
+</beans>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/beans.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,5 @@
+<beans> 
+   <decorators>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.broken.multipleDelegateInjectionPoints.TimestampLogger</class>
+   </decorators>
+</beans>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/beans.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,5 @@
+<beans> 
+   <decorators>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.broken.noDelegateInjectionPoints.TimestampLogger</class>
+   </decorators>
+</beans>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/beans.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,5 @@
+<beans> 
+   <decorators>
+      <class>org.jboss.jsr299.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented.TimestampLogger</class>
+   </decorators>
+</beans>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/lifecycle/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/lifecycle/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/lifecycle/beans.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -0,0 +1,10 @@
+<beans> 
+   <deploy>
+      <type>javax.enterprise.inject.deployment.Standard</type>
+      <type>javax.enterprise.inject.deployment.Production</type>
+      <type>org.jboss.jsr299.tck.tests.definition.deployment.AnotherDeploymentType</type>
+      <type>org.jboss.jsr299.tck.tests.definition.deployment.HornedAnimalDeploymentType</type>
+      <type>org.jboss.jsr299.tck.tests.definition.deployment.NotInheritedDeploymentType</type>
+      <type>org.jboss.jsr299.tck.tests.definition.deployment.InheritedDeploymentType</type>
+   </deploy>
+</beans>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/deployment/lifecycle/beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml	2009-06-23 20:42:32 UTC (rev 2871)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml	2009-06-23 21:09:52 UTC (rev 2872)
@@ -3541,10 +3541,14 @@
 in Section 5.1, "Typesafe resolution algorithm".</text>
     </assertion>
     
-    <assertion id="c">
-      <text>A decorator must have exactly one delegate injection point. If a decorator has more than one delegate injection point, or does not have a delegate injection point, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    <assertion id="ca">
+      <text>A decorator must have exactly one delegate injection point. If a decorator has more than one delegate injection point~, or does not have a delegate injection point,~ the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
     </assertion>
     
+    <assertion id="cb">
+      <text>A decorator must have exactly one delegate injection point. If a decorator ~has more than one delegate injection point, or~ does not have a delegate injection point, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
     <assertion id="d">
       <text>If a decorator applies to a managed bean, and the bean class is declared final, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
     </assertion>




More information about the weld-commits mailing list