You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by al...@apache.org on 2017/09/28 17:19:01 UTC
svn commit: r1810013 - in /aries/trunk/blueprint/plugin:
blueprint-maven-plugin-annotation/
blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/
blueprint-maven-plugin-annotation/src/main/java/org/apa...
Author: alien11689
Date: Thu Sep 28 17:19:00 2017
New Revision: 1810013
URL: http://svn.apache.org/viewvc?rev=1810013&view=rev
Log:
[ARIES-1742] Create @Reference annotation for reference element generation
Added:
aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/
aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Availability.java
- copied, changed from r1809640, aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/Availability.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Reference.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/bean/
- copied from r1810012, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/bean/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/collection/
- copied from r1810012, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/collection/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/
- copied from r1810012, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/config/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/init/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/init/BlueprintInitialization.java
- copied, changed from r1810012, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/BlueprintInitialization.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/
- copied from r1810012, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/referencelistener/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/service/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/service/ReferenceHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/BeanWithReferences.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref1.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref2.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref3.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref4.java
Removed:
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/bean/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/BlueprintInitialization.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/collection/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/config/
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/referencelistener/
Modified:
aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml
aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/ReferenceListener.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/bean/BeanHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/collection/CollectionInjectHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigAnnotationHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertiesHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertyInjectionHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigWriter.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerDefinition.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerHandler.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/AnnotationHelper.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ContextInitializationHandler
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ValueInjectionHandler
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml Thu Sep 28 17:19:00 2017
@@ -23,7 +23,7 @@
<groupId>org.apache.aries</groupId>
<artifactId>parent</artifactId>
<version>2.0.1</version>
- <relativePath />
+ <relativePath/>
</parent>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>blueprint-maven-plugin-annotation</artifactId>
@@ -33,8 +33,7 @@
<scm>
<connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation
- </developerConnection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation</developerConnection>
<url>http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation</url>
</scm>
@@ -43,10 +42,11 @@
org.apache.aries.blueprint.annotation.bean,
org.apache.aries.blueprint.annotation.collection,
org.apache.aries.blueprint.annotation.config,
- org.apache.aries.blueprint.annotation.referencelistener
+ org.apache.aries.blueprint.annotation.referencelistener,
+ org.apache.aries.blueprint.annotation.service
</aries.osgi.export.pkg>
- <aries.osgi.import.pkg />
- <aries.osgi.private.pkg />
- <lastReleaseVersion>1.1.0</lastReleaseVersion>
+ <aries.osgi.import.pkg/>
+ <aries.osgi.private.pkg/>
+ <lastReleaseVersion>1.2.0</lastReleaseVersion>
</properties>
</project>
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/ReferenceListener.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/ReferenceListener.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/ReferenceListener.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/ReferenceListener.java Thu Sep 28 17:19:00 2017
@@ -25,7 +25,7 @@ import java.lang.annotation.Target;
/**
* Annotating any class with this will create a
- * reference or referenclist element in blueprint
+ * reference or reference-list element in blueprint
* with annotated bean as reference-listener.
*/
@Target({ElementType.TYPE, ElementType.METHOD})
Copied: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Availability.java (from r1809640, aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/Availability.java)
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Availability.java?p2=aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Availability.java&p1=aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/Availability.java&r1=1809640&r2=1810013&rev=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/referencelistener/Availability.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Availability.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.annotation.referencelistener;
+package org.apache.aries.blueprint.annotation.service;
public enum Availability {
MANDATORY,
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Reference.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Reference.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Reference.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/service/Reference.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,52 @@
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.annotation.service;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotate dependency to inject service.
+ * It will generate reference element.
+ */
+@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Reference {
+ /**
+ * @return filter on reference
+ */
+ String filter() default "";
+
+ /**
+ * @return component-name on reference
+ */
+ String componentName() default "";
+
+ /**
+ * @return if existence of at least one service is necessary
+ */
+ Availability availability() default Availability.MANDATORY;
+
+ /**
+ * @return timeout on reference - negative value means blueprint default
+ */
+ long timeout() default Long.MIN_VALUE;
+}
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml Thu Sep 28 17:19:00 2017
@@ -45,7 +45,8 @@
<blueprint-maven-plugin-spi.version>1.1.0</blueprint-maven-plugin-spi.version>
<blueprint-maven-plugin-spring-handlers.version>1.0.0</blueprint-maven-plugin-spring-handlers.version>
- <blueprint-maven-plugin-annotation.version>1.2.0</blueprint-maven-plugin-annotation.version>
+ <blueprint-maven-plugin-annotation.version>1.2.1-SNAPSHOT</blueprint-maven-plugin-annotation.version>
+ <blueprint-maven-plugin-pax-cdi-handlers.version>1.0.0-SNAPSHOT</blueprint-maven-plugin-pax-cdi-handlers.version>
<javax.inject.version>1</javax.inject.version>
<javax.transaction-api.version>1.2</javax.transaction-api.version>
@@ -66,7 +67,6 @@
<org.apache.aries.transaction.blueprint.version>1.1.1</org.apache.aries.transaction.blueprint.version>
<org.apache.aries.jpa.blueprint.aries.version>1.0.2</org.apache.aries.jpa.blueprint.aries.version>
<org.apache.aries.blueprint.cm.version>1.0.9</org.apache.aries.blueprint.cm.version>
- <blueprint-maven-plugin-pax-cdi-handlers.version>1.0.0-SNAPSHOT</blueprint-maven-plugin-pax-cdi-handlers.version>
</properties>
<scm>
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/bean/BeanHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/bean/BeanHandler.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/bean/BeanHandler.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/bean/BeanHandler.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.bean;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.bean;
import org.apache.aries.blueprint.annotation.bean.Activation;
import org.apache.aries.blueprint.annotation.bean.Bean;
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/collection/CollectionInjectHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/collection/CollectionInjectHandler.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/collection/CollectionInjectHandler.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/collection/CollectionInjectHandler.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.collection;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.collection;
import org.apache.aries.blueprint.annotation.collection.CollectionInject;
import org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler;
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigAnnotationHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigAnnotationHandler.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigAnnotationHandler.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigAnnotationHandler.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.config;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.config;
import java.lang.reflect.AnnotatedElement;
@@ -24,7 +24,6 @@ import org.apache.aries.blueprint.annota
import org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler;
import org.apache.aries.blueprint.plugin.spi.BeanEnricher;
import org.apache.aries.blueprint.plugin.spi.ContextEnricher;
-import org.apache.aries.blueprint.plugin.spi.XmlWriter;
public class ConfigAnnotationHandler implements BeanAnnotationHandler<Config>{
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertiesHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertiesHandler.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertiesHandler.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertiesHandler.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.config;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.config;
import org.apache.aries.blueprint.annotation.config.ConfigProperties;
import org.apache.aries.blueprint.plugin.spi.ContextEnricher;
@@ -26,8 +26,6 @@ import org.apache.aries.blueprint.plugin
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import java.lang.reflect.AnnotatedElement;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
import java.util.Properties;
public class ConfigPropertiesHandler implements CustomDependencyAnnotationHandler<ConfigProperties> {
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertyInjectionHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertyInjectionHandler.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertyInjectionHandler.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigPropertyInjectionHandler.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.config;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.config;
import org.apache.aries.blueprint.annotation.config.ConfigProperty;
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigWriter.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigWriter.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigWriter.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/config/ConfigWriter.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.config;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.config;
import org.apache.aries.blueprint.annotation.config.Config;
import org.apache.aries.blueprint.annotation.config.DefaultProperty;
Copied: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/init/BlueprintInitialization.java (from r1810012, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/BlueprintInitialization.java)
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/init/BlueprintInitialization.java?p2=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/init/BlueprintInitialization.java&p1=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/BlueprintInitialization.java&r1=1810012&r2=1810013&rev=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/BlueprintInitialization.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/init/BlueprintInitialization.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.blueprint;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.init;
import org.apache.aries.blueprint.plugin.spi.ContextEnricher;
import org.apache.aries.blueprint.plugin.spi.ContextInitializationHandler;
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerDefinition.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerDefinition.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerDefinition.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerDefinition.java Thu Sep 28 17:19:00 2017
@@ -16,14 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.referencelistener;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.referencelistener;
class ReferenceListenerDefinition {
final String ref;
final String bind;
final String unbind;
- public ReferenceListenerDefinition(String ref, String bind, String unbind) {
+ ReferenceListenerDefinition(String ref, String bind, String unbind) {
this.ref = ref;
this.bind = getOrNull(bind);
this.unbind = getOrNull(unbind);
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerHandler.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerHandler.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/referencelistener/ReferenceListenerHandler.java Thu Sep 28 17:19:00 2017
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.aries.blueprint.plugin.handlers.referencelistener;
+package org.apache.aries.blueprint.plugin.handlers.blueprint.referencelistener;
import org.apache.aries.blueprint.annotation.referencelistener.Bind;
import org.apache.aries.blueprint.annotation.referencelistener.Cardinality;
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/service/ReferenceHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/service/ReferenceHandler.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/service/ReferenceHandler.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/blueprint/service/ReferenceHandler.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,144 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.handlers.blueprint.service;
+
+import org.apache.aries.blueprint.annotation.service.Reference;
+import org.apache.aries.blueprint.plugin.spi.Availability;
+import org.apache.aries.blueprint.plugin.spi.ContextEnricher;
+import org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler;
+import org.apache.aries.blueprint.plugin.spi.XmlWriter;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class ReferenceHandler implements CustomDependencyAnnotationHandler<Reference> {
+ @Override
+ public Class<Reference> getAnnotation() {
+ return Reference.class;
+ }
+
+ @Override
+ public String handleDependencyAnnotation(AnnotatedElement annotatedElement, String name, ContextEnricher contextEnricher) {
+ Reference reference = annotatedElement.getAnnotation(Reference.class);
+ final Class<?> clazz = getClass(annotatedElement);
+ final String id = name != null ? name : generateReferenceId(clazz, reference, contextEnricher);
+ contextEnricher.addBean(id, clazz);
+ contextEnricher.addBlueprintContentWriter(getWriterId(id, clazz), getXmlWriter(id, clazz, reference, contextEnricher));
+ return id;
+ }
+
+ @Override
+ public String handleDependencyAnnotation(final Class<?> clazz, Reference reference, String name, ContextEnricher contextEnricher) {
+ final String id = name != null ? name : generateReferenceId(clazz, reference, contextEnricher);
+ contextEnricher.addBean(id, clazz);
+ contextEnricher.addBlueprintContentWriter(getWriterId(id, clazz), getXmlWriter(id, clazz, reference, contextEnricher));
+ return id;
+ }
+
+ private XmlWriter getXmlWriter(final String id, final Class<?> clazz, final Reference reference, final ContextEnricher contextEnricher) {
+ return new XmlWriter() {
+ @Override
+ public void write(XMLStreamWriter writer) throws XMLStreamException {
+ writer.writeEmptyElement("reference");
+ writer.writeAttribute("id", id);
+ writer.writeAttribute("interface", clazz.getName());
+ if (!"".equals(reference.filter())) {
+ writer.writeAttribute("filter", reference.filter());
+ }
+ if (!"".equals(reference.componentName())) {
+ writer.writeAttribute("component-name", reference.componentName());
+ }
+ if (needTimeout(reference)) {
+ writer.writeAttribute("timeout", String.valueOf(reference.timeout()));
+ }
+ if (needAvailability(contextEnricher, reference)) {
+ writer.writeAttribute("availability", reference.availability().name().toLowerCase());
+ }
+ }
+ };
+ }
+
+ private boolean needTimeout(Reference reference) {
+ return reference.timeout() >= 0;
+ }
+
+ private boolean needAvailability(ContextEnricher contextEnricher, Reference reference) {
+ org.apache.aries.blueprint.annotation.service.Availability availability = reference.availability();
+ Availability defaultAvailability = contextEnricher.getBlueprintConfiguration().getDefaultAvailability();
+ return defaultAvailability == null && availability.equals(org.apache.aries.blueprint.annotation.service.Availability.OPTIONAL) ||
+ defaultAvailability != null && !defaultAvailability.name().equals(reference.availability().name());
+ }
+
+ private String getWriterId(String id, Class<?> clazz) {
+ return "reference/" + clazz.getName() + "/" + id;
+ }
+
+ private Class<?> getClass(AnnotatedElement annotatedElement) {
+ if (annotatedElement instanceof Class<?>) {
+ return (Class<?>) annotatedElement;
+ }
+ if (annotatedElement instanceof Method) {
+ return ((Method) annotatedElement).getParameterTypes()[0];
+ }
+ if (annotatedElement instanceof Field) {
+ return ((Field) annotatedElement).getType();
+ }
+ throw new RuntimeException("Unknown annotated element");
+ }
+
+ private String generateReferenceId(Class clazz, Reference reference, ContextEnricher contextEnricher) {
+ StringBuilder sb = new StringBuilder();
+ writeBeanNameFromSimpleName(sb, clazz.getSimpleName());
+ sb.append("-");
+ if (!"".equals(reference.filter())) {
+ writeEscapedFilter(sb, reference.filter());
+ }
+ sb.append("-");
+ if (!"".equals(reference.componentName())) {
+ sb.append(reference.componentName());
+ }
+ sb.append("-");
+ if (needAvailability(contextEnricher, reference)) {
+ sb.append(reference.availability().name().toLowerCase());
+ }
+ sb.append("-");
+ if (needTimeout(reference)) {
+ sb.append(reference.timeout());
+ }
+ return sb.toString().replaceAll("-+$", "");
+ }
+
+ private static void writeBeanNameFromSimpleName(StringBuilder sb, String name) {
+ sb.append(name.substring(0, 1).toLowerCase());
+ sb.append(name.substring(1, name.length()));
+ }
+
+ private void writeEscapedFilter(StringBuilder sb, String filter) {
+ for (int c = 0; c < filter.length(); c++) {
+ char ch = filter.charAt(c);
+ if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch >= '0' && ch <= '9') {
+ sb.append(ch);
+ }
+ }
+ }
+
+}
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/AnnotationHelper.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/AnnotationHelper.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/AnnotationHelper.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/AnnotationHelper.java Thu Sep 28 17:19:00 2017
@@ -19,7 +19,6 @@
package org.apache.aries.blueprint.plugin.model;
import org.apache.aries.blueprint.plugin.handlers.Handlers;
-import org.apache.aries.blueprint.plugin.handlers.collection.CollectionInjectHandler;
import org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler;
import org.apache.aries.blueprint.plugin.spi.InjectLikeHandler;
import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler;
Modified: aries/trunk/blueprint/plugin/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/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler Thu Sep 28 17:19:00 2017
@@ -17,6 +17,6 @@
org.apache.aries.blueprint.plugin.handlers.javax.JavaxTransactionFactory
org.apache.aries.blueprint.plugin.handlers.javax.CdiTransactionFactory
-org.apache.aries.blueprint.plugin.handlers.config.ConfigAnnotationHandler
-org.apache.aries.blueprint.plugin.handlers.referencelistener.ReferenceListenerHandler
-org.apache.aries.blueprint.plugin.handlers.bean.BeanHandler
\ No newline at end of file
+org.apache.aries.blueprint.plugin.handlers.blueprint.config.ConfigAnnotationHandler
+org.apache.aries.blueprint.plugin.handlers.blueprint.referencelistener.ReferenceListenerHandler
+org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler
\ No newline at end of file
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder Thu Sep 28 17:19:00 2017
@@ -17,4 +17,4 @@
org.apache.aries.blueprint.plugin.handlers.javax.SingletonBeanFinder
org.apache.aries.blueprint.plugin.handlers.javax.NamedBeanFinder
-org.apache.aries.blueprint.plugin.handlers.bean.BeanHandler
\ No newline at end of file
+org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler
\ No newline at end of file
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CollectionDependencyAnnotationHandler Thu Sep 28 17:19:00 2017
@@ -15,5 +15,5 @@
# limitations under the License.
#
-org.apache.aries.blueprint.plugin.handlers.collection.CollectionInjectHandler
+org.apache.aries.blueprint.plugin.handlers.blueprint.collection.CollectionInjectHandler
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ContextInitializationHandler
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ContextInitializationHandler?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ContextInitializationHandler (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ContextInitializationHandler Thu Sep 28 17:19:00 2017
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.aries.blueprint.plugin.handlers.blueprint.BlueprintInitialization
\ No newline at end of file
+org.apache.aries.blueprint.plugin.handlers.blueprint.init.BlueprintInitialization
\ No newline at end of file
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler Thu Sep 28 17:19:00 2017
@@ -15,4 +15,5 @@
# limitations under the License.
#
-org.apache.aries.blueprint.plugin.handlers.config.ConfigPropertiesHandler
\ No newline at end of file
+org.apache.aries.blueprint.plugin.handlers.blueprint.config.ConfigPropertiesHandler
+org.apache.aries.blueprint.plugin.handlers.blueprint.service.ReferenceHandler
\ No newline at end of file
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder Thu Sep 28 17:19:00 2017
@@ -16,4 +16,4 @@
#
org.apache.aries.blueprint.plugin.handlers.javax.ProducesHandler
-org.apache.aries.blueprint.plugin.handlers.bean.BeanHandler
\ No newline at end of file
+org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler
\ No newline at end of file
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler Thu Sep 28 17:19:00 2017
@@ -16,4 +16,4 @@
#
org.apache.aries.blueprint.plugin.handlers.javax.NamedHandler
-org.apache.aries.blueprint.plugin.handlers.bean.BeanHandler
\ No newline at end of file
+org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler
\ No newline at end of file
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ValueInjectionHandler
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ValueInjectionHandler?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ValueInjectionHandler (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.ValueInjectionHandler Thu Sep 28 17:19:00 2017
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.aries.blueprint.plugin.handlers.config.ConfigPropertyInjectionHandler
+org.apache.aries.blueprint.plugin.handlers.blueprint.config.ConfigPropertyInjectionHandler
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java?rev=1810013&r1=1810012&r2=1810013&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java Thu Sep 28 17:19:00 2017
@@ -30,6 +30,11 @@ import org.apache.aries.blueprint.plugin
import org.apache.aries.blueprint.plugin.test.bean.BeanWithCallbackMethods;
import org.apache.aries.blueprint.plugin.test.bean.NamedBean;
import org.apache.aries.blueprint.plugin.test.bean.SimpleProducedBean;
+import org.apache.aries.blueprint.plugin.test.reference.BeanWithReferences;
+import org.apache.aries.blueprint.plugin.test.reference.Ref1;
+import org.apache.aries.blueprint.plugin.test.reference.Ref2;
+import org.apache.aries.blueprint.plugin.test.reference.Ref3;
+import org.apache.aries.blueprint.plugin.test.reference.Ref4;
import org.apache.aries.blueprint.plugin.test.referencelistener.ReferenceListenerToProduceWithoutAnnotation;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.xbean.finder.ClassFinder;
@@ -82,7 +87,8 @@ public class BlueprintFileWriterTest {
long start = System.currentTimeMillis();
Set<Class<?>> beanClasses = findClasses(classFinder, Arrays.asList(
MyBean1.class.getPackage().getName(),
- ReferenceListenerToProduceWithoutAnnotation.class.getPackage().getName()
+ ReferenceListenerToProduceWithoutAnnotation.class.getPackage().getName(),
+ BeanWithReferences.class.getPackage().getName()
));
Set<String> namespaces = new HashSet<>(Arrays.asList(NS_JPA, NS_TX1));
Map<String, String> customParameters = new HashMap<>();
@@ -920,6 +926,135 @@ public class BlueprintFileWriterTest {
assertXpathEquals(typeConverters, "ref[2]/@component-id", "converter2");
}
+ @Test
+ public void shouldInjectReferenceViaField() throws Exception {
+ Node bean = getBeanById("beanWithReferences");
+ assertXpathEquals(bean, "property[@name='ref1Field']/@ref", "ref1");
+ assertXpathEquals(bean, "property[@name='myRef1Field']/@ref", "myRef1");
+ assertXpathEquals(bean, "property[@name='myRef1FieldAllProps']/@ref", "ref1-a453-r1-optional-2000");
+ assertXpathEquals(bean, "property[@name='myRef1FieldFilter']/@ref", "ref1-x1");
+ }
+
+ @Test
+ public void shouldGenerateReferenceFromBeanField() throws Exception {
+ Node ref1 = getReferenceById("ref1");
+ assertXpathEquals(ref1, "@interface", Ref1.class.getName());
+ Node myRef1 = getReferenceById("myRef1");
+ assertXpathEquals(myRef1, "@interface", Ref1.class.getName());
+ Node ref1a453r1 = getReferenceById("ref1-a453-r1-optional-2000");
+ assertXpathEquals(ref1a453r1, "@interface", Ref1.class.getName());
+ assertXpathEquals(ref1a453r1, "@component-name", "r1");
+ assertXpathEquals(ref1a453r1, "@filter", "(a=453)");
+ assertXpathEquals(ref1a453r1, "@timeout", "2000");
+ assertXpathEquals(ref1a453r1, "@availability", "optional");
+ Node ref1x1 = getReferenceById("ref1-x1");
+ assertXpathEquals(ref1x1, "@interface", Ref1.class.getName());
+ assertXpathEquals(ref1x1, "@filter", "(x=1)");
+ assertXpathEquals(ref1x1, "count(@component-name)", "0");
+ }
+
+ @Test
+ public void shouldInjectReferenceViaSetter() throws Exception {
+ Node bean = getBeanById("beanWithReferences");
+ assertXpathEquals(bean, "property[@name='ref2Setter']/@ref", "ref2");
+ assertXpathEquals(bean, "property[@name='ref2SetterNamed']/@ref", "myRef2");
+ assertXpathEquals(bean, "property[@name='ref2SetterFull']/@ref", "ref2-b453-r2-optional-1000");
+ assertXpathEquals(bean, "property[@name='ref2SetterComponent']/@ref", "ref2--blablabla");
+ }
+
+ @Test
+ public void shouldGenerateReferenceFromBeanSetter() throws Exception {
+ Node ref2 = getReferenceById("ref2");
+ assertXpathEquals(ref2, "@interface", Ref2.class.getName());
+ Node myRef2 = getReferenceById("myRef2");
+ assertXpathEquals(myRef2, "@interface", Ref2.class.getName());
+ Node ref1b453r2 = getReferenceById("ref2-b453-r2-optional-1000");
+ assertXpathEquals(ref1b453r2, "@interface", Ref2.class.getName());
+ assertXpathEquals(ref1b453r2, "@component-name", "r2");
+ assertXpathEquals(ref1b453r2, "@filter", "(b=453)");
+ assertXpathEquals(ref1b453r2, "@timeout", "1000");
+ assertXpathEquals(ref1b453r2, "@availability", "optional");
+ Node ref2blablabla = getReferenceById("ref2--blablabla");
+ assertXpathEquals(ref2blablabla, "@interface", Ref2.class.getName());
+ assertXpathEquals(ref2blablabla, "@component-name", "blablabla");
+ assertXpathEquals(ref2blablabla, "count(@filter)", "0");
+ }
+
+ @Test
+ public void shouldInjectReferenceViaConstructor() throws Exception {
+ Node bean = getBeanById("beanWithReferences");
+ assertXpathEquals(bean, "argument[1]/@ref", "ref1");
+ assertXpathEquals(bean, "argument[2]/@ref", "ref2---optional-20000");
+ assertXpathEquals(bean, "argument[3]/@ref", "ref1-y3");
+ assertXpathEquals(bean, "argument[4]/@ref", "ref1--compForConstr");
+ assertXpathEquals(bean, "argument[5]/@ref", "ref1-y3-compForConstr");
+ assertXpathEquals(bean, "argument[6]/@ref", "ref1ForCons");
+ }
+
+ @Test
+ public void shouldGenerateReferenceFromBeanConstructor() throws Exception {
+ Node ref1 = getReferenceById("ref1");
+ assertXpathEquals(ref1, "@interface", Ref1.class.getName());
+ Node ref2optional20000 = getReferenceById("ref2---optional-20000");
+ assertXpathEquals(ref2optional20000, "@interface", Ref2.class.getName());
+ assertXpathEquals(ref2optional20000, "@timeout", "20000");
+ assertXpathEquals(ref2optional20000, "@availability", "optional");
+ Node ref1y3 = getReferenceById("ref1-y3");
+ assertXpathEquals(ref1y3, "@interface", Ref1.class.getName());
+ assertXpathEquals(ref1y3, "count(@component-name)", "0");
+ assertXpathEquals(ref1y3, "@filter", "(y=3)");
+ Node ref1compForConstr = getReferenceById("ref1--compForConstr");
+ assertXpathEquals(ref1compForConstr, "@interface", Ref1.class.getName());
+ assertXpathEquals(ref1compForConstr, "@component-name", "compForConstr");
+ assertXpathEquals(ref1compForConstr, "count(@filter)", "0");
+ Node ref1y3compForConstr = getReferenceById("ref1-y3-compForConstr");
+ assertXpathEquals(ref1y3compForConstr, "@interface", Ref1.class.getName());
+ assertXpathEquals(ref1y3compForConstr, "@component-name", "compForConstr");
+ assertXpathEquals(ref1y3compForConstr, "@filter", "(y=3)");
+ Node ref1ForCons = getReferenceById("ref1ForCons");
+ assertXpathEquals(ref1ForCons, "@interface", Ref1.class.getName());
+ assertXpathEquals(ref1ForCons, "@availability", "optional");
+ }
+
+ @Test
+ public void shouldInjectReferenceToProducedBean() throws Exception {
+ Node bean = getBeanById("producedWithReferences");
+ assertXpathEquals(bean, "argument[1]/@ref", "ref3");
+ assertXpathEquals(bean, "argument[2]/@ref", "ref4----20000");
+ assertXpathEquals(bean, "argument[3]/@ref", "ref4---optional");
+ assertXpathEquals(bean, "argument[4]/@ref", "ref3-y3");
+ assertXpathEquals(bean, "argument[5]/@ref", "ref3--compForProduces");
+ assertXpathEquals(bean, "argument[6]/@ref", "ref3-y3-compForProduces");
+ assertXpathEquals(bean, "argument[7]/@ref", "ref3ForProduces");
+ }
+
+ @Test
+ public void shouldGenerateReferenceFromProducedBean() throws Exception {
+ Node ref3 = getReferenceById("ref3");
+ assertXpathEquals(ref3, "@interface", Ref3.class.getName());
+ Node ref420000 = getReferenceById("ref4----20000");
+ assertXpathEquals(ref420000, "@interface", Ref4.class.getName());
+ assertXpathEquals(ref420000, "@timeout", "20000");
+ Node ref4optional = getReferenceById("ref4---optional");
+ assertXpathEquals(ref4optional, "@interface", Ref4.class.getName());
+ assertXpathEquals(ref4optional, "@availability", "optional");
+ Node ref3y3 = getReferenceById("ref3-y3");
+ assertXpathEquals(ref3y3, "@interface", Ref3.class.getName());
+ assertXpathEquals(ref3y3, "count(@component-name)", "0");
+ assertXpathEquals(ref3y3, "@filter", "(y=3)");
+ Node ref3compForProduces = getReferenceById("ref3--compForProduces");
+ assertXpathEquals(ref3compForProduces, "@interface", Ref3.class.getName());
+ assertXpathEquals(ref3compForProduces, "@component-name", "compForProduces");
+ assertXpathEquals(ref3compForProduces, "count(@filter)", "0");
+ Node ref3y3compForProduces = getReferenceById("ref3-y3-compForProduces");
+ assertXpathEquals(ref3y3compForProduces, "@interface", Ref3.class.getName());
+ assertXpathEquals(ref3y3compForProduces, "@component-name", "compForProduces");
+ assertXpathEquals(ref3y3compForProduces, "@filter", "(y=3)");
+ Node ref1ForCons = getReferenceById("ref3ForProduces");
+ assertXpathEquals(ref1ForCons, "@interface", Ref3.class.getName());
+ assertXpathEquals(ref1ForCons, "@timeout", "1000");
+ }
+
private void assertXpathDoesNotExist(Node node, String xpathExpression) throws XPathExpressionException {
assertXpathEquals(node, "count(" + xpathExpression + ")", "0");
}
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/BeanWithReferences.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/BeanWithReferences.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/BeanWithReferences.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/BeanWithReferences.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,95 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.test.reference;
+
+import org.apache.aries.blueprint.annotation.service.Availability;
+import org.apache.aries.blueprint.annotation.service.Reference;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+@Singleton
+public class BeanWithReferences {
+
+ @Inject
+ @Reference
+ Ref1 ref1Field;
+
+ @Inject
+ @Reference
+ @Named("myRef1")
+ Ref1 myRef1Field;
+
+ @Inject
+ @Reference(filter = "(a=453)", componentName = "r1", timeout = 2000, availability = Availability.OPTIONAL)
+ Ref1 myRef1FieldAllProps;
+
+ @Inject
+ @Reference(filter = "(x=1)")
+ Ref1 myRef1FieldFilter;
+
+ @Inject
+ @Reference
+ public void setRef2Setter(Ref2 ref) {
+ }
+
+ @Inject
+ @Reference
+ @Named("myRef2")
+ public void setRef2SetterNamed(Ref2 ref) {
+ }
+
+ @Inject
+ @Reference(filter = "(b=453)", componentName = "r2", timeout = 1000, availability = Availability.OPTIONAL)
+ public void setRef2SetterFull(Ref2 ref) {
+ }
+
+ @Inject
+ @Reference(componentName = "blablabla")
+ public void setRef2SetterComponent(Ref2 ref) {
+ }
+
+ public BeanWithReferences(
+ @Reference Ref1 ref1,
+ @Reference(availability = Availability.OPTIONAL, timeout = 20000) Ref2 ref2,
+ @Reference(filter = "(y=3)") Ref1 ref1x,
+ @Reference(componentName = "compForConstr") Ref1 ref1c,
+ @Reference(filter = "(y=3)", componentName = "compForConstr") Ref1 ref1fc,
+ @Reference(availability = Availability.OPTIONAL) @Named("ref1ForCons") Ref1 ref1Named
+ ) {
+ }
+
+ @Produces
+ @Named("producedWithReferences")
+ public String create(
+ @Reference Ref3 ref3,
+ @Reference(timeout = 20000) Ref4 ref4,
+ @Reference(availability = Availability.OPTIONAL) Ref4 ref4a,
+ @Reference(filter = "(y=3)") Ref3 ref3f,
+ @Reference(componentName = "compForProduces") Ref3 ref3c,
+ @Reference(filter = "(y=3)", componentName = "compForProduces") Ref3 ref3fc,
+ @Reference(timeout = 1000) @Named("ref3ForProduces") Ref3 ref3Named
+ ) {
+ return null;
+ }
+
+
+}
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref1.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref1.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref1.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref1.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,22 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.test.reference;
+
+public interface Ref1 {
+}
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref2.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref2.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref2.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref2.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,22 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.test.reference;
+
+public interface Ref2 {
+}
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref3.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref3.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref3.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref3.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,22 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.test.reference;
+
+public interface Ref3 {
+}
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref4.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref4.java?rev=1810013&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref4.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/reference/Ref4.java Thu Sep 28 17:19:00 2017
@@ -0,0 +1,22 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.test.reference;
+
+public interface Ref4 {
+}