Updated Branches: refs/heads/master 512b0a165 -> d33db16a3
fixed findComponents() for in blueprint too (had missed there's 2 OSGi camel context implementations - DOH ;) Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d33db16a Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d33db16a Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d33db16a Branch: refs/heads/master Commit: d33db16a385d1eaf1ced7da8766aaa7e4175b783 Parents: 512b0a1 Author: James Strachan <james.strac...@gmail.com> Authored: Sat Jun 8 09:47:49 2013 +0200 Committer: James Strachan <james.strac...@gmail.com> Committed: Sat Jun 8 10:29:09 2013 +0200 ---------------------------------------------------------------------- .../camel/blueprint/BlueprintCamelContext.java | 9 +++++ .../camel/core/osgi/OsgiDefaultCamelContext.java | 16 +------- .../camel/core/osgi/utils/BundleContextUtils.java | 28 +++++++++++++++ 3 files changed, 39 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/d33db16a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java ---------------------------------------------------------------------- diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java index cded338..8a86bf6 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java @@ -16,6 +16,10 @@ */ package org.apache.camel.blueprint; +import java.io.IOException; +import java.util.Map; +import java.util.Properties; + import org.apache.camel.TypeConverter; import org.apache.camel.core.osgi.OsgiCamelContextHelper; import org.apache.camel.core.osgi.OsgiFactoryFinderResolver; @@ -25,6 +29,7 @@ import org.apache.camel.core.osgi.utils.BundleDelegatingClassLoader; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.spi.FactoryFinder; import org.apache.camel.spi.Registry; +import org.apache.camel.util.LoadPropertiesException; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceEvent; import org.osgi.framework.ServiceListener; @@ -109,6 +114,10 @@ public class BlueprintCamelContext extends DefaultCamelContext implements Servic stop(); } + @Override + public Map<String, Properties> findComponents() throws LoadPropertiesException, IOException { + return BundleContextUtils.findComponents(bundleContext, this); + } @Override public void blueprintEvent(BlueprintEvent event) { http://git-wip-us.apache.org/repos/asf/camel/blob/d33db16a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDefaultCamelContext.java ---------------------------------------------------------------------- diff --git a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDefaultCamelContext.java b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDefaultCamelContext.java index 1a7b472..d049f1c 100644 --- a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDefaultCamelContext.java +++ b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDefaultCamelContext.java @@ -17,21 +17,15 @@ package org.apache.camel.core.osgi; import java.io.IOException; -import java.net.URL; -import java.util.Enumeration; import java.util.Map; import java.util.Properties; -import java.util.SortedMap; -import java.util.TreeMap; import org.apache.camel.TypeConverter; import org.apache.camel.core.osgi.utils.BundleContextUtils; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.spi.FactoryFinder; import org.apache.camel.spi.Registry; -import org.apache.camel.util.CamelContextHelper; import org.apache.camel.util.LoadPropertiesException; -import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; public class OsgiDefaultCamelContext extends DefaultCamelContext { @@ -49,15 +43,9 @@ public class OsgiDefaultCamelContext extends DefaultCamelContext { OsgiCamelContextHelper.osgiUpdate(this, bundleContext); } + @Override public Map<String, Properties> findComponents() throws LoadPropertiesException, IOException { - SortedMap<String, Properties> answer = new TreeMap<String, Properties>(); - Bundle[] bundles = bundleContext.getBundles(); - for (Bundle bundle : bundles) { - Enumeration<URL> iter = bundle.getResources(CamelContextHelper.COMPONENT_DESCRIPTOR); - SortedMap<String,Properties> map = CamelContextHelper.findComponents(this, iter); - answer.putAll(map); - } - return answer; + return BundleContextUtils.findComponents(bundleContext, this); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/d33db16a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleContextUtils.java ---------------------------------------------------------------------- diff --git a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleContextUtils.java b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleContextUtils.java index c0137ef..85a0961 100644 --- a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleContextUtils.java +++ b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleContextUtils.java @@ -16,10 +16,24 @@ */ package org.apache.camel.core.osgi.utils; +import java.io.IOException; import java.lang.reflect.Method; +import java.net.URL; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.Map; +import java.util.Properties; +import java.util.SortedMap; +import java.util.TreeMap; +import org.apache.camel.CamelContext; +import org.apache.camel.spi.ComponentResolver; +import org.apache.camel.util.CamelContextHelper; +import org.apache.camel.util.LoadPropertiesException; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; /** * Helper class @@ -64,4 +78,18 @@ public final class BundleContextUtils { return null; } + /** + * Finds the components available on the bundle context and camel context + */ + public static Map<String, Properties> findComponents(BundleContext bundleContext, CamelContext camelContext) + throws IOException, LoadPropertiesException { + SortedMap<String, Properties> answer = new TreeMap<String, Properties>(); + Bundle[] bundles = bundleContext.getBundles(); + for (Bundle bundle : bundles) { + Enumeration<URL> iter = bundle.getResources(CamelContextHelper.COMPONENT_DESCRIPTOR); + SortedMap<String,Properties> map = CamelContextHelper.findComponents(camelContext, iter); + answer.putAll(map); + } + return answer; + } }