Deleted this now and it seems another change already fixed the issue you had. 
At least we have the exact same amount of tests failing like before removing 
OwbAnnotated... And AlternativeMetadataTest now is all green as well.

LieGrue,
strub


On Wednesday, 2 July 2014, 21:38, Mark Struberg <[email protected]> wrote:
 

>
>
>I'm afraid I have to revert this commit. 
>
>It breaks quite a few other tests. I also would like to avoid having code 
>which differentiates between OwbAnnotated and 3rd party annotated. We've been 
>there in owb-1.0.x and there was a good reason why we got rid of this in 
>owb-1.2.x
>
>Romain, do you still remember which test it was which caused you to add this? 
>Maybe there is another solution for the underlying problem.
>
>LieGrue,
>strub
>
>
>
>On Saturday, 28 June 2014, 18:58, "[email protected]" 
><[email protected]> wrote:
>
>
>>
>>
>>Author: rmannibucau
>>Date: Sat Jun 28 16:58:29 2014
>>New Revision: 1606380
>>
>>URL: http://svn.apache.org/r1606380
>>Log:
>>OWB-979 isOverridden in AnnotatedTypeImpl was not checking annotations, note: 
>>we can still enhance the algo checking only CDI annotations
>>
>>Added:
>>    
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/OwbAnnotated.java
>>Removed:
>>    
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/BeanAttributesImpl.java.cdi-1.1
>>Modified:
>>    
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/BeanAttributesBuilder.java
>>    
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
>>    
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
>>    openwebbeans/trunk/webbeans-tck/testng-dev.xml
>>
>>Modified: 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/BeanAttributesBuilder.java
>>URL: 
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/BeanAttributesBuilder.java?rev=1606380&r1=1606379&r2=1606380&view=diff
>>==============================================================================
>>--- 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/BeanAttributesBuilder.java
>> (original)
>>+++ 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/BeanAttributesBuilder.java
>> Sat Jun 28 16:58:29 2014
>>@@ -21,6 +21,7 @@ package org.apache.webbeans.component.cr
>>import java.lang.annotation.Annotation;
>>import java.lang.reflect.Method;
>>import java.lang.reflect.Type;
>>+import java.util.Collections;
>>import java.util.HashSet;
>>import java.util.Iterator;
>>import java.util.List;
>>@@ -28,8 +29,10 @@ import java.util.Set;
>>
>>import javax.enterprise.context.Dependent;
>>import javax.enterprise.context.NormalScope;
>>+import javax.enterprise.inject.Alternative;
>>import javax.enterprise.inject.Any;
>>import javax.enterprise.inject.Specializes;
>>+import javax.enterprise.inject.Stereotype;
>>import javax.enterprise.inject.spi.Annotated;
>>import javax.enterprise.inject.spi.AnnotatedField;
>>import javax.enterprise.inject.spi.AnnotatedMember;
>>@@ -50,10 +53,14 @@ import org.apache.webbeans.config.WebBea
>>import org.apache.webbeans.container.ExternalScope;
>>import org.apache.webbeans.exception.WebBeansConfigurationException;
>>import javax.enterprise.inject.spi.DefinitionException;
>>+
>>+import org.apache.webbeans.inject.AlternativesManager;
>>import org.apache.webbeans.logger.WebBeansLoggerFacade;
>>+import org.apache.webbeans.portable.OwbAnnotated;
>>import org.apache.webbeans.util.AnnotationUtil;
>>import org.apache.webbeans.util.Asserts;
>>import org.apache.webbeans.util.ClassUtil;
>>+import org.apache.webbeans.util.GenericsUtil;
>>import org.apache.webbeans.util.WebBeansUtil;
>>
>>/**
>>@@ -130,15 +137,20 @@ public abstract class BeanAttributesBuil
>>         }
>>         else
>>         {
>>-            Set<Type> types = annotated.getTypeClosure();
>>+            // if already computed then reuse it otherwise
>>+            Set<Type> types = OwbAnnotated.class.isInstance(annotated) ?
>>+                                    annotated.getTypeClosure() : 
>>GenericsUtil.getTypeClosure(baseType, baseType);
>>             this.types.addAll(types);
>>             Set<String> ignored = 
>>webBeansContext.getOpenWebBeansConfiguration().getIgnoredInterfaces();
>>-            for (Iterator<Type> i = this.types.iterator(); i.hasNext();)
>>+            if (!ignored.isEmpty())
>>             {
>>-                Type t = i.next();
>>-                if (t instanceof Class && 
>>ignored.contains(((Class<?>)t).getName()))
>>+                for (Iterator<Type> i = this.types.iterator(); i.hasNext();)
>>                 {
>>-                    i.remove();
>>+                    Type t = i.next();
>>+                    if (t instanceof Class && 
>>ignored.contains(((Class<?>)t).getName()))
>>+                    {
>>+                        i.remove();
>>+                    }
>>                 }
>>             }
>>         }
>>@@ -468,11 +480,42 @@ public abstract class BeanAttributesBuil
>>             }
>>         }
>>     }
>>-    
>>+
>>+    // these alternatives can be not activated
>>     protected void defineAlternative()
>>     {
>>-        alternative = false;
>>+        final AlternativesManager alternativesManager = 
>>webBeansContext.getAlternativesManager();
>>+        alternative = alternativesManager.isAlternative(getType(), 
>>Collections.<Class<? extends Annotation>>emptySet());
>>+        if (alternative)
>>+        {
>>+            alternative = true;
>>+            return;
>>+        }
>>+
>>+        for (final Annotation a : annotated.getAnnotations())
>>+        {
>>+            final Class<? extends Annotation> annotationType = 
>>a.annotationType();
>>+            if (annotationType == Alternative.class)
>>+            {
>>+                alternative = true;
>>+                return;
>>+            }
>>+
>>+            if (annotationType.getAnnotation(Stereotype.class) != null)
>>+            {
>>+                for (final Annotation aa : annotationType.getAnnotations())
>>+                {
>>+                    if (aa.annotationType() == Alternative.class)
>>+                    {
>>+                        alternative = true;
>>+                        return;
>>+                    }
>>+                }
>>+            }
>>+        }
>>     }
>>+
>>+    protected abstract Class<?> getType();
>>    
>>     public static class BeanAttributesBuilderFactory
>>     {
>>@@ -558,6 +601,12 @@ public abstract class BeanAttributesBuil
>>         }
>>
>>         @Override
>>+        protected Class<?> getType()
>>+        {
>>+            return annotated.getJavaClass();
>>+        }
>>+
>>+        @Override
>>         protected AnnotatedType<? super C> getSuperAnnotated()
>>         {
>>             AnnotatedType<? super C> annotatedType = getAnnotated();
>>@@ -585,6 +634,12 @@ public abstract class BeanAttributesBuil
>>         }
>>
>>         @Override
>>+        protected Class<?> getType()
>>+        {
>>+            return annotated.getJavaMember().getType();
>>+        }
>>+
>>+        @Override
>>         protected void defineScope()
>>         {
>>             defineScope("Annotated producer field: " + 
>>getAnnotated().getJavaMember() +  "must declare default @Scope annotation");
>>@@ -627,6 +682,12 @@ public abstract class BeanAttributesBuil
>>         }
>>
>>         @Override
>>+        protected Class<?> getType()
>>+        {
>>+            return annotated.getJavaMember().getReturnType();
>>+        }
>>+
>>+        @Override
>>         protected void defineScope()
>>         {
>>             defineScope("Annotated producer method : " + 
>>getAnnotated().getJavaMember() +  "must declare default @Scope annotation");
>>
>>Modified: 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
>>URL: 
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java?rev=1606380&r1=1606379&r2=1606380&view=diff
>>==============================================================================
>>--- 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
>> (original)
>>+++ 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
>> Sat Jun 28 16:58:29 2014
>>@@ -26,7 +26,6 @@ import java.util.Iterator;
>>import java.util.Set;
>>
>>import javax.enterprise.inject.Typed;
>>-import javax.enterprise.inject.spi.Annotated;
>>
>>import org.apache.webbeans.config.WebBeansContext;
>>import org.apache.webbeans.exception.WebBeansConfigurationException;
>>@@ -39,7 +38,7 @@ import org.apache.webbeans.util.Generics
>>  * 
>>  * @version $Rev$ $Date$
>>  */
>>-abstract class AbstractAnnotated implements Annotated
>>+abstract class AbstractAnnotated implements OwbAnnotated
>>{
>>     /**Base type of an annotated element*/
>>     private final Type baseType;
>>@@ -157,12 +156,15 @@ abstract class AbstractAnnotated impleme
>>         {
>>             typeClosures = GenericsUtil.getTypeClosure(baseType, 
>>getOwningClass());
>>             Set<String> ignoredInterfaces = 
>>webBeansContext.getOpenWebBeansConfiguration().getIgnoredInterfaces();
>>-            for (Iterator<Type> i = typeClosures.iterator(); i.hasNext(); )
>>+            if (!ignoredInterfaces.isEmpty())
>>             {
>>-                Type t = i.next();
>>-                if (t instanceof Class && 
>>ignoredInterfaces.contains(((Class<?>)t).getName()))
>>+                for (Iterator<Type> i = typeClosures.iterator(); 
>>i.hasNext(); )
>>                 {
>>-                    i.remove();
>>+                    Type t = i.next();
>>+                    if (t instanceof Class && 
>>ignoredInterfaces.contains(((Class<?>) t).getName()))
>>+                    {
>>+                        i.remove();
>>+                    }
>>                 }
>>             }
>>
>>
>>Modified: 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
>>URL: 
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java?rev=1606380&r1=1606379&r2=1606380&view=diff
>>==============================================================================
>>--- 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
>> (original)
>>+++ 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
>> Sat Jun 28 16:58:29 2014
>>@@ -29,10 +29,14 @@ import java.util.HashSet;
>>import java.util.List;
>>import java.util.Set;
>>
>>+import javax.annotation.PostConstruct;
>>+import javax.annotation.PreDestroy;
>>import javax.enterprise.inject.spi.AnnotatedConstructor;
>>import javax.enterprise.inject.spi.AnnotatedField;
>>import javax.enterprise.inject.spi.AnnotatedMethod;
>>import javax.enterprise.inject.spi.AnnotatedType;
>>+import javax.interceptor.AroundConstruct;
>>+import javax.interceptor.AroundInvoke;
>>
>>import org.apache.webbeans.config.WebBeansContext;
>>import org.apache.webbeans.util.ClassUtil;
>>@@ -262,7 +266,24 @@ class AnnotatedTypeImpl<X>
>>             {
>>                 if (ClassUtil.isOverridden(subclassMethod.getJavaMember(), 
>>superclassMethod.getJavaMember()))
>>                 {
>>-                    return true;
>>+                    final Set<Annotation> superAnnotations = 
>>superclassMethod.getAnnotations();
>>+                    final Set<Annotation> subAnnotations = 
>>subclassMethod.getAnnotations();
>>+                    // check that's not a deactivation of 
>>interceptors/lifecycle
>>+                    // before checking that's the exact same method
>>+                    // TODO: same for EJBs?
>>+                    for (final Annotation a : superAnnotations)
>>+                    {
>>+                        final Class<? extends Annotation> annotationType = 
>>a.annotationType();
>>+                        if (annotationType == AroundConstruct.class || 
>>annotationType == AroundInvoke.class
>>+                            || annotationType == PostConstruct.class || 
>>annotationType == PreDestroy.class)
>>+                        {
>>+                            if (!subAnnotations.contains(a))
>>+                            {
>>+                                return true;
>>+                            }
>>+                        }
>>+                    }
>>+                    return subAnnotations.equals(superAnnotations);
>>                 }
>>             }
>>             return false;
>>
>>Added: 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/OwbAnnotated.java
>>URL: 
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/OwbAnnotated.java?rev=1606380&view=auto
>>==============================================================================
>>--- 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/OwbAnnotated.java
>> (added)
>>+++ 
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/OwbAnnotated.java
>> Sat Jun 28 16:58:29 2014
>>@@ -0,0 +1,25 @@
>>+/*
>>+ * Licensed to the Apache Software Foundation (ASF) under one
>>+ * or more contributor license agreements. See the NOTICE file
>>+ * distributed with this work for additional information
>>+ * regarding copyright ownership. The ASF licenses this file
>>+ * to you 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.apache.webbeans.portable;
>>+
>>+import javax.enterprise.inject.spi.Annotated;
>>+
>>+public interface OwbAnnotated extends Annotated
>>+{
>>+}
>>
>>Modified: openwebbeans/trunk/webbeans-tck/testng-dev.xml
>>URL: 
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-tck/testng-dev.xml?rev=1606380&r1=1606379&r2=1606380&view=diff
>>==============================================================================
>>--- openwebbeans/trunk/webbeans-tck/testng-dev.xml (original)
>>+++ openwebbeans/trunk/webbeans-tck/testng-dev.xml Sat Jun 28 16:58:29 2014
>>@@ -16,21 +16,10 @@
>>     License.
>>-->
>><suite name="JSR-346-TCK" verbose="2" configfailurepolicy="continue" >
>>-
>>     <listeners>
>>-        <!-- Required - avoid randomly mixed test method execution -->
>>         <listener 
>>class-name="org.jboss.cdi.tck.impl.testng.SingleTestClassMethodInterceptor"/>
>>-        <!-- Optional - intended for debug purpose only -->
>>-        <listener 
>>class-name="org.jboss.cdi.tck.impl.testng.ConfigurationLoggingListener"/>
>>         <listener 
>>class-name="org.jboss.cdi.tck.impl.testng.ProgressLoggingTestListener"/>
>>-        <!-- Optional - it's recommended to disable the default JUnit XML 
>>reporter -->
>>-        <listener class-name="org.testng.reporters.SuiteHTMLReporter"/>
>>-        <listener class-name="org.testng.reporters.FailedReporter"/>
>>-        <listener class-name="org.testng.reporters.XMLReporter"/>
>>-        <listener class-name="org.testng.reporters.EmailableReporter"/>
>>-        <listener class-name="org.testng.reporters.TestHTMLReporter"/>
>>     </listeners>
>>-
>>     <test name="JSR-346 TCK">
>>         <groups>
>>             <run>
>>@@ -39,8 +28,7 @@
>>             </run>
>>         </groups>
>>         <classes>
>>-          <class
>>-              
>>name="org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.finalMethod.StaticFinalMethodTest"
>> />
>>+          <class 
>>name="org.jboss.cdi.tck.tests.extensions.beanManager.beanAttributes.CreateBeanAttributesTest"
>> />
>>         </classes>
>>     </test>
>></suite>
>>
>>
>>
>>
>>
>
>

Reply via email to