You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/02/21 03:51:47 UTC

svn commit: r1291564 - in /camel/branches/camel-2.9.x: ./ components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java

Author: ningjiang
Date: Tue Feb 21 02:51:47 2012
New Revision: 1291564

URL: http://svn.apache.org/viewvc?rev=1291564&view=rev
Log:
Merged revisions 1291555 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1291555 | ningjiang | 2012-02-21 10:19:04 +0800 (Tue, 21 Feb 2012) | 1 line
  
  CAMEL-5010 try to load the org.osgi.framework.BundleActivator first
........

Modified:
    camel/branches/camel-2.9.x/   (props changed)
    camel/branches/camel-2.9.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb 21 02:51:47 2012
@@ -1 +1 @@
-/camel/trunk:1243046,1243057,1243234,1244518,1244644,1244859,1244861,1244864,1244870,1244872,1245021
+/camel/trunk:1243046,1243057,1243234,1244518,1244644,1244859,1244861,1244864,1244870,1244872,1245021,1291555

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.9.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java?rev=1291564&r1=1291563&r2=1291564&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java (original)
+++ camel/branches/camel-2.9.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java Tue Feb 21 02:51:47 2012
@@ -122,7 +122,28 @@ public class CamelNamespaceHandler exten
         registerParser("errorHandler", errorHandlerParser);
         parserMap.put("errorHandler", errorHandlerParser);
 
-        Class cl = CamelContextFactoryBean.class;
+        // camel context
+        boolean osgi = false;
+        Class<?> cl = CamelContextFactoryBean.class;
+        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");
+                osgi = true;
+            }
+        } catch (Throwable t) {
+            // not running with camel-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.");
+        } else {
+            LOG.info("OSGi environment not detected.");
+        }
         LOG.debug("Using {} as CamelContextBeanDefinitionParser", cl.getCanonicalName());
         registerParser("camelContext", new CamelContextBeanDefinitionParser(cl));
     }