Author: davsclaus
Date: Fri Feb 8 10:59:49 2013
New Revision: 1443932
URL: http://svn.apache.org/r1443932
Log:
CAMEL-6053: Allow to override blueprint config admin placeholders from unit
test.
Added:
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ConfigAdminOverridePropertiesOutsideCamelContextTest.java
- copied unchanged from r1443931,
camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/ConfigAdminOverridePropertiesOutsideCamelContextTest.java
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/MyCoolBean.java
- copied unchanged from r1443931,
camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/MyCoolBean.java
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/configadmin-outside.xml
- copied unchanged from r1443931,
camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/configadmin-outside.xml
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1443931
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java?rev=1443932&r1=1443931&r2=1443932&view=diff
==============================================================================
---
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java
(original)
+++
camel/branches/camel-2.10.x/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java
Fri Feb 8 10:59:49 2013
@@ -16,6 +16,7 @@
*/
package org.apache.camel.test.blueprint;
+import java.util.Dictionary;
import java.util.Properties;
import org.apache.camel.CamelContext;
@@ -26,6 +27,8 @@ import org.junit.After;
import org.junit.Before;
import org.osgi.framework.BundleContext;
import org.osgi.service.blueprint.container.BlueprintContainer;
+import org.osgi.service.cm.Configuration;
+import org.osgi.service.cm.ConfigurationAdmin;
/**
* Base class for OSGi Blueprint unit tests with Camel.
@@ -47,6 +50,19 @@ public abstract class CamelBlueprintTest
bundleContext.registerService(PropertiesComponent.OVERRIDE_PROPERTIES, extra,
null);
}
+ // allow end users to override config admin service with extra
properties
+ Dictionary props = new Properties();
+ String pid = useOverridePropertiesWithConfigAdmin(props);
+ if (pid != null) {
+ ConfigurationAdmin configAdmin =
getOsgiService(ConfigurationAdmin.class);
+ Configuration config = configAdmin.getConfiguration(pid);
+ if (config == null) {
+ throw new IllegalArgumentException("Cannot find configuration
with pid " + pid + " in OSGi ConfigurationAdmin service.");
+ }
+ log.info("Updating ConfigAdmin {} by overriding properties {}",
config, props);
+ config.update(props);
+ }
+
super.setUp();
// must wait for blueprint container to be published then the
namespace parser is complete and we are ready for testing
@@ -54,6 +70,16 @@ public abstract class CamelBlueprintTest
getOsgiService(BlueprintContainer.class,
"(osgi.blueprint.container.symbolicname=" + symbolicName + ")");
}
+ /**
+ * Override this method to override config admin properties.
+ *
+ * @param props properties where you add the properties to override
+ * @return the PID of the OSGi {@link ConfigurationAdmin} which are
defined in the Blueprint XML file.
+ */
+ protected String useOverridePropertiesWithConfigAdmin(Dictionary props) {
+ return null;
+ }
+
@After
@Override
public void tearDown() throws Exception {