camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Love <ch...@cnmconsulting.net>
Subject Re: Issue with Camel annotations not being processed [OSGi, Blueprint, Javaconfig]
Date Fri, 02 Nov 2012 21:17:48 GMT
Claus and other

I am just coming up to speed on blueprint / osgi, and I think I may be
running into the same form of issue.  @Value with property place holder
does not seem to be populating when the route is deployed inside of Karaf.
 In unit test it populates the string correctly running inside of Karaf it
does not.

Here is some pertinent code:

@Component
public class EdiTmpClaimRoute extends SpringRouteBuilder {

private @Value("${file.path}")
String filePath;

@Override
public void configure() throws Exception {
    from("activemq:claim-queue?concurrentConsumers=50&asyncConsumer=true")
    .routeId("edi-qsi-tmp-file-route")

.to("file:"+filePath+"/?fileName=${date:now:yyyyMMdd}-qsi-${exchangeId}.txt");
}

}

@Configuration
@PropertySource("classpath:smilebrands-edi.properties")
@ComponentScan(basePackages = { "com.smilebrands.edi.camel",
"com.smilebrands.edi.core.qsi" })
public class CamelServerConfig implements InitializingBean,
BundleContextAware, ApplicationContextAware {

  private BundleContext bundleContext;

  public BundleContext getBundleContext() {
    return bundleContext;
  }

  public void setBundleContext(BundleContext bundleContext) {
    this.bundleContext = bundleContext;
  }

  private ApplicationContext applicationContext;

  public void setApplicationContext(ApplicationContext ac) {
    this.applicationContext = ac;
  }

  protected ApplicationContext getApplicationContext() {
    return this.applicationContext;
  }

  @Bean
  public ActiveMQComponent amq(@Value("${broker.url}") String brokerURL) {
    ActiveMQComponent activeMQComponent = new ActiveMQComponent();
    activeMQComponent.setBrokerURL(brokerURL);
    return activeMQComponent;
  }

  @Override
  public void afterPropertiesSet() throws Exception {
    // TODO Auto-generated method stub

  }

  @Bean
  public static PropertySourcesPlaceholderConfigurer
propertySourcesPlaceholderConfigurer() {
    return new PropertySourcesPlaceholderConfigurer();
  }

}

camel-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
 xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="
 http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
   http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd"
 >

  <camelContext xmlns="http://camel.apache.org/schema/spring">
    <contextScan/>
  </camelContext>

  <bean class="com.smilebrands.edi.config.CamelServerConfig"/>
  <!-- be sure the configure class to be processed -->
  <context:annotation-config/>

</beans>

What are your recommendations?  You are stating to use blueprint, but does
blueprint have the same type of capabilities?

Thanks

Chris

On Wed, Sep 5, 2012 at 7:42 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:

> Hi
>
> Using Aries Blueprint should work fine.
>
> There is possible a need for a Gemini integration with Camel to make
> this work out of the box.
>
> Fell free to help out, and take a look at camel-blueprint, which is
> the component that integrates with Aries Blueprint.
> Yeah that should maybe have been named camel-blueprint-aries, to leave
> room for camel-blueprint-gemini,
>
>
> On Tue, Sep 4, 2012 at 3:24 PM, ladoe00 <ladoe00@yahoo.com> wrote:
> > Hi,
> >
> >   I used to have a working system using Spring-OSGi, XML configs and
> Camel
> > 2.5 and I thought it would be great to upgrade to the latest version for
> all
> > those components.  So I am now using Gemini Blueprint (replacement for
> > Spring-OSGi), Spring Java config to get rid of XML and Camel 2.10.1.  I
> have
> > converted every XML file to be @Configuration classes with RouteBuilders,
> > which I think is great, but now I am having problems injecting a
> > CamelContext and ProducerTemplates.  That will just not work at all.  I
> must
> > be missing something...
> >
> > For example:
> > public class MyConfig extends SingleRouteCamelConfiguration implements
> > CamelContextAware
> > {
> >     @Value("input")
> >     private String input;
> >
> >     @Autowired
> >     private Factory myFactory;
> >
> >     @EndpointInject(uri="seda:aQueue")
> >     private ProducerTemplate producer1;
> >
> >     @Produce(uri="seda:aQueue")
> >     private ProducerTemplate producer2;
> >
> >     private CamelContext camelContext;  //  with appropriate
> getter/setter
> > ...
> > }
> >
> > input and myFactory are injected with values, but producer1, producer2
> and
> > camelContext are not.
> >
> > I am using Equinox and Eclipse Gemini Blueprint Extender, camel-core,
> > camel-spring, camel-spring-javaconfig as well as one XML support file
> (that
> > does get loaded):
> > <beans>
> >     <context:annotation-config/>
> >     <context:component-scan base-package="*"/>
> >     <context:property-placeholder
> location="classpath:config.properties"/>
> > </beans>
> >
> > I have no camelContext declared anywhere.  My routes are declared and
> > created with @Configuration classes returning RouteBuilders (this part
> works
> > well).
> >
> > In summary, everything works well beside Camel annotations (@Produce,
> > @EndpointInject and CamelContextAware interface, which should inject a
> > CamelContext from my understanding).  What am I not declaring/not
> starting
> > right?
> >
> > Thanks!
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Issue-with-Camel-annotations-not-being-processed-OSGi-Blueprint-Javaconfig-tp5718606.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: cibsen@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>



-- 
Chris Love
clove@cnmconsulting.net
(303) 929-8509
http://www.cnmconsulting.net
Calendar: http://j.mp/cnmCalendar
Follow me on twitter: @chrislovecnm

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message