You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2010/05/28 09:52:36 UTC
svn commit: r949127 [1/5] - in /camel/trunk: components/
components/camel-blueprint/
components/camel-blueprint/src/main/java/org/apache/camel/blueprint/
components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/
components/camel-blue...
Author: gnodet
Date: Fri May 28 07:52:33 2010
New Revision: 949127
URL: http://svn.apache.org/viewvc?rev=949127&view=rev
Log:
CAMEL-2702: Extract base classes for camel-spring into a new module so that they can be shared with camel-blueprint
Added:
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelThreadPoolFactoryBean.java
camel/trunk/components/camel-core-osgi/
camel/trunk/components/camel-core-osgi/pom.xml
camel/trunk/components/camel-core-osgi/src/
camel/trunk/components/camel-core-osgi/src/main/
camel/trunk/components/camel-core-osgi/src/main/java/
camel/trunk/components/camel-core-osgi/src/main/java/org/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/Activator.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/CompositeRegistry.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiAnnotationTypeConverterLoader.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextHelper.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDefaultCamelContext.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiFactoryFinder.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiFactoryFinderResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiPackageScanClassResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiServiceRegistry.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/tracker/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/tracker/AbstractTracked.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/tracker/BundleTracker.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/tracker/BundleTrackerCustomizer.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleDelegatingClassLoader.java
camel/trunk/components/camel-core-xml/
camel/trunk/components/camel-core-xml/pom.xml
camel/trunk/components/camel-core-xml/src/
camel/trunk/components/camel-core-xml/src/main/
camel/trunk/components/camel-core-xml/src/main/java/
camel/trunk/components/camel-core-xml/src/main/java/org/
camel/trunk/components/camel-core-xml/src/main/java/org/apache/
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelConsumerTemplateFactoryBean.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelEndpointFactoryBean.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelProducerTemplateFactoryBean.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelThreadPoolFactoryBean.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelPropertyPlaceholderDefinition.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelProxyFactoryDefinition.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelServiceExporterDefinition.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/package-info.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/scan/
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/scan/AntPathMatcher.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/scan/PatternBasedPackageScanFilter.java
camel/trunk/components/camel-core-xml/src/main/resources/
camel/trunk/components/camel-core-xml/src/main/resources/org/
camel/trunk/components/camel-core-xml/src/main/resources/org/apache/
camel/trunk/components/camel-core-xml/src/main/resources/org/apache/camel/
camel/trunk/components/camel-core-xml/src/main/resources/org/apache/camel/core/
camel/trunk/components/camel-core-xml/src/main/resources/org/apache/camel/core/xml/
camel/trunk/components/camel-core-xml/src/main/resources/org/apache/camel/core/xml/jaxb.index
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelNamespaceHandler.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiSpringCamelContext.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/SpringCamelContextFactory.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/ActivatorTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundle.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockBundleContext.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/CamelOsgiTestSupport.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/OsgiAnnotationTypeConverterLoaderTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/OsgiClassResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/OsgiComponentResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/OsgiFactoryFinderTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/OsgiLanguageResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/OsgiPackageScanClassResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/core/osgi/ServiceRegistryTest.java
Removed:
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelJMXAgentDefinition.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelProxyFactoryDefinition.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelServiceExporterDefinition.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/Activator.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CompositeRegistry.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiCamelContextHelper.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiComponentResolver.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiDefaultCamelContext.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiFactoryFinder.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiFactoryFinderResolver.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiLanguageResolver.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiServiceRegistry.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/package-info.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/tracker/
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/ActivatorTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelMockBundle.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelMockBundleContext.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiComponentResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiFactoryFinderTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiLanguageResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiPackageScanClassResolverTest.java
camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/ServiceRegistryTest.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelJMXAgentDefinition.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelPropertyPlaceholderDefinition.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelProxyFactoryDefinition.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelServiceExporterDefinition.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerDefinition.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerType.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/PatternBasedPackageScanFilter.java
Modified:
camel/trunk/components/camel-blueprint/pom.xml
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/CamelConsumerTemplateFactoryBean.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/CamelEndpointFactoryBean.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelProducerTemplateFactoryBean.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
camel/trunk/components/camel-blueprint/src/main/resources/org/apache/camel/blueprint/jaxb.index
camel/trunk/components/camel-osgi/pom.xml
camel/trunk/components/camel-spring-osgi/pom.xml
camel/trunk/components/camel-spring/pom.xml
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelConsumerTemplateFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelProducerTemplateFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelThreadPoolFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.java
camel/trunk/components/camel-spring/src/main/resources/org/apache/camel/spring/jaxb.index
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/scan/PatternBasedPackageScanFilterTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/scan/ScanTestSupport.java
camel/trunk/components/pom.xml
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=949127&r1=949126&r2=949127&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/pom.xml (original)
+++ camel/trunk/components/camel-blueprint/pom.xml Fri May 28 07:52:33 2010
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.camel</groupId>
<artifactId>camel-parent</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
</parent>
<artifactId>camel-blueprint</artifactId>
@@ -40,6 +40,10 @@
<camel.osgi.export>
org.apache.camel.blueprint*;${camel.osgi.version}
</camel.osgi.export>
+ <camel.osgi.private.pkg>
+ org.apache.camel.core.osgi*,
+ org.apache.camel.core.xml*
+ </camel.osgi.private.pkg>
</properties>
<dependencies>
@@ -49,7 +53,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-osgi</artifactId>
+ <artifactId>camel-core-xml</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-osgi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -58,8 +66,11 @@
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
- <artifactId>aries-blueprint</artifactId>
- <version>1.0.0-incubating-SNAPSHOT</version>
+ <artifactId>org.apache.aries.blueprint</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
</dependency>
<!-- for testing -->
@@ -293,6 +304,9 @@
<include name="org/apache/camel/blueprint/Camel*.java"/>
<include name="org/apache/camel/blueprint/package-info.java"/>
</fileset>
+ <fileset dir="${basedir}/../camel-core-xml/src/main/java">
+ <include name="org/apache/camel/core/xml/*.java"/>
+ </fileset>
<fileset dir="${basedir}/../../camel-core/src/main/java">
<include name="org/apache/camel/model/**/*.java"/>
<include name="org/apache/camel/ExchangePattern.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=949127&r1=949126&r2=949127&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 Fri May 28 07:52:33 2010
@@ -17,7 +17,6 @@
package org.apache.camel.blueprint;
import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.util.ObjectHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -25,18 +24,11 @@ public class BlueprintCamelContext exten
private static final transient Log LOG = LogFactory.getLog(BlueprintCamelContext.class);
- private boolean shouldStartContext = ObjectHelper.getSystemProperty("shouldStartContext", Boolean.TRUE);
-
public void init() throws Exception {
maybeStart();
}
private void maybeStart() throws Exception {
- if (!getShouldStartContext()) {
- LOG.info("Not starting Apache Camel as property ShouldStartContext is false");
- return;
- }
-
if (!isStarted() && !isStarting()) {
// Make sure we will not get into the endless loop of calling star
LOG.info("Starting Apache Camel as property ShouldStartContext is true");
@@ -51,12 +43,4 @@ public class BlueprintCamelContext exten
stop();
}
- public void setShouldStartContext(boolean shouldStartContext) {
- this.shouldStartContext = shouldStartContext;
- }
-
- public boolean getShouldStartContext() {
- return shouldStartContext;
- }
-
}
Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelConsumerTemplateFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelConsumerTemplateFactoryBean.java?rev=949127&r1=949126&r2=949127&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelConsumerTemplateFactoryBean.java (original)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelConsumerTemplateFactoryBean.java Fri May 28 07:52:33 2010
@@ -22,9 +22,8 @@ import javax.xml.bind.annotation.XmlRoot
import javax.xml.bind.annotation.XmlTransient;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.impl.DefaultConsumerTemplate;
-import org.apache.camel.model.IdentifiedType;
+import org.apache.camel.core.xml.AbstractCamelConsumerTemplateFactoryBean;
+import org.osgi.service.blueprint.container.BlueprintContainer;
/**
* A factory for creating a new {@link org.apache.camel.ConsumerTemplate}
@@ -34,36 +33,21 @@ import org.apache.camel.model.Identified
*/
@XmlRootElement(name = "consumerTemplate")
@XmlAccessorType(XmlAccessType.FIELD)
-public class CamelConsumerTemplateFactoryBean extends IdentifiedType implements CamelContextAware {
- @XmlTransient
- private CamelContext camelContext;
-
- public void afterPropertiesSet() throws Exception {
- if (camelContext == null) {
- throw new IllegalArgumentException("A CamelContext must be injected!");
- }
- }
-
- public Object getObject() throws Exception {
- return new DefaultConsumerTemplate(getCamelContext());
- }
+public class CamelConsumerTemplateFactoryBean extends AbstractCamelConsumerTemplateFactoryBean {
- public Class getObjectType() {
- return DefaultConsumerTemplate.class;
- }
-
- public boolean isSingleton() {
- return false;
- }
+ @XmlTransient
+ private BlueprintContainer blueprintContainer;
- // Properties
- // -------------------------------------------------------------------------
- public CamelContext getCamelContext() {
- return camelContext;
+ public void setBlueprintContainer(BlueprintContainer blueprintContainer) {
+ this.blueprintContainer = blueprintContainer;
}
- public void setCamelContext(CamelContext camelContext) {
- this.camelContext = camelContext;
+ @Override
+ protected CamelContext getCamelContextWithId(String camelContextId) {
+ if (blueprintContainer != null) {
+ return (CamelContext) blueprintContainer.getComponentInstance(camelContextId);
+ }
+ return null;
}
}
\ No newline at end of file
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=949127&r1=949126&r2=949127&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 Fri May 28 07:52:33 2010
@@ -17,9 +17,7 @@
package org.apache.camel.blueprint;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
-import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
@@ -28,55 +26,27 @@ import javax.xml.bind.annotation.XmlElem
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
-import org.apache.camel.CamelException;
import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.ErrorHandlerBuilderRef;
+import org.apache.camel.ShutdownRoute;
+import org.apache.camel.ShutdownRunningTask;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.management.DefaultManagementAgent;
-import org.apache.camel.management.DefaultManagementLifecycleStrategy;
-import org.apache.camel.management.DefaultManagementStrategy;
-import org.apache.camel.management.ManagedManagementStrategy;
-import org.apache.camel.model.FromDefinition;
-import org.apache.camel.model.IdentifiedType;
-import org.apache.camel.model.InterceptDefinition;
-import org.apache.camel.model.InterceptFromDefinition;
-import org.apache.camel.model.InterceptSendToEndpointDefinition;
-import org.apache.camel.model.OnCompletionDefinition;
-import org.apache.camel.model.OnExceptionDefinition;
-import org.apache.camel.model.PackageScanDefinition;
-import org.apache.camel.model.PolicyDefinition;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.RouteBuilderDefinition;
-import org.apache.camel.model.RouteContainer;
-import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.model.TransactedDefinition;
+import org.apache.camel.model.*;
import org.apache.camel.model.config.PropertiesDefinition;
import org.apache.camel.model.dataformat.DataFormatsDefinition;
-import org.apache.camel.osgi.OsgiAnnotationTypeConverterLoader;
-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;
-import org.apache.camel.processor.interceptor.Tracer;
-import org.apache.camel.spi.ClassResolver;
-import org.apache.camel.spi.EventFactory;
-import org.apache.camel.spi.EventNotifier;
-import org.apache.camel.spi.FactoryFinderResolver;
-import org.apache.camel.spi.InflightRepository;
-import org.apache.camel.spi.InterceptStrategy;
-import org.apache.camel.spi.LifecycleStrategy;
-import org.apache.camel.spi.ManagementStrategy;
-import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.camel.spi.Registry;
-import org.apache.camel.spring.PatternBasedPackageScanFilter;
-import org.apache.camel.util.EndpointHelper;
+import org.apache.camel.core.osgi.OsgiAnnotationTypeConverterLoader;
+import org.apache.camel.core.osgi.OsgiCamelContextHelper;
+import org.apache.camel.core.osgi.OsgiClassResolver;
+import org.apache.camel.core.osgi.OsgiComponentResolver;
+import org.apache.camel.core.osgi.OsgiFactoryFinderResolver;
+import org.apache.camel.core.osgi.OsgiLanguageResolver;
+import org.apache.camel.core.osgi.OsgiPackageScanClassResolver;
+import org.apache.camel.core.osgi.OsgiServiceRegistry;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.core.xml.AbstractCamelContextFactoryBean;
+import org.apache.camel.core.xml.CamelJMXAgentDefinition;
+import org.apache.camel.core.xml.CamelPropertyPlaceholderDefinition;
+import org.apache.camel.core.xml.CamelProxyFactoryDefinition;
+import org.apache.camel.core.xml.CamelServiceExporterDefinition;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.osgi.framework.BundleContext;
@@ -92,23 +62,32 @@ import org.osgi.framework.FrameworkUtil;
*/
@XmlRootElement(name = "camelContext")
@XmlAccessorType(XmlAccessType.FIELD)
-public class CamelContextFactoryBean extends IdentifiedType implements RouteContainer {
+public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<BlueprintCamelContext> {
+
private static final Log LOG = LogFactory.getLog(CamelContextFactoryBean.class);
+ @XmlAttribute(name = "depends-on", required = false)
+ private String dependsOn;
@XmlAttribute(required = false)
- private Boolean trace;
+ private String trace;
@XmlAttribute(required = false)
- private Boolean streamCache = Boolean.FALSE;
+ private String streamCache = "false";
@XmlAttribute(required = false)
- private Long delayer;
+ private String delayer;
@XmlAttribute(required = false)
- private Boolean handleFault;
+ private String handleFault;
@XmlAttribute(required = false)
private String errorHandlerRef;
@XmlAttribute(required = false)
- private Boolean shouldStartContext = Boolean.TRUE;
+ private String autoStartup = "true";
+ @XmlAttribute(required = false)
+ private ShutdownRoute shutdownRoute;
+ @XmlAttribute(required = false)
+ private ShutdownRunningTask shutdownRunningTask;
@XmlElement(name = "properties", required = false)
private PropertiesDefinition properties;
+ @XmlElement(name = "propertyPlaceholder", type = CamelPropertyPlaceholderDefinition.class, required = false)
+ private CamelPropertyPlaceholderDefinition camelPropertyPlaceholder;
@XmlElement(name = "package", required = false)
private String[] packages = {};
@XmlElement(name = "packageScan", type = PackageScanDefinition.class, required = false)
@@ -120,10 +99,18 @@ public class CamelContextFactoryBean ext
@XmlElement(name = "template", type = CamelProducerTemplateFactoryBean.class, required = false),
@XmlElement(name = "consumerTemplate", type = CamelConsumerTemplateFactoryBean.class, required = false),
@XmlElement(name = "proxy", type = CamelProxyFactoryDefinition.class, required = false),
- @XmlElement(name = "export", type = CamelServiceExporterDefinition.class, required = false)})
+ @XmlElement(name = "export", type = CamelServiceExporterDefinition.class, required = false) //,
+// @XmlElement(name = "errorHandler", type = ErrorHandlerDefinition.class, required = false)
+ })
private List beans;
@XmlElement(name = "routeBuilder", required = false)
private List<RouteBuilderDefinition> builderRefs = new ArrayList<RouteBuilderDefinition>();
+ @XmlElement(name = "routeContextRef", required = false)
+ private List<RouteContextRefDefinition> routeRefs = new ArrayList<RouteContextRefDefinition>();
+ @XmlElement(name = "threadPoolProfile", required = false)
+ private List<ThreadPoolProfileDefinition> threadPoolProfiles;
+ @XmlElement(name = "threadPool", required = false)
+ private List<CamelThreadPoolFactoryBean> threadPools;
@XmlElement(name = "endpoint", required = false)
private List<CamelEndpointFactoryBean> endpoints;
@XmlElement(name = "dataFormats", required = false)
@@ -143,470 +130,182 @@ public class CamelContextFactoryBean ext
@XmlTransient
private BlueprintCamelContext context;
@XmlTransient
- private RouteBuilder routeBuilder;
- @XmlTransient
- private List<RoutesBuilder> additionalBuilders = new ArrayList<RoutesBuilder>();
+ private ClassLoader contextClassLoaderOnStart;
// @XmlTransient
// private ApplicationContext applicationContext;
- @XmlTransient
- private ClassLoader contextClassLoaderOnStart;
// @XmlTransient
// private BeanPostProcessor beanPostProcessor;
- public CamelContextFactoryBean() {
- // Lets keep track of the class loader for when we actually do start things up
- contextClassLoaderOnStart = Thread.currentThread().getContextClassLoader();
- }
-
- public Object getObject() throws Exception {
- return getContext();
- }
public Class getObjectType() {
return BlueprintCamelContext.class;
}
- public boolean isSingleton() {
- return true;
- }
-
- public ClassLoader getContextClassLoaderOnStart() {
- return contextClassLoaderOnStart;
- }
-
- public List<RoutesBuilder> getAdditionalBuilders() {
- return additionalBuilders;
- }
-
- public void init() throws Exception {
- if (properties != null) {
- getContext().setProperties(properties.asMap());
- }
-
- // setup JMX agent at first
- initJMXAgent();
-
- // set the resolvers first
- PackageScanClassResolver packageResolver = getBeanForType(PackageScanClassResolver.class);
- if (packageResolver != null) {
- LOG.info("Using custom PackageScanClassResolver: " + packageResolver);
- getContext().setPackageScanClassResolver(packageResolver);
- }
- ClassResolver classResolver = getBeanForType(ClassResolver.class);
- if (classResolver != null) {
- LOG.info("Using custom ClassResolver: " + classResolver);
- getContext().setClassResolver(classResolver);
- }
- FactoryFinderResolver factoryFinderResolver = getBeanForType(FactoryFinderResolver.class);
- if (factoryFinderResolver != null) {
- LOG.info("Using custom FactoryFinderResolver: " + factoryFinderResolver);
- getContext().setFactoryFinderResolver(factoryFinderResolver);
- }
-
- // set the strategy if defined
- Registry registry = getBeanForType(Registry.class);
- if (registry != null) {
- LOG.info("Using custom Registry: " + registry);
- getContext().setRegistry(registry);
- }
-
- Tracer tracer = getBeanForType(Tracer.class);
- if (tracer != null) {
- // use formatter if there is a TraceFormatter bean defined
- TraceFormatter formatter = getBeanForType(TraceFormatter.class);
- if (formatter != null) {
- tracer.setFormatter(formatter);
- }
- LOG.info("Using custom Tracer: " + tracer);
- getContext().addInterceptStrategy(tracer);
+ @Override
+ public BlueprintCamelContext getContext(boolean create) {
+ if (context == null && create) {
+ context = createContext();
}
+ return context;
+ }
- HandleFault handleFault = getBeanForType(HandleFault.class);
- if (handleFault != null) {
- LOG.info("Using custom HandleFault: " + handleFault);
- getContext().addInterceptStrategy(handleFault);
- }
+ protected BlueprintCamelContext createContext() {
+ BlueprintCamelContext ctx = new BlueprintCamelContext();
+ ctx.setName(getId());
- Delayer delayer = getBeanForType(Delayer.class);
- if (delayer != null) {
- LOG.info("Using custom Delayer: " + delayer);
- getContext().addInterceptStrategy(delayer);
- }
+ // Adding discovery to this from camel-osgi
- InflightRepository inflightRepository = getBeanForType(InflightRepository.class);
- if (delayer != null) {
- LOG.info("Using custom InflightRepository: " + inflightRepository);
- getContext().setInflightRepository(inflightRepository);
- }
+ BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
- ManagementStrategy managementStrategy = getBeanForType(ManagementStrategy.class);
- if (managementStrategy != null) {
- LOG.info("Using custom ManagementStrategy: " + managementStrategy);
- getContext().setManagementStrategy(managementStrategy);
- }
+ OsgiServiceRegistry registry = new OsgiServiceRegistry(bundleContext);
+ ctx.setRegistry(registry);
- EventFactory eventFactory = getBeanForType(EventFactory.class);
- if (eventFactory != null) {
- LOG.info("Using custom EventFactory: " + eventFactory);
- getContext().getManagementStrategy().setEventFactory(eventFactory);
- }
+ OsgiCamelContextHelper.updateRegistry(ctx, bundleContext);
- EventNotifier eventNotifier = getBeanForType(EventNotifier.class);
- if (eventNotifier != null) {
- LOG.info("Using custom EventNotifier: " + eventNotifier);
- List notifiers = getContext().getManagementStrategy().getEventNotifiers();
- notifiers.add(eventNotifier);
- getContext().getManagementStrategy().setEventNotifiers(notifiers);
- }
+ ctx.setClassResolver(new OsgiClassResolver(bundleContext));
+ ctx.setFactoryFinderResolver(new OsgiFactoryFinderResolver());
+ ctx.setPackageScanClassResolver(new OsgiPackageScanClassResolver(bundleContext));
+ ctx.setComponentResolver(new OsgiComponentResolver());
+ ctx.setLanguageResolver(new OsgiLanguageResolver());
- // add global interceptors
- Map<String, InterceptStrategy> interceptStrategies = getContext().getRegistry().lookupByType(InterceptStrategy.class);
- if (interceptStrategies != null && !interceptStrategies.isEmpty()) {
- for (String id : interceptStrategies.keySet()) {
- InterceptStrategy strategy = interceptStrategies.get(id);
- // do not add if already added, for instance a tracer that is also an InterceptStrategy class
- if (!getContext().getInterceptStrategies().contains(strategy)) {
- LOG.info("Using custom intercept strategy with id: " + id + " and implementation: " + strategy);
- getContext().addInterceptStrategy(strategy);
- }
- }
+ OsgiAnnotationTypeConverterLoader typeConverterLoader = new OsgiAnnotationTypeConverterLoader(new OsgiPackageScanClassResolver(bundleContext));
+ try {
+ typeConverterLoader.load(ctx.getTypeConverterRegistry());
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
}
- // set the lifecycle strategy if defined
- Map<String, LifecycleStrategy> lifecycleStrategies = getContext().getRegistry().lookupByType(LifecycleStrategy.class);
- if (lifecycleStrategies != null && !lifecycleStrategies.isEmpty()) {
- for (String id : lifecycleStrategies.keySet()) {
- LifecycleStrategy strategy = lifecycleStrategies.get(id);
- // do not add if already added, for instance a tracer that is also an InterceptStrategy class
- if (!getContext().getLifecycleStrategies().contains(strategy)) {
- LOG.info("Using custom lifecycle strategy with id: " + id + " and implementation: " + strategy);
- getContext().addLifecycleStrategy(strategy);
- }
- }
- }
+ return ctx;
+ }
- // Set the application context and camelContext for the beanPostProcessor
-// if (beanPostProcessor != null) {
-// if (beanPostProcessor instanceof ApplicationContextAware) {
-// ((ApplicationContextAware)beanPostProcessor).setApplicationContext(applicationContext);
-// }
-// if (beanPostProcessor instanceof CamelBeanPostProcessor) {
-// ((CamelBeanPostProcessor)beanPostProcessor).setCamelContext(getContext());
-// }
-// }
-
- // do special preparation for some concepts such as interceptors and policies
- // this is needed as JAXB does not build excaclty the same model definition as Spring DSL would do
- // using route builders. So we have here a little custom code to fix the JAXB gaps
- for (RouteDefinition route : routes) {
- // interceptors should be first
- initInterceptors(route);
- // then on completion
- initOnCompletions(route);
- // then polices
- initPolicies(route);
- // and last on exception
- initOnExceptions(route);
- }
+ @Override
+ protected void initCustomRegistry(BlueprintCamelContext context) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
- if (dataFormats != null) {
- getContext().setDataFormats(dataFormats.asMap());
- }
+ @Override
+ protected Object getBeanForType(Class clazz) {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- // lets force any lazy creation
- getContext().addRouteDefinitions(routes);
+ @Override
+ protected void initBeanPostProcessor(BlueprintCamelContext context) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
- if (LOG.isDebugEnabled()) {
- LOG.debug("Found JAXB created routes: " + getRoutes());
- }
- findRouteBuilders();
- installRoutes();
+ @Override
+ protected void postProcessBeforeInit(RouteBuilder builder) {
+ //To change body of implemented methods use File | Settings | File Templates.
}
- private void initOnExceptions(RouteDefinition route) {
- List<ProcessorDefinition<?>> outputs = new ArrayList<ProcessorDefinition<?>>();
- List<ProcessorDefinition<?>> exceptionHandlers = new ArrayList<ProcessorDefinition<?>>();
-
- // add global on exceptions if any
- if (onExceptions != null && !onExceptions.isEmpty()) {
- // on exceptions must be added at top, so the route flow is correct as
- // on exceptions should be the first outputs
- route.getOutputs().addAll(0, onExceptions);
- }
+ @Override
+ protected void findRouteBuilders(String[] normalized, List<RoutesBuilder> builders) throws Exception {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
- for (ProcessorDefinition output : route.getOutputs()) {
- // split into on exception and regular outputs
- if (output instanceof OnExceptionDefinition) {
- exceptionHandlers.add(output);
- } else {
- outputs.add(output);
- }
- }
+ public String getDependsOn() {
+ return dependsOn;
+ }
- // clearing the outputs
- route.clearOutput();
+ public void setDependsOn(String dependsOn) {
+ this.dependsOn = dependsOn;
+ }
- // add exception handlers as top children
- route.getOutputs().addAll(exceptionHandlers);
+ public String getAutoStartup() {
+ return autoStartup;
+ }
- // and the remaining outputs
- route.getOutputs().addAll(outputs);
+ public void setAutoStartup(String autoStartup) {
+ this.autoStartup = autoStartup;
}
- private void initInterceptors(RouteDefinition route) {
+ public ShutdownRoute getShutdownRoute() {
+ return shutdownRoute;
+ }
- // configure intercept
- for (InterceptDefinition intercept : getIntercepts()) {
- intercept.afterPropertiesSet();
- // add as first output so intercept is handled before the actual route and that gives
- // us the needed head start to init and be able to intercept all the remaining processing steps
- route.getOutputs().add(0, intercept);
- }
+ public void setShutdownRoute(ShutdownRoute shutdownRoute) {
+ this.shutdownRoute = shutdownRoute;
+ }
- // configure intercept from
- for (InterceptFromDefinition intercept : getInterceptFroms()) {
+ public ShutdownRunningTask getShutdownRunningTask() {
+ return shutdownRunningTask;
+ }
- // should we only apply interceptor for a given endpoint uri
- boolean match = true;
- if (intercept.getUri() != null) {
- match = false;
- for (FromDefinition input : route.getInputs()) {
- if (EndpointHelper.matchEndpoint(input.getUri(), intercept.getUri())) {
- match = true;
- break;
- }
- }
- }
-
- if (match) {
- intercept.afterPropertiesSet();
- // add as first output so intercept is handled before the acutal route and that gives
- // us the needed head start to init and be able to intercept all the remaining processing steps
- route.getOutputs().add(0, intercept);
- }
- }
+ public void setShutdownRunningTask(ShutdownRunningTask shutdownRunningTask) {
+ this.shutdownRunningTask = shutdownRunningTask;
+ }
- // configure intercept send to endpoint
- for (InterceptSendToEndpointDefinition intercept : getInterceptSendToEndpoints()) {
- intercept.afterPropertiesSet();
- // add as first output so intercept is handled before the acutal route and that gives
- // us the needed head start to init and be able to intercept all the remaining processing steps
- route.getOutputs().add(0, intercept);
- }
+ public CamelPropertyPlaceholderDefinition getCamelPropertyPlaceholder() {
+ return camelPropertyPlaceholder;
+ }
+ public void setCamelPropertyPlaceholder(CamelPropertyPlaceholderDefinition camelPropertyPlaceholder) {
+ this.camelPropertyPlaceholder = camelPropertyPlaceholder;
}
- private void initOnCompletions(RouteDefinition route) {
- // only add global onCompletion if there are no route alredy
- boolean hasRouteScope = false;
- for (ProcessorDefinition out : route.getOutputs()) {
- if (out instanceof OnCompletionDefinition) {
- hasRouteScope = true;
- break;
- }
- }
- // only add global onCompletion if we do *not* have any route onCompletion defined in the route
- // add onCompletion *after* intercept, as its important intercept is first
- if (!hasRouteScope) {
- int index = 0;
- for (int i = 0; i < route.getOutputs().size(); i++) {
- index = i;
- ProcessorDefinition out = route.getOutputs().get(i);
- if (out instanceof InterceptDefinition || out instanceof InterceptSendToEndpointDefinition) {
- continue;
- } else {
- // we found the spot
- break;
- }
- }
- route.getOutputs().addAll(index, getOnCompletions());
- }
+ public List<RouteContextRefDefinition> getRouteRefs() {
+ return routeRefs;
}
- private void initPolicies(RouteDefinition route) {
- // setup the policies as JAXB yet again have not created a correct model for us
- List<ProcessorDefinition> types = route.getOutputs();
-
- // we need two types as transacted cannot extend policy due JAXB limitations
- PolicyDefinition policy = null;
- TransactedDefinition transacted = null;
-
- // add to correct type
- for (ProcessorDefinition type : types) {
- if (type instanceof PolicyDefinition) {
- policy = (PolicyDefinition) type;
- } else if (type instanceof TransactedDefinition) {
- transacted = (TransactedDefinition) type;
- } else if (policy != null) {
- // the outputs should be moved to the policy
- policy.addOutput(type);
- } else if (transacted != null) {
- // the outputs should be moved to the transacted policy
- transacted.addOutput(type);
- }
- }
+ public void setRouteRefs(List<RouteContextRefDefinition> routeRefs) {
+ this.routeRefs = routeRefs;
+ }
- // did we find a policy if so replace it as the only output on the route
- if (policy != null) {
- route.clearOutput();
- route.addOutput(policy);
- } else if (transacted != null) {
- route.clearOutput();
- route.addOutput(transacted);
- }
+ public List<ThreadPoolProfileDefinition> getThreadPoolProfiles() {
+ return threadPoolProfiles;
}
- private void initJMXAgent() throws Exception {
- if (camelJMXAgent != null && camelJMXAgent.isDisabled()) {
- LOG.info("JMXAgent disabled");
- // clear the existing lifecycle strategies define by the DefaultCamelContext constructor
- getContext().getLifecycleStrategies().clear();
- // no need to add a lifecycle strategy as we do not need one as JMX is disabled
- getContext().setManagementStrategy(new DefaultManagementStrategy());
- } else if (camelJMXAgent != null) {
- LOG.info("JMXAgent enabled: " + camelJMXAgent);
- DefaultManagementAgent agent = new DefaultManagementAgent();
- agent.setConnectorPort(camelJMXAgent.getConnectorPort());
- agent.setCreateConnector(camelJMXAgent.isCreateConnector());
- agent.setMBeanObjectDomainName(camelJMXAgent.getMbeanObjectDomainName());
- agent.setMBeanServerDefaultDomain(camelJMXAgent.getMbeanServerDefaultDomain());
- agent.setRegistryPort(camelJMXAgent.getRegistryPort());
- agent.setServiceUrlPath(camelJMXAgent.getServiceUrlPath());
- agent.setUsePlatformMBeanServer(camelJMXAgent.isUsePlatformMBeanServer());
- agent.setOnlyRegisterProcessorWithCustomId(camelJMXAgent.getOnlyRegisterProcessorWithCustomId());
-
- ManagementStrategy managementStrategy = new ManagedManagementStrategy(agent);
- getContext().setManagementStrategy(managementStrategy);
-
- // clear the existing lifecycle strategies define by the DefaultCamelContext constructor
- getContext().getLifecycleStrategies().clear();
- getContext().addLifecycleStrategy(new DefaultManagementLifecycleStrategy(getContext()));
- // set additional configuration from camelJMXAgent
- getContext().getManagementStrategy().onlyManageProcessorWithCustomId(camelJMXAgent.getOnlyRegisterProcessorWithCustomId());
- getContext().getManagementStrategy().setStatisticsLevel(camelJMXAgent.getStatisticsLevel());
- }
+ public void setThreadPoolProfiles(List<ThreadPoolProfileDefinition> threadPoolProfiles) {
+ this.threadPoolProfiles = threadPoolProfiles;
}
- @SuppressWarnings("unchecked")
- private <T> T getBeanForType(Class<T> clazz) {
- T bean = null;
-// String[] names = getApplicationContext().getBeanNamesForType(clazz, true, true);
-// if (names.length == 1) {
-// bean = (T) getApplicationContext().getBean(names[0], clazz);
-// }
-// if (bean == null) {
-// ApplicationContext parentContext = getApplicationContext().getParent();
-// if (parentContext != null) {
-// names = parentContext.getBeanNamesForType(clazz, true, true);
-// if (names.length == 1) {
-// bean = (T) parentContext.getBean(names[0], clazz);
-// }
-// }
-// }
- return bean;
- }
-
- public void destroy() throws Exception {
- getContext().stop();
- }
-
-// public void onApplicationEvent(ApplicationEvent event) {
-// if (context != null) {
-// // let the spring camel context handle the events
-// context.onApplicationEvent(event);
-// } else {
-// if (LOG.isDebugEnabled()) {
-// LOG.debug("Publishing spring-event: " + event);
-// }
-//
-// if (event instanceof ContextRefreshedEvent) {
-// // now lets start the CamelContext so that all its possible
-// // dependencies are initialized
-// try {
-// LOG.debug("Starting the context now!");
-// getContext().start();
-// } catch (Exception e) {
-// throw wrapRuntimeCamelException(e);
-// }
-// }
-// }
-// }
-
- // Properties
- // -------------------------------------------------------------------------
- public BlueprintCamelContext getContext() throws Exception {
- if (context == null) {
- context = createContext();
- }
- return context;
+ public List<CamelThreadPoolFactoryBean> getThreadPools() {
+ return threadPools;
}
- public void setContext(BlueprintCamelContext context) {
- this.context = context;
+ public void setThreadPools(List<CamelThreadPoolFactoryBean> threadPools) {
+ this.threadPools = threadPools;
}
- public List<RouteDefinition> getRoutes() {
- return routes;
+ public String getTrace() {
+ return trace;
}
- public void setRoutes(List<RouteDefinition> routes) {
- this.routes = routes;
+ public void setTrace(String trace) {
+ this.trace = trace;
}
- public List<InterceptDefinition> getIntercepts() {
- return intercepts;
+ public String getStreamCache() {
+ return streamCache;
}
- public void setIntercepts(List<InterceptDefinition> intercepts) {
- this.intercepts = intercepts;
+ public void setStreamCache(String streamCache) {
+ this.streamCache = streamCache;
}
- public List<InterceptFromDefinition> getInterceptFroms() {
- return interceptFroms;
+ public String getDelayer() {
+ return delayer;
}
- public void setInterceptFroms(List<InterceptFromDefinition> interceptFroms) {
- this.interceptFroms = interceptFroms;
+ public void setDelayer(String delayer) {
+ this.delayer = delayer;
}
- public List<InterceptSendToEndpointDefinition> getInterceptSendToEndpoints() {
- return interceptSendToEndpoints;
+ public String getHandleFault() {
+ return handleFault;
}
- public void setInterceptSendToEndpoints(List<InterceptSendToEndpointDefinition> interceptSendToEndpoints) {
- this.interceptSendToEndpoints = interceptSendToEndpoints;
+ public void setHandleFault(String handleFault) {
+ this.handleFault = handleFault;
}
- public RouteBuilder getRouteBuilder() {
- return routeBuilder;
+ public String getErrorHandlerRef() {
+ return errorHandlerRef;
}
- /**
- * Set a single {@link RouteBuilder} to be used to create the default routes
- * on startup
- */
- public void setRouteBuilder(RouteBuilder routeBuilder) {
- this.routeBuilder = routeBuilder;
- }
-
- /**
- * Set a collection of {@link RouteBuilder} instances to be used to create
- * the default routes on startup
- */
- public void setRouteBuilders(RouteBuilder[] builders) {
- additionalBuilders.addAll(Arrays.asList(builders));
- }
-
-// public ApplicationContext getApplicationContext() {
-// if (applicationContext == null) {
-// throw new IllegalArgumentException("No applicationContext has been injected!");
-// }
-// return applicationContext;
-// }
-//
-// public void setApplicationContext(ApplicationContext applicationContext) {
-// this.applicationContext = applicationContext;
-// }
+ public void setErrorHandlerRef(String errorHandlerRef) {
+ this.errorHandlerRef = errorHandlerRef;
+ }
public PropertiesDefinition getProperties() {
return properties;
@@ -616,24 +315,10 @@ public class CamelContextFactoryBean ext
this.properties = properties;
}
- /**
- * @deprecated replaced by {@link #getPackageScan()}
- */
- @Deprecated
public String[] getPackages() {
return packages;
}
- /**
- * Sets the package names to be recursively searched for Java classes which
- * extend {@link RouteBuilder} to be auto-wired up to the
- * {@link BlueprintCamelContext} as a route. Note that classes are excluded if
- * they are specifically configured in the spring.xml
- *
- * @deprecated replaced by {@link #setPackageScan(org.apache.camel.model.PackageScanDefinition)}
- * @param packages the package names which are recursively searched
- */
- @Deprecated
public void setPackages(String[] packages) {
this.packages = packages;
}
@@ -642,63 +327,24 @@ public class CamelContextFactoryBean ext
return packageScan;
}
- /**
- * Sets the package scanning information. Package scanning allows for the
- * automatic discovery of certain camel classes at runtime for inclusion
- * e.g. {@link RouteBuilder} implementations
- *
- * @param packageScan the package scan
- */
public void setPackageScan(PackageScanDefinition packageScan) {
this.packageScan = packageScan;
}
-// public void setBeanPostProcessor(BeanPostProcessor postProcessor) {
-// this.beanPostProcessor = postProcessor;
-// }
-//
-// public BeanPostProcessor getBeanPostProcessor() {
-// return beanPostProcessor;
-// }
-
- public void setCamelJMXAgent(CamelJMXAgentDefinition agent) {
- camelJMXAgent = agent;
- }
-
- public Boolean getTrace() {
- return trace;
- }
-
- public void setTrace(Boolean trace) {
- this.trace = trace;
- }
-
- public Boolean getStreamCache() {
- return streamCache;
- }
-
- public void setStreamCache(Boolean streamCache) {
- this.streamCache = streamCache;
- }
-
- public Long getDelayer() {
- return delayer;
- }
-
- public void setDelayer(Long delayer) {
- this.delayer = delayer;
+ public CamelJMXAgentDefinition getCamelJMXAgent() {
+ return camelJMXAgent;
}
- public Boolean getHandleFault() {
- return handleFault;
+ public void setCamelJMXAgent(CamelJMXAgentDefinition camelJMXAgent) {
+ this.camelJMXAgent = camelJMXAgent;
}
- public void setHandleFault(Boolean handleFault) {
- this.handleFault = handleFault;
+ public List getBeans() {
+ return beans;
}
- public CamelJMXAgentDefinition getCamelJMXAgent() {
- return camelJMXAgent;
+ public void setBeans(List beans) {
+ this.beans = beans;
}
public List<RouteBuilderDefinition> getBuilderRefs() {
@@ -709,43 +355,30 @@ public class CamelContextFactoryBean ext
this.builderRefs = builderRefs;
}
- public String getErrorHandlerRef() {
- return errorHandlerRef;
- }
-
- /**
- * Sets the name of the error handler object used to default the error handling strategy
- *
- * @param errorHandlerRef the Spring bean ref of the error handler
- */
- public void setErrorHandlerRef(String errorHandlerRef) {
- this.errorHandlerRef = errorHandlerRef;
+ public List<CamelEndpointFactoryBean> getEndpoints() {
+ return endpoints;
}
- public Boolean getShouldStartContext() {
- return shouldStartContext;
+ public void setEndpoints(List<CamelEndpointFactoryBean> endpoints) {
+ this.endpoints = endpoints;
}
- public void setShouldStartContext(Boolean shouldStartContext) {
- this.shouldStartContext = shouldStartContext;
+ public DataFormatsDefinition getDataFormats() {
+ return dataFormats;
}
public void setDataFormats(DataFormatsDefinition dataFormats) {
this.dataFormats = dataFormats;
}
- public DataFormatsDefinition getDataFormats() {
- return dataFormats;
+ public List<OnExceptionDefinition> getOnExceptions() {
+ return onExceptions;
}
public void setOnExceptions(List<OnExceptionDefinition> onExceptions) {
this.onExceptions = onExceptions;
}
- public List<OnExceptionDefinition> getOnExceptions() {
- return onExceptions;
- }
-
public List<OnCompletionDefinition> getOnCompletions() {
return onCompletions;
}
@@ -754,157 +387,40 @@ public class CamelContextFactoryBean ext
this.onCompletions = onCompletions;
}
- // Implementation methods
- // -------------------------------------------------------------------------
-
- /**
- * Create the context
- */
- protected BlueprintCamelContext createContext() {
- BlueprintCamelContext ctx = new BlueprintCamelContext();
-// BlueprintCamelContext ctx = new BlueprintCamelContext(getApplicationContext());
- ctx.setName(getId());
- if (streamCache != null) {
- ctx.setStreamCaching(streamCache);
- }
- if (trace != null) {
- ctx.setTracing(trace);
- }
- if (delayer != null) {
- ctx.setDelayer(delayer);
- }
- if (handleFault != null) {
- ctx.setHandleFault(handleFault);
- }
- if (errorHandlerRef != null) {
- ctx.setErrorHandlerBuilder(new ErrorHandlerBuilderRef(errorHandlerRef));
- }
-
- if (shouldStartContext != null) {
- 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());
-
- OsgiAnnotationTypeConverterLoader typeConverterLoader = new OsgiAnnotationTypeConverterLoader(new OsgiPackageScanClassResolver(bundleContext));
- try {
- typeConverterLoader.load(ctx.getTypeConverterRegistry());
- } catch (Exception e) {
- throw ObjectHelper.wrapRuntimeCamelException(e);
- }
-
- return ctx;
+ public List<InterceptDefinition> getIntercepts() {
+ return intercepts;
}
- /**
- * Strategy to install all available routes into the context
- */
- @SuppressWarnings("unchecked")
- protected void installRoutes() throws Exception {
- List<RouteBuilder> builders = new ArrayList<RouteBuilder>();
-
- if (routeBuilder != null) {
- builders.add(routeBuilder);
- }
-
- // lets add route builders added from references
- if (builderRefs != null) {
- for (RouteBuilderDefinition builderRef : builderRefs) {
- RouteBuilder builder = builderRef.createRouteBuilder(getContext());
- if (builder != null) {
- builders.add(builder);
- } else {
- // support to get the route here
- RoutesBuilder routes = builderRef.createRoutes(getContext());
- if (routes != null) {
- additionalBuilders.add(routes);
- } else {
- // Throw the exception that we can't find any build here
- throw new CamelException("Cannot find any routes with this RouteBuilder reference: " + builderRef);
- }
- }
+ public void setIntercepts(List<InterceptDefinition> intercepts) {
+ this.intercepts = intercepts;
+ }
- }
- }
+ public List<InterceptFromDefinition> getInterceptFroms() {
+ return interceptFroms;
+ }
- // install already configured routes
- for (RoutesBuilder routeBuilder : additionalBuilders) {
- getContext().addRoutes(routeBuilder);
- }
+ public void setInterceptFroms(List<InterceptFromDefinition> interceptFroms) {
+ this.interceptFroms = interceptFroms;
+ }
- // install builders
- for (RouteBuilder builder : builders) {
-// if (beanPostProcessor != null) {
- // Inject the annotated resource
-// beanPostProcessor.postProcessBeforeInitialization(builder, builder.toString());
-// }
- getContext().addRoutes(builder);
- }
+ public List<InterceptSendToEndpointDefinition> getInterceptSendToEndpoints() {
+ return interceptSendToEndpoints;
}
- /**
- * Strategy method to try find {@link RouteBuilder} instances on the classpath
- */
- protected void findRouteBuilders() throws Exception {
- PackageScanClassResolver resolver = getContext().getPackageScanClassResolver();
- addPackageElementContentsToScanDefinition();
-
- PackageScanDefinition packageScanDef = getPackageScan();
- if (packageScanDef != null && packageScanDef.getPackages().size() > 0) {
- // use package scan filter
- PatternBasedPackageScanFilter filter = new PatternBasedPackageScanFilter();
- filter.addIncludePatterns(packageScanDef.getIncludes());
- filter.addExcludePatterns(packageScanDef.getExcludes());
- resolver.addFilter(filter);
-
- String[] normalized = normalizePackages(packageScanDef.getPackages());
-// RouteBuilderFinder finder = new RouteBuilderFinder(getContext(), normalized, getContextClassLoaderOnStart(),
-// getBeanPostProcessor(), getContext().getPackageScanClassResolver());
-// finder.appendBuilders(getAdditionalBuilders());
- }
+ public void setInterceptSendToEndpoints(List<InterceptSendToEndpointDefinition> interceptSendToEndpoints) {
+ this.interceptSendToEndpoints = interceptSendToEndpoints;
}
- private void addPackageElementContentsToScanDefinition() {
- PackageScanDefinition packageScanDef = getPackageScan();
+ public List<RouteDefinition> getRoutes() {
+ return routes;
+ }
- if (getPackages() != null && getPackages().length > 0) {
- LOG.warn("Using a packages element to specify packages to search has been deprecated. Please use a packageScan element instead.");
- if (packageScanDef == null) {
- packageScanDef = new PackageScanDefinition();
- setPackageScan(packageScanDef);
- }
-
- for (String pkg : getPackages()) {
- packageScanDef.getPackages().add(pkg);
- }
- }
+ public void setRoutes(List<RouteDefinition> routes) {
+ this.routes = routes;
}
- private String[] normalizePackages(List<String> unnormalized) {
- List<String> packages = new ArrayList<String>();
- for (String name : unnormalized) {
- name = ObjectHelper.normalizeClassName(name);
- if (ObjectHelper.isNotEmpty(name)) {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Using package: " + name + " to scan for RouteBuilder classes");
- }
- packages.add(name);
- }
- }
- return packages.toArray(new String[packages.size()]);
+ public ClassLoader getContextClassLoaderOnStart() {
+ return contextClassLoaderOnStart;
}
}
Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelEndpointFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelEndpointFactoryBean.java?rev=949127&r1=949126&r2=949127&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelEndpointFactoryBean.java (original)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelEndpointFactoryBean.java Fri May 28 07:52:33 2010
@@ -19,16 +19,13 @@ package org.apache.camel.blueprint;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.Endpoint;
-import org.apache.camel.NoSuchEndpointException;
-import org.apache.camel.model.IdentifiedType;
-import static org.apache.camel.util.ObjectHelper.notNull;
+import org.apache.camel.core.xml.AbstractCamelEndpointFactoryBean;
+import org.osgi.service.blueprint.container.BlueprintContainer;
/**
* A factory which instantiates {@link Endpoint} objects
@@ -37,76 +34,20 @@ import static org.apache.camel.util.Obje
*/
@XmlRootElement(name = "endpoint")
@XmlAccessorType(XmlAccessType.FIELD)
-public class CamelEndpointFactoryBean extends IdentifiedType implements CamelContextAware {
- @XmlAttribute
- private String uri;
- @XmlTransient
- private CamelContext context;
- @XmlTransient
- private Endpoint endpoint;
- @XmlTransient
- private boolean singleton;
-
- public Object getObject() throws Exception {
- if (endpoint == null) {
- endpoint = createEndpoint();
- }
- return endpoint;
- }
-
- public Class getObjectType() {
- return Endpoint.class;
- }
-
- public boolean isSingleton() {
- return singleton;
- }
-
- public CamelContext getCamelContext() {
- return context;
- }
-
- /**
- * Sets the context to use to resolve endpoints
- *
- * @param context the context used to resolve endpoints
- */
- public void setCamelContext(CamelContext context) {
- this.context = context;
- }
+public class CamelEndpointFactoryBean extends AbstractCamelEndpointFactoryBean {
- public Endpoint getEndpoint() {
- return endpoint;
- }
-
- public void setEndpoint(Endpoint endpoint) {
- this.endpoint = endpoint;
- }
-
- public void setSingleton(boolean singleton) {
- this.singleton = singleton;
- }
-
- public String getUri() {
- return uri;
- }
+ @XmlTransient
+ private BlueprintContainer blueprintContainer;
- /**
- * Sets the URI to use to resolve the endpoint
- *
- * @param uri the URI used to set the endpoint
- */
- public void setUri(String uri) {
- this.uri = uri;
+ public void setBlueprintContainer(BlueprintContainer blueprintContainer) {
+ this.blueprintContainer = blueprintContainer;
}
- protected Endpoint createEndpoint() {
- notNull(context, "context");
- notNull(uri, "uri");
- Endpoint endpoint = context.getEndpoint(uri);
- if (endpoint == null) {
- throw new NoSuchEndpointException(uri);
+ @Override
+ protected CamelContext getCamelContextWithId(String camelContextId) {
+ if (blueprintContainer != null) {
+ return (CamelContext) blueprintContainer.getComponentInstance(camelContextId);
}
- return endpoint;
+ return null;
}
}
Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelProducerTemplateFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelProducerTemplateFactoryBean.java?rev=949127&r1=949126&r2=949127&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelProducerTemplateFactoryBean.java (original)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelProducerTemplateFactoryBean.java Fri May 28 07:52:33 2010
@@ -18,15 +18,12 @@ package org.apache.camel.blueprint;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultProducerTemplate;
-import org.apache.camel.model.IdentifiedType;
+import org.apache.camel.core.xml.AbstractCamelProducerTemplateFactoryBean;
+import org.osgi.service.blueprint.container.BlueprintContainer;
/**
* A factory for creating a new {@link org.apache.camel.ProducerTemplate}
@@ -36,58 +33,21 @@ import org.apache.camel.model.Identified
*/
@XmlRootElement(name = "template")
@XmlAccessorType(XmlAccessType.FIELD)
-public class CamelProducerTemplateFactoryBean extends IdentifiedType implements CamelContextAware {
- @XmlAttribute(required = false)
- private String defaultEndpoint;
+public class CamelProducerTemplateFactoryBean extends AbstractCamelProducerTemplateFactoryBean {
+
@XmlTransient
- private CamelContext camelContext;
+ private BlueprintContainer blueprintContainer;
- public void afterPropertiesSet() throws Exception {
- if (camelContext == null) {
- throw new IllegalArgumentException("A CamelContext must be injected!");
- }
+ public void setBlueprintContainer(BlueprintContainer blueprintContainer) {
+ this.blueprintContainer = blueprintContainer;
}
- public Object getObject() throws Exception {
- CamelContext context = getCamelContext();
- if (defaultEndpoint != null) {
- Endpoint endpoint = context.getEndpoint(defaultEndpoint);
- if (endpoint == null) {
- throw new IllegalArgumentException("No endpoint found for URI: " + defaultEndpoint);
- } else {
- return new DefaultProducerTemplate(context, endpoint);
- }
+ @Override
+ protected CamelContext getCamelContextWithId(String camelContextId) {
+ if (blueprintContainer != null) {
+ return (CamelContext) blueprintContainer.getComponentInstance(camelContextId);
}
- return new DefaultProducerTemplate(context);
- }
-
- public Class getObjectType() {
- return DefaultProducerTemplate.class;
+ return null;
}
- public boolean isSingleton() {
- return false;
- }
-
- // Properties
- // -------------------------------------------------------------------------
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- public void setCamelContext(CamelContext camelContext) {
- this.camelContext = camelContext;
- }
-
- public String getDefaultEndpoint() {
- return defaultEndpoint;
- }
-
- /**
- * Sets the default endpoint URI used by default for sending message
- * exchanges
- */
- public void setDefaultEndpoint(String defaultEndpoint) {
- this.defaultEndpoint = defaultEndpoint;
- }
}
Added: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelThreadPoolFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelThreadPoolFactoryBean.java?rev=949127&view=auto
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelThreadPoolFactoryBean.java (added)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelThreadPoolFactoryBean.java Fri May 28 07:52:33 2010
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.blueprint;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.core.xml.AbstractCamelThreadPoolFactoryBean;
+import org.osgi.service.blueprint.container.BlueprintContainer;
+
+/**
+ * A factory which instantiates {@link java.util.concurrent.ExecutorService} objects
+ *
+ * @version $Revision: 925208 $
+ */
+@XmlRootElement(name = "threadPool")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class CamelThreadPoolFactoryBean extends AbstractCamelThreadPoolFactoryBean {
+
+ @XmlTransient
+ private BlueprintContainer blueprintContainer;
+
+ public void setBlueprintContainer(BlueprintContainer blueprintContainer) {
+ this.blueprintContainer = blueprintContainer;
+ }
+
+ @Override
+ protected CamelContext getCamelContextWithId(String camelContextId) {
+ if (blueprintContainer != null) {
+ return (CamelContext) blueprintContainer.getComponentInstance(camelContextId);
+ }
+ return null;
+ }
+
+}
\ No newline at end of file
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=949127&r1=949126&r2=949127&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 Fri May 28 07:52:33 2010
@@ -21,16 +21,10 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.Callable;
-
import javax.xml.bind.Binder;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
import org.apache.aries.blueprint.NamespaceHandler;
import org.apache.aries.blueprint.ParserContext;
import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
@@ -38,9 +32,14 @@ import org.apache.aries.blueprint.mutabl
import org.apache.camel.blueprint.BlueprintCamelContext;
import org.apache.camel.blueprint.CamelContextFactoryBean;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.core.xml.AbstractCamelContextFactoryBean;
import org.osgi.service.blueprint.container.ComponentDefinitionException;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
import org.osgi.service.blueprint.reflect.Metadata;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
public class CamelNamespaceHandler implements NamespaceHandler {
@@ -152,6 +151,7 @@ public class CamelNamespaceHandler imple
protected Set<Class> getJaxbPackages() {
Set<Class> classes = new HashSet<Class>();
classes.add(CamelContextFactoryBean.class);
+ classes.add(AbstractCamelContextFactoryBean.class);
classes.add(org.apache.camel.ExchangePattern.class);
classes.add(org.apache.camel.model.RouteDefinition.class);
classes.add(org.apache.camel.model.config.StreamResequencerConfig.class);
Modified: camel/trunk/components/camel-blueprint/src/main/resources/org/apache/camel/blueprint/jaxb.index
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/resources/org/apache/camel/blueprint/jaxb.index?rev=949127&r1=949126&r2=949127&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/resources/org/apache/camel/blueprint/jaxb.index (original)
+++ camel/trunk/components/camel-blueprint/src/main/resources/org/apache/camel/blueprint/jaxb.index Fri May 28 07:52:33 2010
@@ -14,11 +14,8 @@
## See the License for the specific language governing permissions and
## limitations under the License.
## ------------------------------------------------------------------------
-#CamelBeanPostProcessor
CamelConsumerTemplateFactoryBean
CamelContextFactoryBean
CamelEndpointFactoryBean
-CamelJMXAgentDefinition
CamelProducerTemplateFactoryBean
-CamelProxyFactoryDefinition
-CamelServiceExporterDefinition
+CamelThreadPoolFactoryBean
Added: camel/trunk/components/camel-core-osgi/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-osgi/pom.xml?rev=949127&view=auto
==============================================================================
--- camel/trunk/components/camel-core-osgi/pom.xml (added)
+++ camel/trunk/components/camel-core-osgi/pom.xml Fri May 28 07:52:33 2010
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-parent</artifactId>
+ <version>2.4-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-core-osgi</artifactId>
+ <name>Camel :: Core OSGi</name>
+ <description>Camel Core OSGi support</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <childDelegation>false</childDelegation>
+ <useFile>true</useFile>
+ <forkMode>pertest</forkMode>
+ <includes>
+ <include>**/*Test.java</include>
+ </includes>
+ <excludes>
+ <!-- TODO FIXME ASAP -->
+ <exclude>**/XXXTest.*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>