Author: davsclaus
Date: Sun Mar 28 15:07:49 2010
New Revision: 928427

URL: http://svn.apache.org/viewvc?rev=928427&view=rev
Log:
CAMEL-2586: camel-blueprint uses camel-osgi for class resolver. Thanks to Johan 
Edstrom for patch.

Modified:
    camel/trunk/components/camel-blueprint/pom.xml
    
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
    camel/trunk/parent/pom.xml

Modified: camel/trunk/components/camel-blueprint/pom.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/pom.xml?rev=928427&r1=928426&r2=928427&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/pom.xml (original)
+++ camel/trunk/components/camel-blueprint/pom.xml Sun Mar 28 15:07:49 2010
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-parent</artifactId>
-        <version>2.1-SNAPSHOT</version>
+        <version>2.3-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-blueprint</artifactId>
@@ -48,6 +48,15 @@
             <artifactId>camel-core</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-osgi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>aries-blueprint</artifactId>
             <version>1.0.0-incubating-SNAPSHOT</version>

Modified: 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java?rev=928427&r1=928426&r2=928427&view=diff
==============================================================================
--- 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
 (original)
+++ 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
 Sun Mar 28 15:07:49 2010
@@ -53,6 +53,13 @@ import org.apache.camel.model.RouteDefin
 import org.apache.camel.model.TransactedDefinition;
 import org.apache.camel.model.config.PropertiesDefinition;
 import org.apache.camel.model.dataformat.DataFormatsDefinition;
+import org.apache.camel.osgi.OsgiCamelContextHelper;
+import org.apache.camel.osgi.OsgiClassResolver;
+import org.apache.camel.osgi.OsgiComponentResolver;
+import org.apache.camel.osgi.OsgiFactoryFinderResolver;
+import org.apache.camel.osgi.OsgiLanguageResolver;
+import org.apache.camel.osgi.OsgiPackageScanClassResolver;
+import org.apache.camel.osgi.OsgiServiceRegistry;
 import org.apache.camel.processor.interceptor.Delayer;
 import org.apache.camel.processor.interceptor.HandleFault;
 import org.apache.camel.processor.interceptor.TraceFormatter;
@@ -72,6 +79,8 @@ import org.apache.camel.util.EndpointHel
 import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * A bean to create and initialize a {...@link BlueprintCamelContext}
@@ -245,7 +254,9 @@ public class CamelContextFactoryBean ext
         EventNotifier eventNotifier = getBeanForType(EventNotifier.class);
         if (eventNotifier != null) {
             LOG.info("Using custom EventNotifier: " + eventNotifier);
-            
getContext().getManagementStrategy().setEventNotifier(eventNotifier);
+            List notifiers = 
getContext().getManagementStrategy().getEventNotifiers();
+            notifiers.add(eventNotifier);
+            getContext().getManagementStrategy().setEventNotifiers(notifiers);
         }
 
         // add global interceptors
@@ -472,7 +483,7 @@ public class CamelContextFactoryBean ext
             getContext().addLifecycleStrategy(new 
DefaultManagementLifecycleStrategy(getContext()));
             // set additional configuration from camelJMXAgent
             
getContext().getManagementStrategy().onlyManageProcessorWithCustomId(camelJMXAgent.getOnlyRegisterProcessorWithCustomId());
-            
getContext().getManagementStrategy().setSatisticsLevel(camelJMXAgent.getStatisticsLevel());
+            
getContext().getManagementStrategy().setStatisticsLevel(camelJMXAgent.getStatisticsLevel());
         }
     }
 
@@ -773,6 +784,21 @@ public class CamelContextFactoryBean ext
             ctx.setShouldStartContext(shouldStartContext);
         }
 
+        // Adding discovery to this from camel-osgi
+
+        BundleContext bundleContext = 
FrameworkUtil.getBundle(this.getClass()).getBundleContext();
+
+        OsgiServiceRegistry registry = new OsgiServiceRegistry(bundleContext);
+        ctx.setRegistry(registry);
+
+        OsgiCamelContextHelper.updateRegistry(ctx, bundleContext);
+
+        ctx.setClassResolver(new OsgiClassResolver(bundleContext));
+        ctx.setFactoryFinderResolver(new OsgiFactoryFinderResolver());
+        ctx.setPackageScanClassResolver(new 
OsgiPackageScanClassResolver(bundleContext));
+        ctx.setComponentResolver(new OsgiComponentResolver());
+        ctx.setLanguageResolver(new OsgiLanguageResolver());
+
         return ctx;
     }
 

Modified: camel/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/parent/pom.xml?rev=928427&r1=928426&r2=928427&view=diff
==============================================================================
--- camel/trunk/parent/pom.xml (original)
+++ camel/trunk/parent/pom.xml Sun Mar 28 15:07:49 2010
@@ -51,7 +51,7 @@
     <derby-version>10.4.2.0</derby-version>
     <dozer-version>5.2.0</dozer-version>
     <easymock-version>2.5.2</easymock-version>
-    <felix-osgi-version>1.2.0</felix-osgi-version>
+    <felix-osgi-version>1.4.0</felix-osgi-version>
     <flatpack-version>3.1.1</flatpack-version>
     <ftpserver-version>1.0.3</ftpserver-version>
     <fuse-commons-management-version>1.0</fuse-commons-management-version>


Reply via email to