You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by he...@apache.org on 2014/02/19 09:56:11 UTC
git commit: [CAMEL-7218] Rolled back PlatformHelper usage on the
behalf of the old OSGi detection code.
Repository: camel
Updated Branches:
refs/heads/master 8b9d4c625 -> 667443aee
[CAMEL-7218] Rolled back PlatformHelper usage on the behalf of the old OSGi detection code.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/667443ae
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/667443ae
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/667443ae
Branch: refs/heads/master
Commit: 667443aee325b406e57b16d4c70d1971fb001294
Parents: 8b9d4c6
Author: Henryk Konsek <he...@gmail.com>
Authored: Wed Feb 19 09:55:45 2014 +0100
Committer: Henryk Konsek <he...@gmail.com>
Committed: Wed Feb 19 09:55:45 2014 +0100
----------------------------------------------------------------------
.../spring/handler/CamelNamespaceHandler.java | 24 ++++++++++++--------
1 file changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/667443ae/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java b/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
index 6535e69..957c792 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
@@ -51,7 +51,6 @@ import org.apache.camel.spring.CamelThreadPoolFactoryBean;
import org.apache.camel.spring.remoting.CamelProxyFactoryBean;
import org.apache.camel.spring.remoting.CamelServiceExporter;
import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.PlatformHelper;
import org.apache.camel.util.spring.KeyStoreParametersFactoryBean;
import org.apache.camel.util.spring.SSLContextParametersFactoryBean;
import org.apache.camel.util.spring.SecureRandomParametersFactoryBean;
@@ -125,20 +124,27 @@ public class CamelNamespaceHandler extends NamespaceHandlerSupport {
parserMap.put("errorHandler", errorHandlerParser);
// camel context
+ boolean osgi = false;
Class<?> cl = CamelContextFactoryBean.class;
// These code will try to detected if we are in the OSGi environment.
// If so, camel will use the OSGi version of CamelContextFactoryBean to create the CamelContext.
- if (PlatformHelper.isInOsgiEnvironment(getClass().getClassLoader())) {
- try {
+ try {
+ // Try to load the BundleActivator first
+ Class.forName("org.osgi.framework.BundleActivator");
+ Class<?> c = Class.forName("org.apache.camel.osgi.Activator");
+ Method mth = c.getDeclaredMethod("getBundle");
+ Object bundle = mth.invoke(null);
+ if (bundle != null) {
cl = Class.forName("org.apache.camel.osgi.CamelContextFactoryBean");
- LOG.info("OSGi environment detected.");
- } catch (ClassNotFoundException e) {
- LOG.trace("Cannot find CamelContextFactoryBean class so assuming not running in OSGi container: " + e.getMessage());
+ osgi = true;
}
- } else {
- LOG.info("Non-OSGi environment detected.");
+ } catch (Throwable t) {
+ // not running with camel-core-osgi so we fallback to the regular factory bean
+ LOG.trace("Cannot find class so assuming not running in OSGi container: " + t.getMessage());
}
-
+ if (osgi) {
+ LOG.info("OSGi environment detected.");
+ }
LOG.debug("Using {} as CamelContextBeanDefinitionParser", cl.getCanonicalName());
registerParser("camelContext", new CamelContextBeanDefinitionParser(cl));
}