Author: ningjiang
Date: Wed Aug 11 04:28:43 2010
New Revision: 984300

URL: http://svn.apache.org/viewvc?rev=984300&view=rev
Log:
CAMEL-3042 update the camel context id from CamelContextFactoryBean of buleprint

Modified:
    
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java
    
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
    
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java

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=984300&r1=984299&r2=984300&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
 Wed Aug 11 04:28:43 2010
@@ -18,6 +18,7 @@ package org.apache.camel.blueprint;
 
 import org.apache.camel.TypeConverter;
 import org.apache.camel.core.osgi.OsgiCamelContextHelper;
+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.OsgiPackageScanClassResolver;
@@ -44,6 +45,7 @@ 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));

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=984300&r1=984299&r2=984300&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
 Wed Aug 11 04:28:43 2010
@@ -140,6 +140,8 @@ public class CamelContextFactoryBean ext
     private BlueprintContainer blueprintContainer;
     @XmlTransient
     private BundleContext bundleContext;
+    @XmlTransient
+    private boolean implicitId;
 
 
     public Class getObjectType() {
@@ -150,6 +152,9 @@ public class CamelContextFactoryBean ext
     public BlueprintCamelContext getContext(boolean create) {
         if (context == null && create) {
             context = createContext();
+            if (!isImplicitId()) {
+                context.setName(getId());
+            }
         }
         return context;
     }
@@ -418,5 +423,13 @@ public class CamelContextFactoryBean ext
     public ClassLoader getContextClassLoaderOnStart() {
         return contextClassLoaderOnStart;
     }
+    
+    public boolean isImplicitId() {
+        return implicitId;
+    }
+    
+    public void setImplicitId(boolean flag) {
+        implicitId = flag;
+    }
 
 }

Modified: 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java?rev=984300&r1=984299&r2=984300&view=diff
==============================================================================
--- 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
 (original)
+++ 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
 Wed Aug 11 04:28:43 2010
@@ -42,6 +42,7 @@ import org.apache.aries.blueprint.mutabl
 import org.apache.camel.blueprint.BlueprintCamelContext;
 import org.apache.camel.blueprint.CamelContextFactoryBean;
 import org.apache.camel.core.xml.AbstractCamelContextFactoryBean;
+import org.apache.camel.impl.DefaultCamelContextNameStrategy;
 import org.apache.camel.model.AggregateDefinition;
 import org.apache.camel.model.CatchDefinition;
 import org.apache.camel.model.DataFormatDefinition;
@@ -111,9 +112,14 @@ public class CamelNamespaceHandler imple
         if (element.getNodeName().equals(CAMEL_CONTEXT)) {
             // Find the id, generate one if needed
             String contextId = element.getAttribute("id");
+            boolean implicitId = false;
+
+            // lets avoid folks having to explicitly give an ID to a camel 
context
             if (ObjectHelper.isEmpty(contextId)) {
-                contextId = "camelContext";
+                // if no explicit id was set then use a default auto generated 
name
+                contextId = DefaultCamelContextNameStrategy.getNextName();
                 element.setAttribute("id", contextId);
+                implicitId = true;
             }
 
             // now lets parse the routes with JAXB
@@ -134,6 +140,7 @@ public class CamelNamespaceHandler imple
                 ccfb.setBlueprintContainer((BlueprintContainer) 
ptm.getObject());
                 ptm = (PassThroughMetadata) 
context.getComponentDefinitionRegistry().getComponentDefinition("blueprintBundleContext");
                 ccfb.setBundleContext((BundleContext) ptm.getObject());
+                ccfb.setImplicitId(implicitId);
                 ccfb.afterPropertiesSet();
             } catch (Exception e) {
                 throw new ComponentDefinitionException("Unable to initialize 
camel context factory", e);


Reply via email to