-1 You can already do this. There is no need to have an inflightRepositoryRef option. Just declare the bean and its auto configured which is standard already.
See http://camel.apache.org/advanced-configuration-of-camelcontext-using-spring.html On Tue, Dec 23, 2014 at 3:40 PM, <ningji...@apache.org> wrote: > CAMEL-8173 Support to set InflightRepository from Camel XML DSL > > > Project: http://git-wip-us.apache.org/repos/asf/camel/repo > Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d3d3161b > Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d3d3161b > Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d3d3161b > > Branch: refs/heads/master > Commit: d3d3161b408a12349d55a26277590fcafc49c99f > Parents: 524a4e5 > Author: Willem Jiang <willem.ji...@gmail.com> > Authored: Tue Dec 23 22:05:49 2014 +0800 > Committer: Willem Jiang <willem.ji...@gmail.com> > Committed: Tue Dec 23 22:19:49 2014 +0800 > > ---------------------------------------------------------------------- > .../blueprint/CamelContextFactoryBean.java | 10 +++++ > .../xml/AbstractCamelContextFactoryBean.java | 11 ++++++ > .../camel/spring/CamelContextFactoryBean.java | 12 +++++- > .../spring/config/MyInflightRepositoryTest.java | 39 +++++++++++++++++++ > .../spring/config/myInflightRepository.xml | 40 ++++++++++++++++++++ > 5 files changed, 111 insertions(+), 1 deletion(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/camel/blob/d3d3161b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java > ---------------------------------------------------------------------- > diff --git > a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java > > b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java > index 56f1fba..d89f2d8 100644 > --- > a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java > +++ > b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java > @@ -107,6 +107,8 @@ public class CamelContextFactoryBean extends > AbstractCamelContextFactoryBean<Blu > @XmlAttribute(required = false) > private String threadNamePattern; > @XmlAttribute(required = false) > + private String inflightRepositoryRef; > + @XmlAttribute(required = false) > private Boolean useBlueprintPropertyResolver; > @XmlAttribute(required = false) > private ShutdownRoute shutdownRoute; > @@ -377,6 +379,14 @@ public class CamelContextFactoryBean extends > AbstractCamelContextFactoryBean<Blu > this.threadNamePattern = threadNamePattern; > } > > + public String getInflightRepositoryRef() { > + return inflightRepositoryRef; > + } > + > + public void setInflightRepositoryRef(String inflightRepositoryRef) { > + this.inflightRepositoryRef = inflightRepositoryRef; > + } > + > @Deprecated > public Boolean getLazyLoadTypeConverters() { > // use false by default > > http://git-wip-us.apache.org/repos/asf/camel/blob/d3d3161b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java > ---------------------------------------------------------------------- > diff --git > a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java > > b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java > index 8aca563..c12ce14 100644 > --- > a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java > +++ > b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java > @@ -24,6 +24,7 @@ import java.util.Map; > import java.util.Map.Entry; > import java.util.Set; > import java.util.concurrent.atomic.AtomicBoolean; > + > import javax.xml.bind.annotation.XmlAccessType; > import javax.xml.bind.annotation.XmlAccessorType; > import javax.xml.bind.annotation.XmlTransient; > @@ -672,6 +673,8 @@ public abstract class AbstractCamelContextFactoryBean<T > extends ModelCamelContex > public abstract List<RestContextRefDefinition> getRestRefs(); > > public abstract String getErrorHandlerRef(); > + > + public abstract String getInflightRepositoryRef(); > > public abstract DataFormatsDefinition getDataFormats(); > > @@ -715,6 +718,14 @@ public abstract class AbstractCamelContextFactoryBean<T > extends ModelCamelContex > if (getErrorHandlerRef() != null) { > ctx.setErrorHandlerBuilder(new > ErrorHandlerBuilderRef(getErrorHandlerRef())); > } > + if (getInflightRepositoryRef() != null) { > + InflightRepository repository = > ctx.getRegistry().lookupByNameAndType(getInflightRepositoryRef(), > InflightRepository.class); > + if (repository == null) { > + throw new IllegalArgumentException("Cannot not find > InflightRepository instance from CamelContext registry with " + > getInflightRepositoryRef()); > + } > + ctx.addService(repository); > + ctx.setInflightRepository(repository); > + } > if (getAutoStartup() != null) { > ctx.setAutoStartup(CamelContextHelper.parseBoolean(getContext(), > getAutoStartup())); > } > > http://git-wip-us.apache.org/repos/asf/camel/blob/d3d3161b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java > ---------------------------------------------------------------------- > diff --git > a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java > > b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java > index 0a39e2a..859b963 100644 > --- > a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java > +++ > b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java > @@ -19,6 +19,7 @@ package org.apache.camel.spring; > import java.util.ArrayList; > 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; > @@ -70,7 +71,6 @@ import org.springframework.context.ApplicationContextAware; > import org.springframework.context.ApplicationEvent; > import org.springframework.context.ApplicationListener; > import org.springframework.context.event.ContextRefreshedEvent; > - > import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException; > > /** > @@ -118,6 +118,8 @@ public class CamelContextFactoryBean extends > AbstractCamelContextFactoryBean<Spr > @XmlAttribute(required = false) > private String threadNamePattern; > @XmlAttribute(required = false) > + private String inflightRepositoryRef; > + @XmlAttribute(required = false) > private ShutdownRoute shutdownRoute; > @XmlAttribute(required = false) > private ShutdownRunningTask shutdownRunningTask; > @@ -630,6 +632,14 @@ public class CamelContextFactoryBean extends > AbstractCamelContextFactoryBean<Spr > this.threadNamePattern = threadNamePattern; > } > > + public String getInflightRepositoryRef() { > + return inflightRepositoryRef; > + } > + > + public void setInflightRepositoryRef(String inflightRepositoryRef) { > + this.inflightRepositoryRef = inflightRepositoryRef; > + } > + > @Deprecated > public Boolean getLazyLoadTypeConverters() { > return lazyLoadTypeConverters; > > http://git-wip-us.apache.org/repos/asf/camel/blob/d3d3161b/components/camel-spring/src/test/java/org/apache/camel/spring/config/MyInflightRepositoryTest.java > ---------------------------------------------------------------------- > diff --git > a/components/camel-spring/src/test/java/org/apache/camel/spring/config/MyInflightRepositoryTest.java > > b/components/camel-spring/src/test/java/org/apache/camel/spring/config/MyInflightRepositoryTest.java > new file mode 100644 > index 0000000..53c19e2 > --- /dev/null > +++ > b/components/camel-spring/src/test/java/org/apache/camel/spring/config/MyInflightRepositoryTest.java > @@ -0,0 +1,39 @@ > +/** > + * 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.spring.config; > + > +import org.apache.camel.impl.DefaultInflightRepository; > +import org.apache.camel.spring.SpringCamelContext; > +import org.apache.camel.spring.SpringTestSupport; > +import org.springframework.context.support.AbstractXmlApplicationContext; > +import org.springframework.context.support.ClassPathXmlApplicationContext; > + > +public class MyInflightRepositoryTest extends SpringTestSupport { > + protected AbstractXmlApplicationContext createApplicationContext() { > + return new > ClassPathXmlApplicationContext("org/apache/camel/spring/config/myInflightRepository.xml"); > + } > + > + public void testEndpointConfiguration() throws Exception { > + SpringCamelContext context = > applicationContext.getBeansOfType(SpringCamelContext.class).values().iterator().next(); > + assertTrue("Get a wrong inflight repository", > context.getInflightRepository() instanceof MyInflightRepository); > + } > + > + public static class MyInflightRepository extends > DefaultInflightRepository { > + > + } > + > +} > > http://git-wip-us.apache.org/repos/asf/camel/blob/d3d3161b/components/camel-spring/src/test/resources/org/apache/camel/spring/config/myInflightRepository.xml > ---------------------------------------------------------------------- > diff --git > a/components/camel-spring/src/test/resources/org/apache/camel/spring/config/myInflightRepository.xml > > b/components/camel-spring/src/test/resources/org/apache/camel/spring/config/myInflightRepository.xml > new file mode 100644 > index 0000000..3536ccf > --- /dev/null > +++ > b/components/camel-spring/src/test/resources/org/apache/camel/spring/config/myInflightRepository.xml > @@ -0,0 +1,40 @@ > +<?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. > +--> > +<beans xmlns="http://www.springframework.org/schema/beans" > + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + xsi:schemaLocation=" > + http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > + http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd > + "> > + > + > + <camelContext inflightRepositoryRef="myinflightRepository" > xmlns="http://camel.apache.org/schema/spring"> > + <jmxAgent id="agent" disabled="true"/> > + <route> > + <from uri="seda:a"/> > + <to uri="seda:b"/> > + </route> > + <route> > + <from uri="direct:c"/> > + <to uri="direct:d"/> > + </route> > + </camelContext> > + > + <bean id="myinflightRepository" > class="org.apache.camel.spring.config.MyInflightRepositoryTest$MyInflightRepository" > /> > + > +</beans> > -- Claus Ibsen ----------------- Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/