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);