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


Reply via email to