Author: alien11689 Date: Sun Sep 4 09:03:08 2016 New Revision: 1759156 URL: http://svn.apache.org/viewvc?rev=1759156&view=rev Log: [ARIES-1602] Use @javax.inject.Qualifier via spi handler
Added: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/QualifierHandler.java aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/spi/QualifingAnnotationFinder.java aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder - copied, changed from r1758919, aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Extensions.java aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Extensions.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Extensions.java?rev=1759156&r1=1759155&r2=1759156&view=diff ============================================================================== --- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Extensions.java (original) +++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Extensions.java Sun Sep 4 09:03:08 2016 @@ -27,6 +27,7 @@ import org.apache.aries.blueprint.plugin import org.apache.aries.blueprint.plugin.spi.InjectLikeHandler; import org.apache.aries.blueprint.plugin.spi.MethodAnnotationHandler; import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler; +import org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder; import org.apache.aries.blueprint.plugin.spi.ValueInjectionHandler; import java.lang.annotation.Annotation; @@ -46,6 +47,7 @@ public class Extensions { public static final List<MethodAnnotationHandler<? extends Annotation>> methodAnnotationHandlers = new ArrayList<>(); public static final List<FieldAnnotationHandler<? extends Annotation>> fieldAnnotationHandlers = new ArrayList<>(); public static final List<Class<? extends Annotation>> factoryMethodAnnotationClasses = new ArrayList<>(); + public static final List<Class<? extends Annotation>> qualifingAnnotationClasses = new ArrayList<>(); static { for (BeanFinder beanFinder : ServiceLoader.load(BeanFinder.class)) { @@ -90,5 +92,9 @@ public class Extensions { for (FactoryMethodFinder<? extends Annotation> factoryMethodFinder : ServiceLoader.load(FactoryMethodFinder.class)) { factoryMethodAnnotationClasses.add((Class<? extends Annotation>) factoryMethodFinder.factoryMethodAnnotation()); } + + for (QualifingAnnotationFinder<? extends Annotation> qualifingAnnotationFinder : ServiceLoader.load(QualifingAnnotationFinder.class)) { + qualifingAnnotationClasses.add((Class<? extends Annotation>) qualifingAnnotationFinder.getAnnotation()); + } } } Added: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/QualifierHandler.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/QualifierHandler.java?rev=1759156&view=auto ============================================================================== --- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/QualifierHandler.java (added) +++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/QualifierHandler.java Sun Sep 4 09:03:08 2016 @@ -0,0 +1,30 @@ +/** + * 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.aries.blueprint.plugin.javax; + +import org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder; + +import javax.inject.Qualifier; + +public class QualifierHandler implements QualifingAnnotationFinder<Qualifier> { + @Override + public Class<Qualifier> getAnnotation() { + return Qualifier.class; + } +} Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java?rev=1759156&r1=1759155&r2=1759156&view=diff ============================================================================== --- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java (original) +++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java Sun Sep 4 09:03:08 2016 @@ -21,7 +21,6 @@ package org.apache.aries.blueprint.plugi import org.apache.aries.blueprint.plugin.Extensions; import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler; -import javax.inject.Qualifier; import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Field; @@ -69,8 +68,14 @@ public class BeanRef implements Comparab } } - private Qualifier isQualifier(Annotation ann) { - return ann.annotationType().getAnnotation(Qualifier.class); + private Object isQualifier(Annotation ann) { + for (Class<? extends Annotation> qualifingAnnotationClass : Extensions.qualifingAnnotationClasses) { + Object annotation = ann.annotationType().getAnnotation(qualifingAnnotationClass); + if (annotation != null) { + return annotation; + } + } + return null; } public static String getBeanName(Class<?> clazz) { Added: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/spi/QualifingAnnotationFinder.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/spi/QualifingAnnotationFinder.java?rev=1759156&view=auto ============================================================================== --- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/spi/QualifingAnnotationFinder.java (added) +++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/spi/QualifingAnnotationFinder.java Sun Sep 4 09:03:08 2016 @@ -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.aries.blueprint.plugin.spi; + +import java.lang.annotation.Annotation; + +public interface QualifingAnnotationFinder<A extends Annotation> { + Class<A> getAnnotation(); +} \ No newline at end of file Copied: aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder (from r1758919, aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler) URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder?p2=aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder&p1=aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler&r1=1758919&r2=1759156&rev=1759156&view=diff ============================================================================== --- aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler (original) +++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder Sun Sep 4 09:03:08 2016 @@ -15,8 +15,4 @@ # limitations under the License. # -org.apache.aries.blueprint.plugin.pax.OsgiServiceProviderHandler -org.apache.aries.blueprint.plugin.spring.LazyAttributeResolver -org.apache.aries.blueprint.plugin.spring.DependsOnAttributeResolver -org.apache.aries.blueprint.plugin.spring.SpringTransactionalFactory -org.apache.aries.blueprint.plugin.javax.JavaxTransactionFactory \ No newline at end of file +org.apache.aries.blueprint.plugin.javax.QualifierHandler \ No newline at end of file