Re: AW: Dynamic routing based on collection values

2016-10-24 Thread Steve973
And, by default, that is a lot of threads that are not needed for his use
case.  Though I am not sure how many threads are created vs used when you
are doing a recipient list and a splitter.

On Mon, Oct 24, 2016 at 2:51 PM, Brad Johnson 
wrote:

> How many producer templates would be produced?  There's only a single
> handler instantiated so if there are 5 routes that's 5 producer templates.
>
> On Mon, Oct 24, 2016 at 1:32 PM, Steve973  wrote:
>
> > I'd worry about the overhead of creating so many producer templates. I
> > would probably set a header that contains a map of keys to destinations,
> > then you could set a recipient list of one endpoint that contains the
> value
> > at that key. Maybe brad's method isn't as overhead intensive because the
> > template is injected, but this is more manual implementation than i would
> > prefer.
> >
> > On Oct 24, 2016 9:21 AM, "Brad Johnson" 
> > wrote:
> >
> > > This is also one of those fuzzy areas where sometimes it is easier to
> > > simply pass the message body into a bean and then use ProducerTemplate
> > > instances to send values us different routes.  Under normal
> > circumstances I
> > > wouldn't do it that way as Camel does a great job of heavy lifting.
> But
> > in
> > > some cases just using a Java bean is simpler and cleaner. Imagine
> having
> > a
> > > CityRouteHandler with one method on it.
> > >
> > >
> > > public void routeToCities(Map myMap){
> > > {
> > >  for (Map.Entry entry : map.entrySet()) {
> > > if("Hyderabad".equals(entry.getKey()){
> > > for(String message: entry.getValue())
> > > hyderabad.sendBody(message);
> > > ...etc.
> > > }
> > > }
> > > }
> > >
> > > You could then create a helper method as well that instead of looping
> > > inside for each new entry and sending to the producer template, have
> the
> > > helper method take the List and producer template and loop
> inside
> > > it.  That would simplify the map code.
> > >
> > > The ProducerTemplate entries in this class would be declared something
> > like
> > > this:
> > >
> > > @InjectEndpoint(uri="direct:hyderabad")
> > > ProducerTemplate hyderabad;
> > >
> > > I've written this free hand so while the ideas are correct I can't
> vouch
> > > for the correctness of the code itself.
> > >
> > >
> > >
> > >
> > >
> > > On Mon, Oct 24, 2016 at 8:04 AM, raghavender.anth...@gmail.com <
> > > raghavender.anth...@gmail.com> wrote:
> > >
> > > > Thanks a lot for the response. This seems like useful, I'll give out
> a
> > > try
> > > > and will update you accordingly.
> > > >
> > > > Best,
> > > > Raghavender Anthwar
> > > >
> > > >
> > > >
> > > > --
> > > > View this message in context: http://camel.465427.n5.nabble.
> > > > com/Dynamic-routing-based-on-collection-values-
> tp5789157p5789179.html
> > > > Sent from the Camel - Users mailing list archive at Nabble.com.
> > > >
> > >
> >
>


Re: Authentication Header Missing from CXF Endpoint

2016-10-24 Thread Brad Johnson
In addition to trying the requestBodyHeader (or whatever the request name
is) have you tried looking the results of the Exchange you get back by
calling getException?

On Mon, Oct 24, 2016 at 3:25 PM, Brad Johnson 
wrote:

> Are you  sending a Processor across?  I've really no idea if that would
> work or not.  It's an object so I suppose if you cast the object on the
> other side you'd end up with the Processor back(?)
>
>
> Have you tried on of the methods like 
> producerTemplate.request(endpointURI,body,
> Map) where the map contains the headers?
>
> On Mon, Oct 24, 2016 at 9:45 AM, aravind r 
> wrote:
>
>> Hi All,
>>
>> Any help is appreciated as i am trying to solve this for 2 days now.
>>
>> Trying to unit test a CXF end point secured with Spring Authentication. I
>> tried passing in as below the Authentication header however when it
>> reaches
>> my CXF Endpoint and down to route. The header is missing.
>>
>> I tried a lot of combinations and i did read some where that it doesn't
>> pass it via CXF endpoint. Is this a bug?, that was a post from 2012
>> though.
>> any workarounds?.
>>
>> How should i test my whole integration flow?.
>>
>>
>> Exchange responseExchange = producerTemplate.request("cxfrs://
>> http://localhost:9001/;, new Processor() {
>>
>>
>> @Override
>> public void process(Exchange exchange) throws Exception {
>>
>>
>> exchange.setPattern(ExchangePattern.InOut);
>> Message inMessage = exchange.getIn();
>> inMessage.setHeader("CamelCxfRsUsingHttpAPI", Boolean.TRUE);
>> inMessage.setHeader("CamelHttpMethod", "POST");
>> inMessage.setHeader("operationName", "getAccounts");
>> inMessage.setHeader(Exchange.CONTENT_TYPE,"application/json");
>> inMessage.setHeader("CamelAuthentication",subject);
>> inMessage.setHeader("CamelHttpPath", "/v1/core/getAccounts");
>> inMessage.setBody( new ObjectMapper().writeValueAsString(bo));
>>
>>
>> *exchange.getIn().setHeader(Exchange.AUTHENTICATION,subject);*
>> }
>> });
>>
>> Regards,
>> Aravind
>>
>
>


Re: Authentication Header Missing from CXF Endpoint

2016-10-24 Thread Brad Johnson
Are you  sending a Processor across?  I've really no idea if that would
work or not.  It's an object so I suppose if you cast the object on the
other side you'd end up with the Processor back(?)


Have you tried on of the methods like
producerTemplate.request(endpointURI,body, Map) where the
map contains the headers?

On Mon, Oct 24, 2016 at 9:45 AM, aravind r 
wrote:

> Hi All,
>
> Any help is appreciated as i am trying to solve this for 2 days now.
>
> Trying to unit test a CXF end point secured with Spring Authentication. I
> tried passing in as below the Authentication header however when it reaches
> my CXF Endpoint and down to route. The header is missing.
>
> I tried a lot of combinations and i did read some where that it doesn't
> pass it via CXF endpoint. Is this a bug?, that was a post from 2012 though.
> any workarounds?.
>
> How should i test my whole integration flow?.
>
>
> Exchange responseExchange = producerTemplate.request("cxfrs://
> http://localhost:9001/;, new Processor() {
>
>
> @Override
> public void process(Exchange exchange) throws Exception {
>
>
> exchange.setPattern(ExchangePattern.InOut);
> Message inMessage = exchange.getIn();
> inMessage.setHeader("CamelCxfRsUsingHttpAPI", Boolean.TRUE);
> inMessage.setHeader("CamelHttpMethod", "POST");
> inMessage.setHeader("operationName", "getAccounts");
> inMessage.setHeader(Exchange.CONTENT_TYPE,"application/json");
> inMessage.setHeader("CamelAuthentication",subject);
> inMessage.setHeader("CamelHttpPath", "/v1/core/getAccounts");
> inMessage.setBody( new ObjectMapper().writeValueAsString(bo));
>
>
> *exchange.getIn().setHeader(Exchange.AUTHENTICATION,subject);*
> }
> });
>
> Regards,
> Aravind
>


Re: AW: Dynamic routing based on collection values

2016-10-24 Thread Brad Johnson
How many producer templates would be produced?  There's only a single
handler instantiated so if there are 5 routes that's 5 producer templates.

On Mon, Oct 24, 2016 at 1:32 PM, Steve973  wrote:

> I'd worry about the overhead of creating so many producer templates. I
> would probably set a header that contains a map of keys to destinations,
> then you could set a recipient list of one endpoint that contains the value
> at that key. Maybe brad's method isn't as overhead intensive because the
> template is injected, but this is more manual implementation than i would
> prefer.
>
> On Oct 24, 2016 9:21 AM, "Brad Johnson" 
> wrote:
>
> > This is also one of those fuzzy areas where sometimes it is easier to
> > simply pass the message body into a bean and then use ProducerTemplate
> > instances to send values us different routes.  Under normal
> circumstances I
> > wouldn't do it that way as Camel does a great job of heavy lifting.  But
> in
> > some cases just using a Java bean is simpler and cleaner. Imagine having
> a
> > CityRouteHandler with one method on it.
> >
> >
> > public void routeToCities(Map myMap){
> > {
> >  for (Map.Entry entry : map.entrySet()) {
> > if("Hyderabad".equals(entry.getKey()){
> > for(String message: entry.getValue())
> > hyderabad.sendBody(message);
> > ...etc.
> > }
> > }
> > }
> >
> > You could then create a helper method as well that instead of looping
> > inside for each new entry and sending to the producer template, have the
> > helper method take the List and producer template and loop inside
> > it.  That would simplify the map code.
> >
> > The ProducerTemplate entries in this class would be declared something
> like
> > this:
> >
> > @InjectEndpoint(uri="direct:hyderabad")
> > ProducerTemplate hyderabad;
> >
> > I've written this free hand so while the ideas are correct I can't vouch
> > for the correctness of the code itself.
> >
> >
> >
> >
> >
> > On Mon, Oct 24, 2016 at 8:04 AM, raghavender.anth...@gmail.com <
> > raghavender.anth...@gmail.com> wrote:
> >
> > > Thanks a lot for the response. This seems like useful, I'll give out a
> > try
> > > and will update you accordingly.
> > >
> > > Best,
> > > Raghavender Anthwar
> > >
> > >
> > >
> > > --
> > > View this message in context: http://camel.465427.n5.nabble.
> > > com/Dynamic-routing-based-on-collection-values-tp5789157p5789179.html
> > > Sent from the Camel - Users mailing list archive at Nabble.com.
> > >
> >
>


Re: AW: Dynamic routing based on collection values

2016-10-24 Thread Steve973
I'd worry about the overhead of creating so many producer templates. I
would probably set a header that contains a map of keys to destinations,
then you could set a recipient list of one endpoint that contains the value
at that key. Maybe brad's method isn't as overhead intensive because the
template is injected, but this is more manual implementation than i would
prefer.

On Oct 24, 2016 9:21 AM, "Brad Johnson" 
wrote:

> This is also one of those fuzzy areas where sometimes it is easier to
> simply pass the message body into a bean and then use ProducerTemplate
> instances to send values us different routes.  Under normal circumstances I
> wouldn't do it that way as Camel does a great job of heavy lifting.  But in
> some cases just using a Java bean is simpler and cleaner. Imagine having a
> CityRouteHandler with one method on it.
>
>
> public void routeToCities(Map myMap){
> {
>  for (Map.Entry entry : map.entrySet()) {
> if("Hyderabad".equals(entry.getKey()){
> for(String message: entry.getValue())
> hyderabad.sendBody(message);
> ...etc.
> }
> }
> }
>
> You could then create a helper method as well that instead of looping
> inside for each new entry and sending to the producer template, have the
> helper method take the List and producer template and loop inside
> it.  That would simplify the map code.
>
> The ProducerTemplate entries in this class would be declared something like
> this:
>
> @InjectEndpoint(uri="direct:hyderabad")
> ProducerTemplate hyderabad;
>
> I've written this free hand so while the ideas are correct I can't vouch
> for the correctness of the code itself.
>
>
>
>
>
> On Mon, Oct 24, 2016 at 8:04 AM, raghavender.anth...@gmail.com <
> raghavender.anth...@gmail.com> wrote:
>
> > Thanks a lot for the response. This seems like useful, I'll give out a
> try
> > and will update you accordingly.
> >
> > Best,
> > Raghavender Anthwar
> >
> >
> >
> > --
> > View this message in context: http://camel.465427.n5.nabble.
> > com/Dynamic-routing-based-on-collection-values-tp5789157p5789179.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>


Accessing Websphere MQ using credentials

2016-10-24 Thread ganga_camel
Hi,

I am trying to connect to WMQ using UserName and password. As per one of the
posts in the User group, I tried the below code for creating a wmq component

@Bean
MQQueueConnectionFactory jmsConnectionFactory()
{
jmsConnectionFactory = new MQQueueConnectionFactory();
try {
jmsConnectionFactory.setPort(port);
jmsConnectionFactory.setChannel("channel");
jmsConnectionFactory.setHostName("host");
jmsConnectionFactory.setQueueManager("QM");
jmsConnectionFactory.setTransportType(type);
}catch (Exception e){}
return jmsConnectionFactory;
}

@Bean
UserCredentialsConnectionFactoryAdapter adapter(){
adapter = new UserCredentialsConnectionFactoryAdapter();
adapter.setTargetConnectionFactory(jmsConnectionFactory);
adapter.setUsername("username");
adapter.setPassword("password");

return adapter;
}

@Bean
JmsComponent wmq()
{
JmsComponent wmq=new JmsComponent();
wmq.setConnectionFactory(adapter);
return wmq;
}

and my route looks like

from("wmq:queue:queueName")
.log(LoggingLevel.INFO, "Message read from WMQ is ${body}")
.end();

When I run my route, I get the below error

Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name
'org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration': Injection
of autowired dependencies failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Could not autowire
field: private javax.jms.ConnectionFactory
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration.connectionFactory;
nested exception is
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
single matching bean but found 2: jmsConnectionFactory,adapter
at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:368)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at

Authentication Header Missing from CXF Endpoint

2016-10-24 Thread aravind r
Hi All,

Any help is appreciated as i am trying to solve this for 2 days now.

Trying to unit test a CXF end point secured with Spring Authentication. I
tried passing in as below the Authentication header however when it reaches
my CXF Endpoint and down to route. The header is missing.

I tried a lot of combinations and i did read some where that it doesn't
pass it via CXF endpoint. Is this a bug?, that was a post from 2012 though.
any workarounds?.

How should i test my whole integration flow?.


Exchange responseExchange = producerTemplate.request("cxfrs://
http://localhost:9001/;, new Processor() {


@Override
public void process(Exchange exchange) throws Exception {


exchange.setPattern(ExchangePattern.InOut);
Message inMessage = exchange.getIn();
inMessage.setHeader("CamelCxfRsUsingHttpAPI", Boolean.TRUE);
inMessage.setHeader("CamelHttpMethod", "POST");
inMessage.setHeader("operationName", "getAccounts");
inMessage.setHeader(Exchange.CONTENT_TYPE,"application/json");
inMessage.setHeader("CamelAuthentication",subject);
inMessage.setHeader("CamelHttpPath", "/v1/core/getAccounts");
inMessage.setBody( new ObjectMapper().writeValueAsString(bo));


*exchange.getIn().setHeader(Exchange.AUTHENTICATION,subject);*
}
});

Regards,
Aravind


Re: SEDA with Aggregation

2016-10-24 Thread Vince Iglehart
That is helpful.  

With the completionTimeout() I would like to group messages coming in
through the webservice so that RouteB is not called multiple times.  For
example if there are 500 messages with the same payload coming in through
the webservice, I would like to aggregate all of them into 1 message so that
RouteB is called once.

With the seda implementation, I was attempting to make sure that only 1
instance of RouteB was running at one time.  I think that changing
seda:RouteB to direct:RouteB would accomplish what I need to do.  I wasn't
really clear on how the threading model worked. If it ensures sequential
calls to RouteB, then it will accomplish what I need.  

Regards






--
View this message in context: 
http://camel.465427.n5.nabble.com/SEDA-with-Aggregation-tp5789103p5789186.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: IDE for newer Camel versions using Camel Spring Boot

2016-10-24 Thread Mark Nuttall
Fyi STS has property autocompletion with docs :).

I recommend Claus's video. I was going to mention it but figured he would.

On Oct 24, 2016 3:18 AM, "Claus Ibsen"  wrote:

> Hi
>
> There is also the fabric8 Camel forge tooling for Apache Camel
> http://fabric8.io/guide/forge.html
>
> As well the maven plugin to validate your Camel endpoints/expressions
> http://fabric8.io/guide/camelMavenPlugin.html
>
> The forge tooling works in any IDE such as Eclipse, IDEA or NetBeans.
> I recorded a video in the start of the year
> http://www.davsclaus.com/2015/12/video-of-apache-camel-
> tooling-to-edit.html
>
> For graphical drag and drop then there is as you say JBoss Eclipse
> tooling for Camel where a new version was recently released that
> support Camel 2.17.x
> http://lhein.blogspot.se/2016/10/jboss-fuse-tooling-80-for-
> eclipse-mars.html
>
> The real power of Camel is that you do NOT need any tooling, its just
> java, scala, groovy or xml code. The more skilled (Camel) developers I
> hear just uses their IDE of choice/
>
> Though for Spring Boot users I do like the auto completion tooling
> that IDEA has when editing application.properties where you can get
> code assistance to see all the options you can configure, and with
> documentation.
>
>
>
> On Sun, Oct 23, 2016 at 9:35 PM, Pontus Ullgren  wrote:
> > Hi,
> >
> > I know about JBoss Tools Camel Tooling and been using it. It works great
> as
> > long as we stayed with the RedHat supported versions of Camel and JBoss
> > Fuse. But lately we have moved away from this and going with Camel Spring
> > Boot and more up to date versions of Camel.
> >
> > The main reason for this is to get new features faster.
> >
> > The problem now is that JBoss Tools does not handle this combination
> well.
> > But that is a JBoss specific issue so that is not what I want to discuss
> > here. There is other forums for this.
> >
> > Instead my question: What do you use for developing your Camel based
> > applications ?
> > I quickly tested Spring Tool Suite which kind of give us most of what we
> > look for including good support for gradle. But hope to get some more
> > suggestions.
> >
> > We mostly use the Spring XML DSL to define the routes but also some Java
> > DSL.
> > Code completion and some tooltips in XML editing mode is a requirement.
> > Graphical visualisation and editing of the routes is a bonus but I assume
> > that JBoss Tools is the only one that supports this.
> >
> > Thanks for any insight you can share
> > Pontus
>
>
>
> --
> Claus Ibsen
> -
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>


Re: Karaf - 4.0.7(Felix): JmsBinding not found

2016-10-24 Thread Matt Sicker
Does that also apply to using just the activemq-client bundle?

On 24 October 2016 at 02:19, Claus Ibsen  wrote:

> Hi
>
> Apache ActiveMQ do not support Camel 2.18 on Karaf.
>
> ActiveMQ 5.15.0 will very likely support Camel 2.18. You need to use
> an older version of Camel if you want to run ActiveMQ broker embedded
> inside Karaf and have Camel installed at the same time.
>
>
>
>
> On Fri, Oct 21, 2016 at 6:18 PM, akpcnu  wrote:
> > This is repost from Camel JIRA, Claus has asked to use user mailing list.
> >
> > CAMEL-10405 
> >
> > Environment :
> >
> >  Camel 2.18.0 and Karaf 4.0.7 (& Felix) ActiveMQ 5.14 (Not Embedded)
> >
> > featuresRepositories = \
> > mvn:org.apache.karaf.features/spring/4.0.7/xml/features, \
> > mvn:org.apache.karaf.features/standard/4.0.7/xml/features, \
> > mvn:org.apache.karaf.features/framework/4.0.7/xml/features, \
> > mvn:org.apache.karaf.features/enterprise/4.0.7/xml/features, \
> > mvn:org.apache.activemq/activemq-karaf/5.14.0/xml/features-core, \
> > mvn:org.apache.camel.karaf/apache-camel/2.18.0/xml/features
> >
> > Error at the startup:
> >
> > Ignoring converter type:
> > org.apache.activemq.camel.converter.ActiveMQMessageConverter as a
> dependent
> > class could not be found: java.lang.NoClassDefFoundError:
> > org/apache/camel/component/jms/JmsBinding
> > java.lang.NoClassDefFoundError: org/apache/camel/component/
> jms/JmsBinding
> > at java.lang.Class.getDeclaredMethods0(Native Method)[:1.8.0_60]
> > at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)[:1.8.0_60]
> > at java.lang.Class.getDeclaredMethods(Class.java:1975)[:1.8.0_60]
> > at
> > org.apache.camel.impl.converter.AnnotationTypeConverterLoader.
> loadConverterMethods(AnnotationTypeConverterLoader.java:262)
> > at
> > org.apache.camel.impl.osgi.Activator$BundleTypeConverterLoader$
> Loader.load(Activator.java:463)
> > at
> > org.apache.camel.impl.osgi.Activator$BundleTypeConverterLoader.
> load(Activator.java:378)
> > at
> > org.apache.camel.core.osgi.OsgiTypeConverter.createRegistry(
> OsgiTypeConverter.java:225)
> > at
> > org.apache.camel.core.osgi.OsgiTypeConverter.getDelegate(
> OsgiTypeConverter.java:188)
> > at
> > org.apache.camel.core.osgi.OsgiTypeConverter.getStatistics(
> OsgiTypeConverter.java:163)
> > at
> > org.apache.camel.impl.DefaultCamelContext.forceLazyInitialization(
> DefaultCamelContext.java:3750)[84:org.apache.camel.camel-core:2.18.0]
> > at
> > org.apache.camel.impl.DefaultCamelContext.doStartCamel(
> DefaultCamelContext.java:3086)[84:org.apache.camel.camel-core:2.18.0]
> > at
> > org.apache.camel.impl.DefaultCamelContext.access$
> 000(DefaultCamelContext.java:182)[84:org.apache.camel.camel-core:2.18.0]
> > at
> > org.apache.camel.impl.DefaultCamelContext$2.call(
> DefaultCamelContext.java:2957)
> > at
> > org.apache.camel.impl.DefaultCamelContext$2.call(
> DefaultCamelContext.java:2953)
> > at
> > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(
> DefaultCamelContext.java:2976)[84:org.apache.camel.camel-core:2.18.0]
> > at
> > org.apache.camel.impl.DefaultCamelContext.doStart(
> DefaultCamelContext.java:2953)[84:org.apache.camel.camel-core:2.18.0]
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> > at
> > org.apache.camel.impl.DefaultCamelContext.start(
> DefaultCamelContext.java:2920)[84:org.apache.camel.camel-core:2.18.0]
> > at
> > org.apache.camel.blueprint.BlueprintCamelContext.start(
> BlueprintCamelContext.java:185)
> > at
> > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(
> BlueprintCamelContext.java:217)
> > at
> > org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(
> BlueprintCamelContext.java:155)
> > at
> > org.apache.felix.framework.util.EventDispatcher.
> invokeServiceListenerCallback(EventDispatcher.java:991)[org.
> apache.felix.framework-5.4.0.jar:]
> > at
> > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(
> EventDispatcher.java:839)[org.apache.felix.framework-5.4.0.jar:]
> > at
> > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(
> EventDispatcher.java:546)[org.apache.felix.framework-5.4.0.jar:]
> > at
> > org.apache.felix.framework.Felix.fireServiceEvent(Felix.
> java:4557)[org.apache.felix.framework-5.4.0.jar:]
> > at
> > org.apache.felix.framework.Felix.registerService(Felix.
> java:3549)[org.apache.felix.framework-5.4.0.jar:]
> > at
> > org.apache.felix.framework.BundleContextImpl.registerService(
> BundleContextImpl.java:348)
> > at
> > org.apache.felix.framework.BundleContextImpl.registerService(
> BundleContextImpl.java:355)
> > at
> > org.apache.camel.blueprint.BlueprintCamelContext.init(
> BlueprintCamelContext.java:105)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)[:1.8.0_60]
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)[:1.8.0_60]
> > at
> > 

Cannot find class CamelContextFactory in Camel 2.18.0

2016-10-24 Thread Bengt Rodehav
I'm running Camel in Karaf 4.0.7. I'm about to upgrade from Camel 2.17.2 to
Camel 2.18.0.

CamelContextFactory is in package org.apache.camel.osgi.

In Camel 2.17.2 this class resided in component camel-spring which exported
this package.

In Camel 2.18.0 this class instead resides in component camel-spring-dm
which does not export this package.

I have code that is now broken since it uses the CamelContextFactory class.

Is this change intentional? Am I not supposed to use CamelContextFactory?
If so, is there a workaround? (Copy/paste code from Camel 2.17.2?)

/Bengt


Re: AW: Dynamic routing based on collection values

2016-10-24 Thread Brad Johnson
This is also one of those fuzzy areas where sometimes it is easier to
simply pass the message body into a bean and then use ProducerTemplate
instances to send values us different routes.  Under normal circumstances I
wouldn't do it that way as Camel does a great job of heavy lifting.  But in
some cases just using a Java bean is simpler and cleaner. Imagine having a
CityRouteHandler with one method on it.


public void routeToCities(Map myMap){
{
 for (Map.Entry entry : map.entrySet()) {
if("Hyderabad".equals(entry.getKey()){
for(String message: entry.getValue())
hyderabad.sendBody(message);
...etc.
}
}
}

You could then create a helper method as well that instead of looping
inside for each new entry and sending to the producer template, have the
helper method take the List and producer template and loop inside
it.  That would simplify the map code.

The ProducerTemplate entries in this class would be declared something like
this:

@InjectEndpoint(uri="direct:hyderabad")
ProducerTemplate hyderabad;

I've written this free hand so while the ideas are correct I can't vouch
for the correctness of the code itself.





On Mon, Oct 24, 2016 at 8:04 AM, raghavender.anth...@gmail.com <
raghavender.anth...@gmail.com> wrote:

> Thanks a lot for the response. This seems like useful, I'll give out a try
> and will update you accordingly.
>
> Best,
> Raghavender Anthwar
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.
> com/Dynamic-routing-based-on-collection-values-tp5789157p5789179.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>


Re: AW: Dynamic routing based on collection values

2016-10-24 Thread raghavender.anth...@gmail.com
Thanks a lot for the response. This seems like useful, I'll give out a try
and will update you accordingly.

Best,
Raghavender Anthwar



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-values-tp5789157p5789179.html
Sent from the Camel - Users mailing list archive at Nabble.com.


AW: Dynamic routing based on collection values

2016-10-24 Thread jhm
Here an example what I unterstood.

Jan



package de.materne.camel;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import org.apache.camel.EndpointInject;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;

public class IterateOverMapTest extends CamelTestSupport {

@EndpointInject(uri="mock:foo")
private MockEndpoint foo;

@EndpointInject(uri="mock:bar")
private MockEndpoint bar;

@Test
public void test() throws InterruptedException {
Map data = new HashMap<>();
data.put("foo.suffix", "One");
data.put("foo.anotherSuffix", "Two");
data.put("bar.suffix", "Three");

foo.expectedMessageCount(2);
bar.expectedMessageCount(1);
template().sendBody("direct:in", data);

assertMockEndpointsSatisfied(1, TimeUnit.SECONDS);
}

@Override
protected RoutesBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:in")
// for splitting, we need an
Iterable

.transform(simple("${in.body.entrySet()}"))
// now simple split over the
Iterable
.split(body())
// content based routing on key
prefix
.choice()

.when(simple("${in.body.key()} starts with 'foo'"))
.to("mock:foo")

.when(simple("${in.body.key()} starts with 'bar'"))
.to("mock:bar")
.otherwise()
.to("mock:end")
;
}
};
}

}



> -Ursprüngliche Nachricht-
> Von: raghavender.anth...@gmail.com
> [mailto:raghavender.anth...@gmail.com]
> Gesendet: Montag, 24. Oktober 2016 11:53
> An: users@camel.apache.org
> Betreff: Re: Dynamic routing based on collection values
> 
> Thanks will tr the split method. Is there any example available on the
> web to split the collection? I searched but couldn't find much help.
> 
> 
> 
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-
> values-tp5789157p5789169.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



Re: Dynamic routing based on collection values

2016-10-24 Thread Steve973
The easiest way that I can think of is to send map.entryset in the message
body instead of the map itself.  Then you can simply do .split().body().
That should work for you.

On Mon, Oct 24, 2016 at 5:52 AM, raghavender.anth...@gmail.com <
raghavender.anth...@gmail.com> wrote:

> Thanks will tr the split method. Is there any example available on the web
> to
> split the collection? I searched but couldn't find much help.
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.
> com/Dynamic-routing-based-on-collection-values-tp5789157p5789169.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>


Re: Dynamic routing based on collection values

2016-10-24 Thread raghavender.anth...@gmail.com
Thanks will tr the split method. Is there any example available on the web to
split the collection? I searched but couldn't find much help.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-values-tp5789157p5789169.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Dynamic routing based on collection values

2016-10-24 Thread Steve973
Note that you will have to split on the map's entryset, since a map,
itself, is not iterable.  This is probably obvious, but I wanted to mention
it anyway, since splitting requires an iterable to split.

On Mon, Oct 24, 2016 at 5:16 AM, Steve973  wrote:

> Have you tried first using splitter, and then using a choice to determine
> the route?  From the example in "Composed Message Processor", they do
> something similar:
>
> // split up the order so individual OrderItems can be validated by the
> appropriate bean
> from("direct:start")
> .split().body()
> .choice()
> .when().method("orderItemHelper", "isWidget")
> .to("bean:widgetInventory")
> .otherwise()
> .to("bean:gadgetInventory")
> .end()
> .to("seda:aggregate");
>
> // collect and re-assemble the validated OrderItems into an order again
> from("seda:aggregate")
> .aggregate(new MyOrderAggregationStrategy()).header("orderId").
> completionTimeout(1000L)
> .to("mock:result");
>
> Of course, your "when" calls will be different to look at the key values.
>
>
> On Mon, Oct 24, 2016 at 5:03 AM, raghavender.anth...@gmail.com <
> raghavender.anth...@gmail.com> wrote:
>
>> I've gone through the document of recipient list and seems it send the
>> same
>> copy of the message to all routes.
>>
>> I'm looking for sending each value of the map to a different router based
>> on
>> the key.
>>
>> Thank you.
>>
>>
>>
>> --
>> View this message in context: http://camel.465427.n5.nabble.
>> com/Dynamic-routing-based-on-collection-values-tp5789157p5789165.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>
>


Re: Dynamic routing based on collection values

2016-10-24 Thread Steve973
Have you tried first using splitter, and then using a choice to determine
the route?  From the example in "Composed Message Processor", they do
something similar:

// split up the order so individual OrderItems can be validated by the
appropriate bean
from("direct:start")
.split().body()
.choice()
.when().method("orderItemHelper", "isWidget")
.to("bean:widgetInventory")
.otherwise()
.to("bean:gadgetInventory")
.end()
.to("seda:aggregate");

// collect and re-assemble the validated OrderItems into an order again
from("seda:aggregate")
.aggregate(new
MyOrderAggregationStrategy()).header("orderId").completionTimeout(1000L)
.to("mock:result");

Of course, your "when" calls will be different to look at the key values.


On Mon, Oct 24, 2016 at 5:03 AM, raghavender.anth...@gmail.com <
raghavender.anth...@gmail.com> wrote:

> I've gone through the document of recipient list and seems it send the same
> copy of the message to all routes.
>
> I'm looking for sending each value of the map to a different router based
> on
> the key.
>
> Thank you.
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.
> com/Dynamic-routing-based-on-collection-values-tp5789157p5789165.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>


Re: Dynamic routing based on collection values

2016-10-24 Thread raghavender.anth...@gmail.com
I've gone through the document of recipient list and seems it send the same
copy of the message to all routes.

I'm looking for sending each value of the map to a different router based on
the key. 

Thank you.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-values-tp5789157p5789165.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: AW: Dynamic routing based on collection values

2016-10-24 Thread raghavender.anth...@gmail.com
Basically I've the map that was mentioned in the post as input in the
incoming message. And I wanted to iterate over each key of the map and send
it as input to different endpoint based on the key value.

Yes, it's kind of content based routing but the content is a collection
here.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-values-tp5789157p5789163.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Dynamic routing based on collection values

2016-10-24 Thread raghavender.anth...@gmail.com
Thanks for the quick response but I don't see whether recipient list can
iterate over the map and send each of the value to different endpoint.

Can you point me to a specific example where the routing is done based on
the collection values in the incoming message?

Sorry, am a beginner to Camel so looking for specific example. Thanks again.

Best,
Raghu



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-values-tp5789157p5789162.html
Sent from the Camel - Users mailing list archive at Nabble.com.


AW: Dynamic routing based on collection values

2016-10-24 Thread jhm
So you want to split [1] the list into Key-Value-Pairs and do a content
based routing [2]?

Jan


[1] http://camel.apache.org/splitter.html
[2] http://camel.apache.org/content-based-router.html 

> -Ursprüngliche Nachricht-
> Von: raghavender.anth...@gmail.com
> [mailto:raghavender.anth...@gmail.com]
> Gesendet: Montag, 24. Oktober 2016 09:48
> An: users@camel.apache.org
> Betreff: Dynamic routing based on collection values
> 
> Hello All,
> 
> Can someone help me with a solution for this problem:
> 
> I want to route to different destinations based on the values that are
> present in the collection. For example, I've a map/any other collection
> with list of different values. I want to iterate over the collection
> and want to route the message to different destination based on the
> value of the collection.
> 
> Assume that my map contains below keys and values:
> 
> Map> myMap = new HashMap ListString>>();
> 
> I would like to iterate over the map and based on key I wanted to pass
> on the corresponding value list to a different route. Like:
> 
> If (Key == "Hyderabad") then route to Hyderabad uri etc.
> 
> Your help is much appreciated, Thank you.
> 
> Best,
> Raghavender Anthwar
> 
> 
> 
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-
> values-tp5789157.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



Re: Dynamic routing based on collection values

2016-10-24 Thread ravi narayanan
Please have a look at recipient list EIP.
http://camel.apache.org/recipient-list.html

On Monday, 24 October 2016, raghavender.anth...@gmail.com <
raghavender.anth...@gmail.com> wrote:

> Hello All,
>
> Can someone help me with a solution for this problem:
>
> I want to route to different destinations based on the values that are
> present in the collection. For example, I've a map/any other collection
> with
> list of different values. I want to iterate over the collection and want to
> route the message to different destination based on the value of the
> collection.
>
> Assume that my map contains below keys and values:
>
> Map> myMap = new HashMap ListString>>();
>
> I would like to iterate over the map and based on key I wanted to pass on
> the corresponding value list to a different route. Like:
>
> If (Key == "Hyderabad") then route to Hyderabad uri etc.
>
> Your help is much appreciated, Thank you.
>
> Best,
> Raghavender Anthwar
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.
> com/Dynamic-routing-based-on-collection-values-tp5789157.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>


Dynamic routing based on collection values

2016-10-24 Thread raghavender.anth...@gmail.com
Hello All,

Can someone help me with a solution for this problem:

I want to route to different destinations based on the values that are
present in the collection. For example, I've a map/any other collection with
list of different values. I want to iterate over the collection and want to
route the message to different destination based on the value of the
collection.

Assume that my map contains below keys and values:

Map> myMap = new HashMap>();

I would like to iterate over the map and based on key I wanted to pass on
the corresponding value list to a different route. Like:

If (Key == "Hyderabad") then route to Hyderabad uri etc.

Your help is much appreciated, Thank you.

Best,
Raghavender Anthwar



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-routing-based-on-collection-values-tp5789157.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Karaf - 4.0.7(Felix): JmsBinding not found

2016-10-24 Thread Claus Ibsen
Hi

Apache ActiveMQ do not support Camel 2.18 on Karaf.

ActiveMQ 5.15.0 will very likely support Camel 2.18. You need to use
an older version of Camel if you want to run ActiveMQ broker embedded
inside Karaf and have Camel installed at the same time.




On Fri, Oct 21, 2016 at 6:18 PM, akpcnu  wrote:
> This is repost from Camel JIRA, Claus has asked to use user mailing list.
>
> CAMEL-10405 
>
> Environment :
>
>  Camel 2.18.0 and Karaf 4.0.7 (& Felix) ActiveMQ 5.14 (Not Embedded)
>
> featuresRepositories = \
> mvn:org.apache.karaf.features/spring/4.0.7/xml/features, \
> mvn:org.apache.karaf.features/standard/4.0.7/xml/features, \
> mvn:org.apache.karaf.features/framework/4.0.7/xml/features, \
> mvn:org.apache.karaf.features/enterprise/4.0.7/xml/features, \
> mvn:org.apache.activemq/activemq-karaf/5.14.0/xml/features-core, \
> mvn:org.apache.camel.karaf/apache-camel/2.18.0/xml/features
>
> Error at the startup:
>
> Ignoring converter type:
> org.apache.activemq.camel.converter.ActiveMQMessageConverter as a dependent
> class could not be found: java.lang.NoClassDefFoundError:
> org/apache/camel/component/jms/JmsBinding
> java.lang.NoClassDefFoundError: org/apache/camel/component/jms/JmsBinding
> at java.lang.Class.getDeclaredMethods0(Native Method)[:1.8.0_60]
> at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)[:1.8.0_60]
> at java.lang.Class.getDeclaredMethods(Class.java:1975)[:1.8.0_60]
> at
> org.apache.camel.impl.converter.AnnotationTypeConverterLoader.loadConverterMethods(AnnotationTypeConverterLoader.java:262)
> at
> org.apache.camel.impl.osgi.Activator$BundleTypeConverterLoader$Loader.load(Activator.java:463)
> at
> org.apache.camel.impl.osgi.Activator$BundleTypeConverterLoader.load(Activator.java:378)
> at
> org.apache.camel.core.osgi.OsgiTypeConverter.createRegistry(OsgiTypeConverter.java:225)
> at
> org.apache.camel.core.osgi.OsgiTypeConverter.getDelegate(OsgiTypeConverter.java:188)
> at
> org.apache.camel.core.osgi.OsgiTypeConverter.getStatistics(OsgiTypeConverter.java:163)
> at
> org.apache.camel.impl.DefaultCamelContext.forceLazyInitialization(DefaultCamelContext.java:3750)[84:org.apache.camel.camel-core:2.18.0]
> at
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3086)[84:org.apache.camel.camel-core:2.18.0]
> at
> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:182)[84:org.apache.camel.camel-core:2.18.0]
> at
> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2957)
> at
> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2953)
> at
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2976)[84:org.apache.camel.camel-core:2.18.0]
> at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2953)[84:org.apache.camel.camel-core:2.18.0]
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2920)[84:org.apache.camel.camel-core:2.18.0]
> at
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:185)
> at
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:217)
> at
> org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:155)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:991)[org.apache.felix.framework-5.4.0.jar:]
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:839)[org.apache.felix.framework-5.4.0.jar:]
> at
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:546)[org.apache.felix.framework-5.4.0.jar:]
> at
> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557)[org.apache.felix.framework-5.4.0.jar:]
> at
> org.apache.felix.framework.Felix.registerService(Felix.java:3549)[org.apache.felix.framework-5.4.0.jar:]
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:355)
> at
> org.apache.camel.blueprint.BlueprintCamelContext.init(BlueprintCamelContext.java:105)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_60]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_60]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_60]
> at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_60]
> at
> org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)[56:org.apache.aries.blueprint.core:1.6.2]
> at
> org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)[56:org.apache.aries.blueprint.core:1.6.2]
> at
> 

Re: old javadocs on website?

2016-10-24 Thread Claus Ibsen
Hi

Thanks I have updated the link to point to a better site that always
has up to date javadoc.

On Sat, Oct 22, 2016 at 5:58 PM, Tim Dudgeon  wrote:
> This page on the website: https://camel.apache.org/javadoc.html links to
> here http://camel.apache.org/maven/current/camel-core/apidocs/index.html for
> the core javadocs.
>
> But that page is for the 2.15.0 version, so it a bit out of date. Are the
> current versions available, and can web site be updated?
>
> Tim
>



-- 
Claus Ibsen
-
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2


Re: IDE for newer Camel versions using Camel Spring Boot

2016-10-24 Thread Claus Ibsen
Hi

There is also the fabric8 Camel forge tooling for Apache Camel
http://fabric8.io/guide/forge.html

As well the maven plugin to validate your Camel endpoints/expressions
http://fabric8.io/guide/camelMavenPlugin.html

The forge tooling works in any IDE such as Eclipse, IDEA or NetBeans.
I recorded a video in the start of the year
http://www.davsclaus.com/2015/12/video-of-apache-camel-tooling-to-edit.html

For graphical drag and drop then there is as you say JBoss Eclipse
tooling for Camel where a new version was recently released that
support Camel 2.17.x
http://lhein.blogspot.se/2016/10/jboss-fuse-tooling-80-for-eclipse-mars.html

The real power of Camel is that you do NOT need any tooling, its just
java, scala, groovy or xml code. The more skilled (Camel) developers I
hear just uses their IDE of choice/

Though for Spring Boot users I do like the auto completion tooling
that IDEA has when editing application.properties where you can get
code assistance to see all the options you can configure, and with
documentation.



On Sun, Oct 23, 2016 at 9:35 PM, Pontus Ullgren  wrote:
> Hi,
>
> I know about JBoss Tools Camel Tooling and been using it. It works great as
> long as we stayed with the RedHat supported versions of Camel and JBoss
> Fuse. But lately we have moved away from this and going with Camel Spring
> Boot and more up to date versions of Camel.
>
> The main reason for this is to get new features faster.
>
> The problem now is that JBoss Tools does not handle this combination well.
> But that is a JBoss specific issue so that is not what I want to discuss
> here. There is other forums for this.
>
> Instead my question: What do you use for developing your Camel based
> applications ?
> I quickly tested Spring Tool Suite which kind of give us most of what we
> look for including good support for gradle. But hope to get some more
> suggestions.
>
> We mostly use the Spring XML DSL to define the routes but also some Java
> DSL.
> Code completion and some tooltips in XML editing mode is a requirement.
> Graphical visualisation and editing of the routes is a bonus but I assume
> that JBoss Tools is the only one that supports this.
>
> Thanks for any insight you can share
> Pontus



-- 
Claus Ibsen
-
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2


Re: IDE for newer Camel versions using Camel Spring Boot

2016-10-24 Thread jclarysse
Pontus, JBoss Tools is not the only product to support grafical visualisation
of Camel routes. You may take a look at Talend ESB, which also sticks to a
given supported version (Camel 2.16 in Talend 6.2) but allows exports as
Spring Boot Microservices:
https://www.talend.com/download/talend-open-studio#t3



--
View this message in context: 
http://camel.465427.n5.nabble.com/IDE-for-newer-Camel-versions-using-Camel-Spring-Boot-tp5789147p5789151.html
Sent from the Camel - Users mailing list archive at Nabble.com.