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/01/13 14:27:54 UTC

svn commit: r1778595 - in /aries/trunk/blueprint/plugin: blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ blueprint-maven-plugin/ blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/config...

Author: alien11689
Date: Fri Jan 13 14:27:54 2017
New Revision: 1778595

URL: http://svn.apache.org/viewvc?rev=1778595&view=rev
Log:
[ARIES-1661] Generate cm-properties and inject it via annotations in BMP

Added:
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperties.java
    aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/config/ConfigPropertiesHandler.java
    aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfigurationProperties.java
      - copied, changed from r1776017, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean6.java
Modified:
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/Config.java
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperty.java
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/DefaultProperty.java
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/packageinfo
    aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml
    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/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java
    aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/Config.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/Config.java?rev=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/Config.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/Config.java Fri Jan 13 14:27:54 2017
@@ -1,3 +1,21 @@
+/**
+ * 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.config;
 
 import java.lang.annotation.ElementType;
@@ -13,8 +31,12 @@ import java.lang.annotation.Target;
 @Retention(RetentionPolicy.RUNTIME)
 public @interface Config {
     String pid();
-    String updatePolicy() default "reload"; 
+
+    String updatePolicy() default "reload";
+
     String placeholderPrefix() default "${";
+
     String placeholderSuffix() default "}";
+
     DefaultProperty[] defaults() default {};
 }

Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperties.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperties.java?rev=1778595&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperties.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperties.java Fri Jan 13 14:27:54 2017
@@ -0,0 +1,32 @@
+/**
+ * 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.config;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ConfigProperties {
+    String pid();
+
+    boolean update() default false;
+}

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperty.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperty.java?rev=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperty.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/ConfigProperty.java Fri Jan 13 14:27:54 2017
@@ -1,3 +1,21 @@
+/**
+ * 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.config;
 
 import java.lang.annotation.ElementType;

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/DefaultProperty.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/DefaultProperty.java?rev=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/DefaultProperty.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/DefaultProperty.java Fri Jan 13 14:27:54 2017
@@ -1,6 +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
+ * <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.config;
 
 public @interface DefaultProperty {
     String key();
+
     String value();
 }

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/packageinfo
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/packageinfo?rev=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/packageinfo (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/annotation/config/packageinfo Fri Jan 13 14:27:54 2017
@@ -16,4 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-version 1.0.0
+version 1.1.0

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=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml Fri Jan 13 14:27:54 2017
@@ -162,7 +162,7 @@
         <dependency>
         	<groupId>org.apache.aries.blueprint</groupId>
         	<artifactId>blueprint-maven-plugin-annotation</artifactId>
-        	<version>1.0.0</version>
+        	<version>1.0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>

Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/config/ConfigPropertiesHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/config/ConfigPropertiesHandler.java?rev=1778595&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/config/ConfigPropertiesHandler.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/config/ConfigPropertiesHandler.java Fri Jan 13 14:27:54 2017
@@ -0,0 +1,70 @@
+package org.apache.aries.blueprint.plugin.config;
+
+import org.apache.aries.blueprint.annotation.config.ConfigProperties;
+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;
+import java.util.Properties;
+
+public class ConfigPropertiesHandler implements CustomDependencyAnnotationHandler<ConfigProperties> {
+    @Override
+    public String handleDependencyAnnotation(AnnotatedElement annotatedElement, String name, ContextEnricher contextEnricher) {
+        ConfigProperties configProperties = annotatedElement.getAnnotation(ConfigProperties.class);
+        final String pid = configProperties.pid();
+        final boolean update = configProperties.update();
+        final String id = getId(name, pid, update);
+        enrichContext(contextEnricher, pid, update, id);
+        return id;
+    }
+
+    private void enrichContext(ContextEnricher contextEnricher, final String pid, final boolean update, final String id) {
+        contextEnricher.addBean(id, Properties.class);
+        contextEnricher.addBlueprintContentWriter("properties/" + id, new XmlWriter() {
+            @Override
+            public void write(XMLStreamWriter writer) throws XMLStreamException {
+                writer.writeEmptyElement("cm-properties");
+                writer.writeDefaultNamespace("http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.2.0");
+                writer.writeAttribute("id", id);
+                writer.writeAttribute("persistent-id", pid);
+                writer.writeAttribute("update", String.valueOf(update));
+            }
+        });
+    }
+
+    @Override
+    public String handleDependencyAnnotation(Class<?> aClass, ConfigProperties configProperties, String name, ContextEnricher contextEnricher) {
+        final String pid = configProperties.pid();
+        final boolean update = configProperties.update();
+        final String id = getId(name, pid, update);
+        enrichContext(contextEnricher, pid, update, id);
+        return id;
+    }
+
+    private String getId(String name, String pid, boolean update) {
+        return name != null ? name : "properties-" + pid.replace('.', '-') + "-" + update;
+    }
+
+    @Override
+    public Class<ConfigProperties> getAnnotation() {
+        return ConfigProperties.class;
+    }
+
+    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");
+    }
+}

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=1778595&r1=1778594&r2=1778595&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 Fri Jan 13 14:27:54 2017
@@ -15,4 +15,5 @@
 # limitations under the License.
 #
 
-org.apache.aries.blueprint.plugin.pax.OsgiServiceHandler
\ No newline at end of file
+org.apache.aries.blueprint.plugin.pax.OsgiServiceHandler
+org.apache.aries.blueprint.plugin.config.ConfigPropertiesHandler
\ No newline at end of file

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java?rev=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java Fri Jan 13 14:27:54 2017
@@ -420,6 +420,79 @@ public class GeneratorTest {
         assertXpathEquals(example2, "@value", "v2");
     }
 
+    @Test
+    public void testProducesWithConfigProperty() throws Exception {
+        Node bean = getBeanById("producedWithConfigProperty");
+        assertXpathEquals(bean, "@class", "org.apache.aries.blueprint.plugin.test.MyProducedWithConstructor");
+        assertXpathEquals(bean, "@factory-ref", "beanWithConfig");
+        assertXpathEquals(bean, "@factory-method", "createBean");
+        assertXpathEquals(bean, "@scope", "prototype");
+        assertXpathEquals(bean, "argument/@value", "1000");
+    }
+
+    @Test
+    public void testConfigPropertiesInjection() throws Exception {
+        Node bean = getBeanById("beanWithConfigurationProperties");
+        assertXpathEquals(bean, "@class", "org.apache.aries.blueprint.plugin.test.BeanWithConfigurationProperties");
+        assertXpathEquals(bean, "argument[1]/@ref", "testProps5");
+        assertXpathEquals(bean, "argument[2]/@ref", "properties-aries-test6-false");
+        assertXpathEquals(bean, "property[@name='prop1']/@ref", "properties-aries-test1-true");
+        assertXpathEquals(bean, "property[@name='prop2']/@ref", "testProps2");
+        assertXpathEquals(bean, "property[@name='prop3']/@ref", "properties-aries-test3-true");
+        assertXpathEquals(bean, "property[@name='prop4']/@ref", "testProps4");
+        assertXpathEquals(bean, "property[@name='prop7']/@ref", "properties-aries-test7-false");
+    }
+
+    @Test
+    public void testGenerateCmConfigProperties() throws Exception {
+        Node testProps5 = getCmPropertiesById("testProps5");
+        assertXpathEquals(testProps5, "@persistent-id", "aries.test5");
+        assertXpathEquals(testProps5, "@update", "true");
+
+        Node testProps6 = getCmPropertiesById("properties-aries-test6-false");
+        assertXpathEquals(testProps6, "@persistent-id", "aries.test6");
+        assertXpathEquals(testProps6, "@update", "false");
+
+        Node testProps1 = getCmPropertiesById("properties-aries-test1-true");
+        assertXpathEquals(testProps1, "@persistent-id", "aries.test1");
+        assertXpathEquals(testProps1, "@update", "true");
+
+        Node testProps2 = getCmPropertiesById("testProps2");
+        assertXpathEquals(testProps2, "@persistent-id", "aries.test2");
+        assertXpathEquals(testProps2, "@update", "false");
+
+        Node testProps3 = getCmPropertiesById("properties-aries-test3-true");
+        assertXpathEquals(testProps3, "@persistent-id", "aries.test3");
+        assertXpathEquals(testProps3, "@update", "true");
+
+        Node testProps4 = getCmPropertiesById("testProps4");
+        assertXpathEquals(testProps4, "@persistent-id", "aries.test4");
+        assertXpathEquals(testProps4, "@update", "false");
+
+        Node testProps7 = getCmPropertiesById("properties-aries-test7-false");
+        assertXpathEquals(testProps7, "@persistent-id", "aries.test7");
+        assertXpathEquals(testProps7, "@update", "false");
+    }
+
+    @Test
+    public void testProducesWithConfigProperties() throws Exception {
+        Node withProperties8 = getBeanById("withProperties8");
+        assertXpathEquals(withProperties8, "@class", "org.apache.aries.blueprint.plugin.test.MyProducedWithConstructor");
+        assertXpathEquals(withProperties8, "argument/@ref", "properties-aries-test8-false");
+
+        Node testProps8 = getCmPropertiesById("properties-aries-test8-false");
+        assertXpathEquals(testProps8, "@persistent-id", "aries.test8");
+        assertXpathEquals(testProps8, "@update", "false");
+
+        Node withProperties9 = getBeanById("withProperties9");
+        assertXpathEquals(withProperties9, "@class", "org.apache.aries.blueprint.plugin.test.MyProducedWithConstructor");
+        assertXpathEquals(withProperties9, "argument/@ref", "testProps9");
+
+        Node testProps9 = getCmPropertiesById("testProps9");
+        assertXpathEquals(testProps9, "@persistent-id", "aries.test9");
+        assertXpathEquals(testProps9, "@update", "true");
+    }
+
     private void assertXpathDoesNotExist(Node node, String xpathExpression) throws XPathExpressionException {
         assertXpathEquals(node, "count(" + xpathExpression + ")", "0");
     }
@@ -440,6 +513,10 @@ public class GeneratorTest {
         return (Node) xpath.evaluate("/blueprint/bean[@id='" + id + "']", document, XPathConstants.NODE);
     }
 
+    private static Node getCmPropertiesById(String id) throws XPathExpressionException {
+        return (Node) xpath.evaluate("/blueprint/cm-properties[@id='" + id + "']", document, XPathConstants.NODE);
+    }
+
     private static Node getServiceByRef(String id) throws XPathExpressionException {
         return (Node) xpath.evaluate("/blueprint/service[@ref='" + id + "']", document, XPathConstants.NODE);
     }

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java?rev=1778595&r1=1778594&r2=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java Fri Jan 13 14:27:54 2017
@@ -1,11 +1,16 @@
 package org.apache.aries.blueprint.plugin.test;
 
+import javax.enterprise.inject.Produces;
+import javax.inject.Named;
 import javax.inject.Singleton;
 
 import org.apache.aries.blueprint.annotation.config.Config;
+import org.apache.aries.blueprint.annotation.config.ConfigProperties;
 import org.apache.aries.blueprint.annotation.config.ConfigProperty;
 import org.apache.aries.blueprint.annotation.config.DefaultProperty;
 
+import java.util.Properties;
+
 @Config//
 ( //
     pid = "org.apache.aries.my", //
@@ -19,4 +24,10 @@ import org.apache.aries.blueprint.annota
 public class BeanWithConfig {
     @ConfigProperty("$[title]")
     String title;
+
+    @Produces
+    @Named("producedWithConfigProperty")
+    public MyProducedWithConstructor createBean(@ConfigProperty("1000") long test) {
+        return null;
+    }
 }

Copied: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfigurationProperties.java (from r1776017, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean6.java)
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfigurationProperties.java?p2=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfigurationProperties.java&p1=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean6.java&r1=1776017&r2=1778595&rev=1778595&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean6.java (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfigurationProperties.java Fri Jan 13 14:27:54 2017
@@ -18,19 +18,56 @@
  */
 package org.apache.aries.blueprint.plugin.test;
 
-import org.springframework.context.annotation.DependsOn;
+import org.apache.aries.blueprint.annotation.config.ConfigProperties;
+import org.ops4j.pax.cdi.api.OsgiService;
 
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
+import java.util.Properties;
 
 @Singleton
-@DependsOn
-public class MyBean6 {
+public class BeanWithConfigurationProperties {
 
-    @SuppressWarnings("unused")
-    private final ServiceA serviceA1;
+    @Inject
+    @ConfigProperties(pid = "aries.test1", update = true)
+    private Properties prop1;
 
-    public MyBean6(@Named("my2") ServiceA serviceA1) {
-        this.serviceA1 = serviceA1;
+    @Inject
+    @ConfigProperties(pid = "aries.test2")
+    @Named("testProps2")
+    private Properties prop2;
+
+    public BeanWithConfigurationProperties(
+            @ConfigProperties(pid = "aries.test5", update = true) @Named("testProps5") Properties prop5,
+            @ConfigProperties(pid = "aries.test6") Properties prop6) {
+    }
+
+    @ConfigProperties(pid = "aries.test3", update = true)
+    @Inject
+    public void setProp3(Properties prop3) {
+    }
+
+    @ConfigProperties(pid = "aries.test4")
+    @Named("testProps4")
+    @Inject
+    public void setProp4(Properties prop4) {
+    }
+
+    @Inject
+    public void setProp7(@ConfigProperties(pid = "aries.test7", update = false) Properties prop7) {
+    }
+
+    @Produces
+    @Named("withProperties8")
+    public MyProducedWithConstructor createBeanWithProperties8(@ConfigProperties(pid = "aries.test8") Properties prop8) {
+        return null;
+    }
+
+    @Produces
+    @Named("withProperties9")
+    public MyProducedWithConstructor createBeanWithProperties9(@ConfigProperties(pid = "aries.test9", update = true) @Named("testProps9") Properties prop9) {
+        return null;
     }
 }