Hmm What would you have expected as description? This is part of cdi 1.1 impl one - at least i thought Le 19 déc. 2014 23:26, "Mark Struberg" <[email protected]> a écrit :
> Romain, PLEASE create JIRAs for such tasks. We totally loose oversight > otherwise. > > LieGrue, > strub > > > > > > > On Friday, 19 December 2014, 16:21, "[email protected]" < > [email protected]> wrote: > > > Author: rmannibucau > > Date: Fri Dec 19 15:21:49 2014 > > New Revision: 1646768 > > > > URL: http://svn.apache.org/r1646768 > > Log: > > rewriting @AroundConstruct selection to ensure to use a single > constructor and > > avoid to use an aggregated view - including proxy oriented constructors > > > > Modified: > > > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java > > > > Modified: > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java > > URL: > > > http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java?rev=1646768&r1=1646767&r2=1646768&view=diff > > > ============================================================================== > > --- > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java > > (original) > > +++ > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java > > Fri Dec 19 15:21:49 2014 > > @@ -269,67 +269,53 @@ public class InterceptorResolutionServic > > > > > > > allUsedCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.POST_CONSTRUCT, > > interceptorBindings)); > > > > > allUsedCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.PRE_DESTROY, > > interceptorBindings)); > > + } > > > > - if (!annotatedType.getConstructors().isEmpty()) > > + AnnotatedConstructor<?> constructorToUse = null; > > + if (!annotatedType.getConstructors().isEmpty()) // avoid to use > class > > annotations for not used constructors > > + { > > + for (final AnnotatedConstructor<?> c : > > annotatedType.getConstructors()) > > { > > - for (final AnnotatedConstructor<?> c : > > annotatedType.getConstructors()) > > + if (constructorToUse == null && > > c.getParameters().isEmpty()) > > { > > - final Set<Annotation> constructorAnnot = > > > webBeansContext.getAnnotationManager().getInterceptorAnnotations(c.getAnnotations()); > > - if (constructorAnnot.isEmpty()) > > - { > > - > > > allUsedCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > interceptorBindings)); > > - } > > - else > > - { > > - > constructorAnnot.addAll(classInterceptorBindings); > > - > > > allUsedCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > AnnotationUtil.asArray(constructorAnnot))); > > - } > > + constructorToUse = c; > > + } > > + else if (c.getAnnotation(Inject.class) != null) > > + { > > + constructorToUse = c; > > + break; > > } > > - } > > - else > > - { > > - > > > allUsedCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > interceptorBindings)); > > } > > } > > - > > - if (!annotatedType.getConstructors().isEmpty()) > > + if (constructorToUse != null) > > { > > - for (final AnnotatedConstructor<?> c : > > annotatedType.getConstructors()) > > + final Set<Annotation> constructorAnnot = > > > webBeansContext.getAnnotationManager().getInterceptorAnnotations(constructorToUse.getAnnotations()); > > + for (final Annotation classA : classInterceptorBindings) > > { > > - final Set<Annotation> constructorAnnot = > > > webBeansContext.getAnnotationManager().getInterceptorAnnotations(c.getAnnotations()); > > - if (constructorAnnot.isEmpty()) > > + boolean overriden = false; > > + for (final Annotation consA : constructorAnnot) > > { > > - if (interceptorBindings != null) > > + if (classA.annotationType() == > consA.annotationType()) > > { > > - > > > allUsedConstructorCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > interceptorBindings)); > > + overriden = true; > > + break; > > } > > } > > - else > > + if (!overriden) > > { > > - for (final Annotation classA : > classInterceptorBindings) > > - { > > - boolean overriden = false; > > - for (final Annotation consA : constructorAnnot) > > - { > > - if (classA.annotationType() == > > consA.annotationType()) > > - { > > - overriden = true; > > - break; > > - } > > - } > > - if (!overriden) > > - { > > - constructorAnnot.add(classA); > > - } > > - } > > - > > > allUsedConstructorCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > AnnotationUtil.asArray(constructorAnnot))); > > + constructorAnnot.add(classA); > > } > > } > > + if (!constructorAnnot.isEmpty()) > > + { > > + > > > allUsedConstructorCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > AnnotationUtil.asArray(constructorAnnot))); > > + } > > } > > else if (interceptorBindings != null) > > { > > > > > allUsedConstructorCdiInterceptors.addAll(beanManagerImpl.resolveInterceptors(InterceptionType.AROUND_CONSTRUCT, > > interceptorBindings)); > > } > > + > allUsedCdiInterceptors.addAll(allUsedConstructorCdiInterceptors); > > } > > > > /** > > @@ -389,7 +375,7 @@ public class InterceptorResolutionServic > > } > > } > > > > - private <T> void > > collectEjbInterceptors(List<Interceptor<?>> ejbInterceptors, > > Annotated annotated, boolean unproxyable, Set<Type> types) > > + private void collectEjbInterceptors(List<Interceptor<?>> > > ejbInterceptors, Annotated annotated, boolean unproxyable, Set<Type> > > types) > > { > > Interceptors interceptorsAnnot = > > annotated.getAnnotation(Interceptors.class); > > if (interceptorsAnnot != null) > > >
