Hi Claus,

Thanks for pointing that out. It looks like the Camel Spring already
support it, but how about the blueprint?


Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/)
(English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem

On Sun, Dec 28, 2014 at 10:01 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

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