You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2010/11/13 16:07:27 UTC
svn commit: r1034778 - in /felix/trunk/ipojo/tests/core/factories/src/main:
java/org/apache/felix/ipojo/test/scenarios/component/
java/org/apache/felix/ipojo/test/scenarios/factories/ resources/
Author: clement
Date: Sat Nov 13 15:07:27 2010
New Revision: 1034778
URL: http://svn.apache.org/viewvc?rev=1034778&view=rev
Log:
Add two tests where the lifecycle controller is configured with the config admin
Modified:
felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ReconfigurableSimpleType.java
felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/factories/ReconfigurationTest.java
felix/trunk/ipojo/tests/core/factories/src/main/resources/metadata.xml
Modified: felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ReconfigurableSimpleType.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ReconfigurableSimpleType.java?rev=1034778&r1=1034777&r2=1034778&view=diff
==============================================================================
--- felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ReconfigurableSimpleType.java (original)
+++ felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ReconfigurableSimpleType.java Sat Nov 13 15:07:27 2010
@@ -25,4 +25,10 @@ public class ReconfigurableSimpleType {
}
}
+ public void setController(boolean p) {
+ if (p) {
+ System.out.println("OK !!!!");
+ }
+ }
+
}
Modified: felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/factories/ReconfigurationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/factories/ReconfigurationTest.java?rev=1034778&r1=1034777&r2=1034778&view=diff
==============================================================================
--- felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/factories/ReconfigurationTest.java (original)
+++ felix/trunk/ipojo/tests/core/factories/src/main/java/org/apache/felix/ipojo/test/scenarios/factories/ReconfigurationTest.java Sat Nov 13 15:07:27 2010
@@ -240,4 +240,96 @@ public class ReconfigurationTest extends
Assert.assertEquals("Is valid ?", ComponentInstance.VALID, arch.getInstanceDescription().getState());
}
+
+ public void testRevalidationOnReconfigurationOfTheController() {
+ ComponentFactory factory = (ComponentFactory) Utils.getFactoryByName(getContext(),
+ "org.apache.felix.ipojo.test.scenarios.component.ReconfigurableSimpleType3");
+
+ // First inject a configuration triggering an exception of the validate method.
+ Properties props = new Properties();
+ props.put("controller", "false");
+ ComponentInstance ci = null;
+ try {
+ ci = factory.createComponentInstance(props);
+ } catch (UnacceptableConfiguration e) {
+ e.printStackTrace();
+ } catch (MissingHandlerException e) {
+ e.printStackTrace();
+ } catch (ConfigurationException e) {
+ e.printStackTrace();
+ }
+
+ assertNotNull(ci);
+ assertEquals("instance invalid", ComponentInstance.INVALID, ci.getState()); // Controller effect.
+
+ // Reconfigure
+ props = new Properties();
+ props.put("controller", "true");
+
+ ci.reconfigure(props);
+
+ assertNotNull(ci);
+ assertEquals("instance valid", ComponentInstance.VALID, ci.getState());
+ }
+
+ public void testRevalidationOnReconfigurationUsingConfigAdminOfTheController() throws InvalidSyntaxException {
+ Configuration configuration = null;
+ try {
+ configuration = admin.createFactoryConfiguration("org.apache.felix.ipojo.test.scenarios.component.ReconfigurableSimpleType3",
+ null);
+ } catch (IOException e) {
+ fail(e.getMessage());
+ }
+ Dictionary props = configuration.getProperties();
+ if(props == null) {
+ props = new Properties();
+ }
+ // First inject a configuration triggering an exception of the validate method.
+ props.put("controller", "false");
+
+ try {
+ configuration.update(props);
+ } catch (IOException e) {
+ fail(e.getMessage());
+ }
+
+ String pid = configuration.getPid();
+
+ // Wait for the processing of the first configuration.
+ try {
+ Thread.sleep(UPDATE_WAIT_TIME);
+ } catch (InterruptedException e1) {
+ fail(e1.getMessage());
+ }
+
+ // Invalid ... controller effect
+ Assert.assertNotNull("architecture", getContext().getServiceReferences(Architecture.class.getName(), "(architecture.instance="+pid+")"));
+ Architecture arch = (Architecture) Utils.getServiceObject(getContext(), Architecture.class.getName(), "(architecture.instance="+pid+")");
+
+ Assert.assertEquals("Is invalid ?", ComponentInstance.INVALID, arch.getInstanceDescription().getState());
+
+ // Reconfigure
+ props = new Properties();
+ props.put("controller", "true");
+
+ try {
+ configuration.update(props);
+ } catch (IOException e) {
+ fail(e.getMessage());
+ }
+
+ pid = configuration.getPid();
+
+ // Wait for the processing of the first configuration.
+ try {
+ Thread.sleep(UPDATE_WAIT_TIME);
+ } catch (InterruptedException e1) {
+ fail(e1.getMessage());
+ }
+
+ Assert.assertNotNull("architecture", getContext().getServiceReferences(Architecture.class.getName(), "(architecture.instance="+pid+")"));
+ arch = (Architecture) Utils.getServiceObject(getContext(), Architecture.class.getName(), "(architecture.instance="+pid+")");
+
+ Assert.assertEquals("Is valid ?", ComponentInstance.VALID, arch.getInstanceDescription().getState());
+ }
}
Modified: felix/trunk/ipojo/tests/core/factories/src/main/resources/metadata.xml
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/core/factories/src/main/resources/metadata.xml?rev=1034778&r1=1034777&r2=1034778&view=diff
==============================================================================
--- felix/trunk/ipojo/tests/core/factories/src/main/resources/metadata.xml (original)
+++ felix/trunk/ipojo/tests/core/factories/src/main/resources/metadata.xml Sat Nov 13 15:07:27 2010
@@ -143,4 +143,12 @@
</properties>
<controller field="controller"/>
</component>
+ <component classname="org.apache.felix.ipojo.test.scenarios.component.ReconfigurableSimpleType"
+ name="org.apache.felix.ipojo.test.scenarios.component.ReconfigurableSimpleType3"
+ architecture="true" immediate="true">
+ <properties>
+ <property name="controller" method="setController" field="controller"/>
+ </properties>
+ <controller field="controller"/>
+ </component>
</ipojo>