You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/04/28 16:59:00 UTC
svn commit: r1331780 - in /camel/trunk/components:
camel-blueprint/src/main/java/org/apache/camel/blueprint/
camel-core-osgi/src/main/java/org/apache/camel/core/osgi/
camel-core-osgi/src/test/java/org/apache/camel/core/osgi/
camel-test-blueprint/src/ma...
Author: davsclaus
Date: Sat Apr 28 14:58:59 2012
New Revision: 1331780
URL: http://svn.apache.org/viewvc?rev=1331780&view=rev
Log:
CAMEL-4906: Allow to easily configure JMX naming using managementNamePattern attribute on CamelContext.
Modified:
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java
camel/trunk/components/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundle.java
camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java
camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java
camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/management/ManagedNamePatternFixedTest.java
camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/management/managedNamePatternFixedTest.xml
Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java (original)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java Sat Apr 28 14:58:59 2012
@@ -21,6 +21,7 @@ import org.apache.camel.core.osgi.OsgiCa
import org.apache.camel.core.osgi.OsgiCamelContextNameStrategy;
import org.apache.camel.core.osgi.OsgiClassResolver;
import org.apache.camel.core.osgi.OsgiFactoryFinderResolver;
+import org.apache.camel.core.osgi.OsgiManagementNameStrategy;
import org.apache.camel.core.osgi.OsgiPackageScanClassResolver;
import org.apache.camel.core.osgi.OsgiTypeConverter;
import org.apache.camel.core.osgi.utils.BundleContextUtils;
@@ -46,10 +47,11 @@ public class BlueprintCamelContext exten
public BlueprintCamelContext(BundleContext bundleContext, BlueprintContainer blueprintContainer) {
this.bundleContext = bundleContext;
this.blueprintContainer = blueprintContainer;
- setNameStrategy(new OsgiCamelContextNameStrategy(bundleContext));
- setClassResolver(new OsgiClassResolver(bundleContext));
- setFactoryFinderResolver(new OsgiFactoryFinderResolver(bundleContext));
- setPackageScanClassResolver(new OsgiPackageScanClassResolver(bundleContext));
+
+ // inject common osgi
+ OsgiCamelContextHelper.osgiUpdate(this, bundleContext);
+
+ // and these are blueprint specific
setComponentResolver(new BlueprintComponentResolver(bundleContext));
setLanguageResolver(new BlueprintLanguageResolver(bundleContext));
setDataFormatResolver(new BlueprintDataFormatResolver(bundleContext));
Modified: camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java (original)
+++ camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java Sat Apr 28 14:58:59 2012
@@ -29,6 +29,7 @@ import org.osgi.framework.BundleContext;
* tokens (see {@link DefaultManagementNameStrategy}) and the following additional OSGi specific tokens
* <ul>
* <li>#bundleId# - The bundle id</li>
+ * <li>#version# - The bundle version</li>
* <li>#symbolicName# - The bundle symbolic name</li>
* </ul>
* <p/>
@@ -50,9 +51,11 @@ public class OsgiManagementNameStrategy
protected String customResolveManagementName(String pattern, String answer) {
String bundleId = "" + bundleContext.getBundle().getBundleId();
String symbolicName = Matcher.quoteReplacement(bundleContext.getBundle().getSymbolicName());
+ String version = Matcher.quoteReplacement(bundleContext.getBundle().getVersion().toString());
answer = answer.replaceFirst("#bundleId#", bundleId);
answer = answer.replaceFirst("#symbolicName#", symbolicName);
+ answer = answer.replaceFirst("#version#", version);
return answer;
}
Modified: camel/trunk/components/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundle.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundle.java?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundle.java (original)
+++ camel/trunk/components/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundle.java Sat Apr 28 14:58:59 2012
@@ -20,8 +20,10 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
+import java.util.Map;
import org.apache.camel.util.CastUtils;
+import org.osgi.framework.Version;
import org.springframework.osgi.mock.MockBundle;
/**
@@ -100,6 +102,16 @@ public class CamelMockBundle extends Moc
}
}
+ @Override
+ public Map getSignerCertificates(int signersType) {
+ return null;
+ }
+
+ @Override
+ public Version getVersion() {
+ return Version.parseVersion("1.0.0");
+ }
+
public Class<?> loadClass(String name) throws ClassNotFoundException {
if (isLoadableClass(name)) {
return super.loadClass(name);
Modified: camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java (original)
+++ camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java Sat Apr 28 14:58:59 2012
@@ -67,6 +67,7 @@ public final class CamelBlueprintHelper
public static final long DEFAULT_TIMEOUT = 30000;
public static final String BUNDLE_FILTER = "(Bundle-SymbolicName=*)";
+ public static final String BUNDLE_VERSION = "1.0.0";
private static final transient Logger LOG = LoggerFactory.getLogger(CamelBlueprintHelper.class);
private static final ClassResolver RESOLVER = new DefaultClassResolver();
@@ -74,10 +75,11 @@ public final class CamelBlueprintHelper
}
public static BundleContext createBundleContext(String name, String descriptors, boolean includeTestBundle) throws Exception {
- return createBundleContext(name, descriptors, BUNDLE_FILTER, includeTestBundle);
+ return createBundleContext(name, descriptors, BUNDLE_FILTER, BUNDLE_VERSION, includeTestBundle);
}
- public static BundleContext createBundleContext(String name, String descriptors, String bundleFilter, boolean includeTestBundle) throws Exception {
+ public static BundleContext createBundleContext(String name, String descriptors, String bundleFilter,
+ String testBundleVersion, boolean includeTestBundle) throws Exception {
deleteDirectory("target/bundles");
createDirectory("target/bundles");
@@ -89,7 +91,7 @@ public final class CamelBlueprintHelper
if (includeTestBundle) {
// add ourselves as a bundle
- TinyBundle bundle = createTestBundle(name, descriptors);
+ TinyBundle bundle = createTestBundle(name, testBundleVersion, descriptors);
String jarName = name.toLowerCase();
bundles.add(getBundleDescriptor("target/bundles/" + jarName + ".jar", bundle));
}
@@ -189,7 +191,7 @@ public final class CamelBlueprintHelper
return references == null ? new ArrayList<ServiceReference>(0) : Arrays.asList(references);
}
- private static TinyBundle createTestBundle(String name, String descriptors) throws FileNotFoundException, MalformedURLException {
+ private static TinyBundle createTestBundle(String name, String version, String descriptors) throws FileNotFoundException, MalformedURLException {
TinyBundle bundle = TinyBundles.newBundle();
for (URL url : getBlueprintDescriptors(descriptors)) {
LOG.info("Using Blueprint XML file: " + url.getFile());
@@ -198,7 +200,7 @@ public final class CamelBlueprintHelper
bundle.set("Manifest-Version", "2")
.set("Bundle-ManifestVersion", "2")
.set("Bundle-SymbolicName", name)
- .set("Bundle-Version", "0.0.0");
+ .set("Bundle-Version", version);
return bundle;
}
Modified: camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java (original)
+++ camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java Sat Apr 28 14:58:59 2012
@@ -32,7 +32,8 @@ public abstract class CamelBlueprintTest
@Before
@Override
public void setUp() throws Exception {
- this.bundleContext = CamelBlueprintHelper.createBundleContext(getClass().getSimpleName(), getBlueprintDescriptor(), getBundleFilter(), true);
+ this.bundleContext = CamelBlueprintHelper.createBundleContext(getClass().getSimpleName(), getBlueprintDescriptor(),
+ getBundleFilter(), getBundleVersion(), true);
super.setUp();
}
@@ -58,8 +59,8 @@ public abstract class CamelBlueprintTest
}
/**
- * Gets filter expression of bundle descriptors. Modify this method if you wish to change
- * default behavior.
+ * Gets filter expression of bundle descriptors.
+ * Modify this method if you wish to change default behavior.
*
* @return filter expression for OSGi bundles.
*/
@@ -67,6 +68,16 @@ public abstract class CamelBlueprintTest
return CamelBlueprintHelper.BUNDLE_FILTER;
}
+ /**
+ * Gets test bundle version.
+ * Modify this method if you wish to change default behavior.
+ *
+ * @return test bundle version
+ */
+ protected String getBundleVersion() {
+ return CamelBlueprintHelper.BUNDLE_VERSION;
+ }
+
@Override
protected CamelContext createCamelContext() throws Exception {
return CamelBlueprintHelper.getOsgiService(bundleContext, CamelContext.class);
Modified: camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/management/ManagedNamePatternFixedTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/management/ManagedNamePatternFixedTest.java?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/management/ManagedNamePatternFixedTest.java (original)
+++ camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/management/ManagedNamePatternFixedTest.java Sat Apr 28 14:58:59 2012
@@ -29,6 +29,11 @@ public class ManagedNamePatternFixedTest
return "org/apache/camel/test/blueprint/management/managedNamePatternFixedTest.xml";
}
+ @Override
+ protected String getBundleVersion() {
+ return "1.2.3";
+ }
+
@Test
public void testManagedNamePattern() throws Exception {
getMockEndpoint("mock:result").expectedMessageCount(1);
@@ -37,7 +42,7 @@ public class ManagedNamePatternFixedTest
MBeanServer mbeanServer = context.getManagementStrategy().getManagementAgent().getMBeanServer();
- assertEquals("cool", context.getManagementName());
+ assertEquals("cool-1.2.3", context.getManagementName());
ObjectName on = ObjectName.getInstance("org.apache.camel:context=localhost/" + context.getManagementName()
+ ",type=context,name=\"" + context.getName() + "\"");
Modified: camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/management/managedNamePatternFixedTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/management/managedNamePatternFixedTest.xml?rev=1331780&r1=1331779&r2=1331780&view=diff
==============================================================================
--- camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/management/managedNamePatternFixedTest.xml (original)
+++ camel/trunk/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/management/managedNamePatternFixedTest.xml Sat Apr 28 14:58:59 2012
@@ -26,7 +26,7 @@
</bean>
<!-- START SNIPPET: example -->
- <camelContext managementNamePattern="cool" xmlns="http://camel.apache.org/schema/blueprint">
+ <camelContext id="cool" managementNamePattern="#name#-#version#" xmlns="http://camel.apache.org/schema/blueprint">
<jmxAgent id="agent"/>
<route>