You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2016/10/18 09:32:40 UTC

svn commit: r1765406 - in /aries/trunk/blueprint: blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/ blueprint-maven-plugin/ blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/ blueprint-mav...

Author: cschneider
Date: Tue Oct 18 09:32:40 2016
New Revision: 1765406

URL: http://svn.apache.org/viewvc?rev=1765406&view=rev
Log:
[ARIES-1628] Add support default properties, prefixes and suffixes

Added:
    aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Property.java
Modified:
    aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Config.java
    aries/trunk/blueprint/blueprint-maven-plugin/pom.xml
    aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/ConfigWriter.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java

Modified: aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Config.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Config.java?rev=1765406&r1=1765405&r2=1765406&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Config.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Config.java Tue Oct 18 09:32:40 2016
@@ -14,4 +14,7 @@ import java.lang.annotation.Target;
 public @interface Config {
     String pid();
     String updatePolicy() default "reload"; 
+    String placeholderPrefix() default "${";
+    String placeholderSuffix() default "}";
+    Property[] defaults() default {};
 }

Added: aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Property.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Property.java?rev=1765406&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Property.java (added)
+++ aries/trunk/blueprint/blueprint-maven-plugin-annotation/src/main/java/org/apache/aries/blueprint/api/config/Property.java Tue Oct 18 09:32:40 2016
@@ -0,0 +1,6 @@
+package org.apache.aries.blueprint.api.config;
+
+public @interface Property {
+    String key();
+    String value();
+}

Modified: aries/trunk/blueprint/blueprint-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/pom.xml?rev=1765406&r1=1765405&r2=1765406&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/pom.xml (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/pom.xml Tue Oct 18 09:32:40 2016
@@ -154,6 +154,12 @@
             <version>0.8.0</version>
         </dependency>
         <dependency>
+        	<groupId>org.osgi</groupId>
+        	<artifactId>osgi.cmpn</artifactId>
+        	<version>6.0.0</version>
+        </dependency>
+
+        <dependency>
         	<groupId>org.apache.aries.blueprint</groupId>
         	<artifactId>blueprint-maven-plugin-annotation</artifactId>
         	<version>1.0.0-SNAPSHOT</version>

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/ConfigWriter.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/ConfigWriter.java?rev=1765406&r1=1765405&r2=1765406&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/ConfigWriter.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/javax/ConfigWriter.java Tue Oct 18 09:32:40 2016
@@ -22,6 +22,7 @@ import javax.xml.stream.XMLStreamExcepti
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.aries.blueprint.api.config.Config;
+import org.apache.aries.blueprint.api.config.Property;
 import org.apache.aries.blueprint.plugin.spi.XmlWriter;
 
 public class ConfigWriter implements XmlWriter {
@@ -38,8 +39,28 @@ public class ConfigWriter implements Xml
         writer.writeStartElement("property-placeholder");
         writer.writeDefaultNamespace(CONFIG_NS);
         writer.writeAttribute("persistent-id", config.pid());
+        if (!"${".equals(config.placeholderPrefix())) {
+            writer.writeAttribute("placeholder-prefix", config.updatePolicy());
+        }
+        if (!"}".equals(config.placeholderSuffix())) {
+            writer.writeAttribute("placeholder-suffix", config.updatePolicy());
+        }
         writer.writeAttribute("update-strategy", config.updatePolicy());
         writer.writeCharacters("\n");
+        
+        Property[] defaults = config.defaults();
+        if (defaults.length > 0) {
+            writer.writeStartElement("default-properties");
+            writer.writeCharacters("\n");
+            for (Property defaultProp : defaults) {
+                writer.writeEmptyElement("property");
+                writer.writeAttribute("name", defaultProp.key());
+                writer.writeAttribute("value", defaultProp.value());
+                writer.writeCharacters("\n");
+            }
+            writer.writeEndElement();
+            writer.writeCharacters("\n");
+        }
         writer.writeEndElement();
     }
 

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java?rev=1765406&r1=1765405&r2=1765406&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java Tue Oct 18 09:32:40 2016
@@ -208,6 +208,6 @@ public class BeanTest {
         assertEquals("There should be a property", 1, bean.properties.size());
         Property prop = bean.properties.iterator().next();
         assertEquals("title", prop.name);
-        assertEquals("${title}", prop.value);
+        assertEquals("$[title]", prop.value);
     }
 }

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java?rev=1765406&r1=1765405&r2=1765406&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithConfig.java Tue Oct 18 09:32:40 2016
@@ -4,10 +4,19 @@ import javax.inject.Singleton;
 
 import org.apache.aries.blueprint.api.config.Config;
 import org.apache.aries.blueprint.api.config.ConfigProperty;
+import org.apache.aries.blueprint.api.config.Property;
 
-@Config(pid="org.apache.aries.my")
+@Config//
+( //
+    pid = "org.apache.aries.my", //
+    placeholderPrefix = "$[", //
+    placeholderSuffix = "]", //
+    defaults = { 
+                @Property(key="title", value="My Title")
+    }
+)
 @Singleton
 public class BeanWithConfig {
-    @ConfigProperty("${title}")
+    @ConfigProperty("$[title]")
     String title;
 }