> On 25. sep. 2015, at 11.42, Claus Ibsen <claus.ib...@gmail.com> wrote:
> 
> I would favor configuring this on the component and name it wmq, then
> the endpoints can be simply as you want.
> 
> So maybe something with
> 
> @Bean("wmq")
> JmsComponent myWmqComponent() {
> ...
> }
> 
> Not sure what the spring annotation is for assigning a name.
> 

Hmmm, not sure if i understand what you mean.

Here’s what i’m currently doing (simplified for clarity - might not compile)

@Bean
public CamelContextConfiguration contextConfiguration() {
        return new CamelContextConfiguration() {

                public void beforeApplicationStart(CamelContext camelContext) {
                        IBMWebSphereMqDestinationResolver 
ibmWebSphereMqDestinationResolver = new IBMWebSphereMqDestinationResolver();

                        ConnectionFactory connectionFactory = 
connectionFactoryMap().get("wmq");
                        connectionFactory = 
setupJmsConnectionCaching(connectionFactory);
                        connectionFactory = setupJmsLogging(connectionFactory);
                        JmsComponent wmq = new JmsComponent(camelContext);
                        wmq.setConnectionFactory(connectionFactory);
                        
wmq.setDestinationResolver(ibmWebSphereMqDestinationResolver);
                        String componentName = "wmq;
                        camelContext.addComponent(componentName, wmq);
                }
        };
}

This works well, but when starting the application, the routes get configured 
before the wmq endpoint is enabled :
2015-09-25 10:20:39.845  INFO 10208 --- [           main] 
d.b.m.router.routes.MainframeRouter   : Starting listener : INPUT_QUEUE
2015-09-25 10:20:40.057  INFO 10208 --- [           main] d.b.m.CamelConfig     
                          : Registering component wmq

Now when i define a deadLetterQueue:
ErrorHandlerBuilder ehb = 
deadLetterChannel(backoutQueue).maximumRedeliveries(1);
from(String.format(“wmq:queue:%s", dest.getIn_queue_name()))….

I get this:
2015-09-25 11:52:41.085  INFO 12760 --- [           main] 
d.b.m.router.routes.MainframeRouter   : Starting listener : INPUT_QUEUE
2015-09-25 11:52:41.101 ERROR 12760 --- [           main] 
o.s.boot.SpringApplication               : Application startup failed

java.lang.RuntimeException: org.apache.camel.ResolveEndpointFailedException: 
Failed to resolve endpoint: wmq://queue:INPUT_QUEUE_BACKOUT due to: No 
component found with scheme: wmq
        at 
org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:62)
        at 
org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:33)

/J

Reply via email to