Author: dkulp
Date: Thu May 15 18:13:41 2014
New Revision: 1594998
URL: http://svn.apache.org/r1594998
Log:
Test: Verify component managed update functionality.
Modified:
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/Foo.java
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
aries/trunk/blueprint/blueprint-cm/src/test/resources/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.xml
Modified:
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/Foo.java
URL:
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/Foo.java?rev=1594998&r1=1594997&r2=1594998&view=diff
==============================================================================
---
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/Foo.java
(original)
+++
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/Foo.java
Thu May 15 18:13:41 2014
@@ -18,6 +18,7 @@
*/
package org.apache.aries.blueprint.compendium.cm;
+import java.util.Map;
import java.util.Properties;
public class Foo implements FooInterface {
@@ -52,5 +53,23 @@ public class Foo implements FooInterface
public void setProps(Properties props) {
this.props = props;
}
+
+ public void update(Map<String, String> pMap) {
+ Properties properties = new Properties();
+
+ String value = pMap.get("a");
+ if (value != null) {
+ a = Integer.parseInt(value);
+ properties.put("a", a);
+ }
+
+ value = pMap.get("b");
+ if (value != null) {
+ b = value;
+ properties.put("b", b);
+ }
+
+ props = properties;
+ }
}
Modified:
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
URL:
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java?rev=1594998&r1=1594997&r2=1594998&view=diff
==============================================================================
---
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
(original)
+++
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
Thu May 15 18:13:41 2014
@@ -235,4 +235,67 @@ public class ManagedServiceFactoryTest e
assertEquals("7", sr2.getProperty("a"));
assertEquals("foo2", sr2.getProperty("b"));
}
+
+ @Test
+ public void testCreateAndUpdateUsingUpdateMethod() throws Exception {
+ ConfigurationAdmin ca = getOsgiService(ConfigurationAdmin.class);
+
+ Configuration cf =
ca.createFactoryConfiguration("blueprint-sample-managed-service-factory4",
null);
+ Hashtable<String, String> props = new Hashtable<String, String>();
+ props.put("a", "5");
+ cf.update(props);
+
+ Configuration cf2 =
ca.createFactoryConfiguration("blueprint-sample-managed-service-factory4",
null);
+ Hashtable<String, String> props2 = new Hashtable<String, String>();
+ props2.put("a", "7");
+ cf2.update(props2);
+
+ BundleContext context = getBundleContext();
+ ServiceReference sr = Helper.getOsgiServiceReference(context, Foo.class,
"(&(key=foo4)(a=5))", Helper.DEFAULT_TIMEOUT);
+ assertNotNull(sr);
+
+ ServiceReference sr2 = Helper.getOsgiServiceReference(context, Foo.class,
"(&(key=foo4)(a=7))", Helper.DEFAULT_TIMEOUT);
+ assertNotNull(sr2);
+
+ Foo foo = (Foo) context.getService(sr);
+ assertNotNull(foo);
+ assertEquals(5, foo.getA());
+ assertEquals("default", foo.getB());
+ assertEquals("5", sr.getProperty("a"));
+ assertNull(sr.getProperty("b"));
+
+ Foo foo2 = (Foo) context.getService(sr2);
+ assertNotNull(foo2);
+ assertEquals(7, foo2.getA());
+ assertEquals("default", foo2.getB());
+ assertEquals("7", sr2.getProperty("a"));
+ assertNull(sr2.getProperty("b"));
+
+ props = new Hashtable<String, String>();
+ props.put("a", "5");
+ props.put("b", "foo");
+ cf.update(props);
+
+ props2 = new Hashtable<String, String>();
+ props2.put("a", "7");
+ props2.put("b", "foo2");
+ cf2.update(props2);
+
+ // Update after creation
+ Thread.sleep(500);
+ assertEquals(5, foo.getA());
+ assertEquals("foo", foo.getB());
+
+ // Update of service properties
+ assertEquals("5", sr.getProperty("a"));
+ assertEquals("foo", sr.getProperty("b"));
+
+ // 2a Update after creation
+ assertEquals(7, foo2.getA());
+ assertEquals("foo2", foo2.getB());
+
+ // 2b Update of service properties
+ assertEquals("7", sr2.getProperty("a"));
+ assertEquals("foo2", sr2.getProperty("b"));
+ }
}
Modified:
aries/trunk/blueprint/blueprint-cm/src/test/resources/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.xml
URL:
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-cm/src/test/resources/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.xml?rev=1594998&r1=1594997&r2=1594998&view=diff
==============================================================================
---
aries/trunk/blueprint/blueprint-cm/src/test/resources/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.xml
(original)
+++
aries/trunk/blueprint/blueprint-cm/src/test/resources/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.xml
Thu May 15 18:13:41 2014
@@ -57,5 +57,19 @@
<property name="b" value="default" />
</cm:managed-component>
</cm:managed-service-factory>
+
+ <cm:managed-service-factory id="managed-service-factory4"
+
factory-pid="blueprint-sample-managed-service-factory4"
+
interface="org.apache.aries.blueprint.compendium.cm.Foo">
+ <service-properties>
+ <entry key="key" value="foo4" />
+ <cm:cm-properties persistent-id="" update="true"/>
+ </service-properties>
+ <cm:managed-component
class="org.apache.aries.blueprint.compendium.cm.Foo">
+ <cm:managed-properties persistent-id=""
update-strategy="component-managed" update-method="update" />
+ <property name="a" value="1" />
+ <property name="b" value="default" />
+ </cm:managed-component>
+ </cm:managed-service-factory>
</blueprint>