-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/

Reply via email to