[CONF] Apache Camel MongoDB

2014-09-05 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


MongoDB   






...



 div








class
confluenceTableSmall


 












 Name 
 Default Value 
 Description 
 Producer 
 Tailable Cursor Consumer 


  database  
 none 
  Required. The name of the database to which this endpoint will be bound. All operations will be executed against this database unless dynamicity is enabled and theCamelMongoDbDatabase header is set. 
   
   


  collection  
 none 
  Required. The name of the collection (within the specified database) to which this endpoint will be bound.All operations will be executed against this database unless dynamicity is enabled and theCamelMongoDbDatabase header is set. 
   
   


   

[CONF] Apache Camel MINA2

2014-09-05 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


MINA2   






...
Maven users will need to add the following dependency to their pom.xml for this component:



 Code Block









xml


 




 

dependency
groupIdorg.apache.camel/groupId
artifactIdcamel-mina2/artifactId
versionx.x.x/version
!-- use the same version as your Camel core version --
/dependency
 



URI format



 Code Block




 

mina2:tcp://hostname[:port][?options]
mina2:udp://hostname[:port][?options]
mina2:vm://hostname[:port][?options]
 



...



 div








class
confluenceTableSmall
   

[CONF] Apache Camel Camel 2.14.0 Release

2014-09-02 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.
Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP
Improved stability when testing withcamel-test-blueprint component.
 Netty HTTPnow removes headerFilterStrategy option after resolvingit
Fixed POJO aggregating when the parameter type was referring to a type that was class annotated.
FixedMyBatisto keep the message body as-is when calling stored procedures, if the procedure returns data as OUT parameters.
Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.
Fixed Advice-With to work with transacted routes defined in XML DSL
Fixed Advice-With to work with Content Based Router when adding outputs to the when clauses.
Fixed Advice-With to honor autoStartup option.
FixedOnCompletion to route the completedExchangeeven if it was marked to stop / failed due exception / handled by error handler etc.
Fixed using@EndpointInject with ref in RouteBuilderclasses, to enlist the endpoints in JMX during starting CamelContext when using OSGi
FixedProperty Trigger.timerZone is declared as constant for camel-quartz component but not implemented when endpoint is instantiated
 FixedJPAto not shareEntityManager with concurrent threads or other exchanges, as anEntityManager is not thread-safe accordingly to the JPA spec. 

New Enterprise Integration Patterns 
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Content Enricher

2014-09-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Content Enricher   






...
Camel supports the Content Enricher from the EIP patterns using a Message Translator, an arbitrary Processor in the routing logic, or using the enrich DSL element to enrich the message.
...
You can use Templating to consume a message from one destination, transform it with something like Velocity or XQuery, and then send it on to another destination. For example using InOnly (one way messaging)



 Code Block




 

from(activemq:My.Queue).
  to(velocity:com/acme/MyResponse.vm).
  to(activemq:Another.Queue);
 



If you want to use InOut (request-reply) semantics to process requests on the My.Queue queue on ActiveMQ with a template generated response, then sending responses back to the JMSReplyTo Destination you could use this:



 Code Block




 

from(activemq:My.Queue).
  to(velocity:com/acme/MyResponse.vm);
 



...
Finally we can use Bean Integration to use any Java method on any bean to act as the transformer



 Code Block




 

from(activemq:My.Queue).
  beanRef(myBeanName, myMethodName).
  to(activemq:Another.Queue);
 



...
 Using Spring XML 



 Code Block
  

[CONF] Apache Camel Camel 2.14.0 Release

2014-09-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Camel 2.14.0 Release

2014-09-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Metrics Component

2014-08-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Metrics Component   






...
Themetrics:component allows to collect various metrics directly from Camel routes. Supported metric types arecounter,histogram, meterandtimer.Metricsprovides simple way to measure behaviour of application. Configurable reportingbackendis enabling different integration options for collecting and visualizing statistics. The component also provides aMetricsRoutePolicyFactory which allows to expose route statistics using codehale metrics, see bottom of page for details.
...
Each metric has type and name. Supported types are counter, histogram,meterand timer. Metric name is simple string. If metric type is not provided then type meter is used by default.
...




Name
Default
Description


useJmx
false
Whether to report fine grained statistics to JMX by using the com.codahale.metrics.JmxReporter.Notice that if JMX is enabled on CamelContext then a MetricsRegistryService mbean is enlisted under the services type in the JMX tree. That mbean has a single operation to output the statistics using json. Setting useJmx to true is only needed if you want fine grained mbeans per statistics type.


jmxDomain
org.apache.camel.metrics
The JMX domain name


prettyPrint
false
Whether to use pretty print when outputting statistics in json format


metricsRegistry

Allow to use a shared com.codahale.metrics.MetricRegistry. If none is provided then Camel will create a shared instance used by the this CamelContext.


rateUnit
TimeUnit.SECONDS
The unit to use for rate in the metrics reporter or when dumping the statistics as json.

[CONF] Apache Camel Articles

2014-08-29 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Articles   






...

 A bit more meat: Camel applied : JMS to File by Mike McLean 
Matteo wrote a blog entry about using Camel with iBatis 
 Using the Camel aggregator correctly by Torsten Mielke 
 Spring Remoting with JMS Example on Amin Abbaspour's Weblog 
 Camel routes and HL7 by Roger Searjeant 
 Leverage EIP with Apache Camel and Twitter by Bruno Borges 
 Using RSS with Apache Camel by Jeroen Reijn 
 Axis 2 ride with Camel how to use Axis 2 with Camel by Sagara 
 A Camel based XML payload HTTP polling provider by Christopher Hunt 
 First steps with Apache Camel on Google App Engine by Martin Krasser 
 Camel, CXF and JMS by Example by Silvester van der Bijl 
 A simple file monitoring console with camel, cometd and jquery by Andrej Koelewijn 
 Advanced Event Notification Framework with Apache Camel by Hendy 
 Camel IRC Message Route Example by James Carr 
 A composite REST service using Apache Camel by Andrej Koelewijn 
 EDA events over system boundaries with Camel by Sculptur team blog 
 Dynamic FTP Client using Apache Camel and Spring by Mattias Severson 
 Using Apache Camel to route SOAP calls through message queues by Glen Mazza 
 Virtual ESB - application integration made painless with Apache Camel by Piotr Jagielski 
 Application-Monitoring  Statistics-Collection with Apache Camel by Martin Huber 
 Camel exception handling overview by Ben O'Day 
 Remote Observer Pattern with Publish-Subscribe via XMPP by Hendy 
 Implementing Asynchronous Observer Pattern with Bean Proxy by Hendy 
 Apache Camel Example Application - Earthquake Mashups showing how Camel using|\ EIPs can gather online earthquake and weather data and expose REST service.
 RouteBuilding with inherited configurations by Martin Huber 
 Mathew's Thoughts on Apache Camel shows how Apache Camel easily can route messages from a JMS topic to files using the Content Based Router EIP. More blog posts to come.
 Transparent Asynchronous Remoting via JMS by Harald Wellman 
 Dynamic Routing Using Health Information Policy with Apache Camel by Edward Brown and Jamie Goodyear 
 Transforming and splitting huge EDI files using Smooks and Camel by Claus Straube 

[CONF] Apache Camel XSLT

2014-08-27 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


XSLT   






...
 Available as of Camel 2.9 (removed in 2.11.4, 2.12.3 and 2.13.0)  Camel provides the CamelXsltResourceUri header which you can use to define a stylesheet to use instead of what is configured on the endpoint URI. This allows you to provide a dynamic stylesheet at runtime.
 Accessing warnings, errors and fatalErrors from XSLT ErrorListener 
 Available as of Camel 2.14 
 From Camel 2.14 onwards, any warning/error or fatalError is stored on the current Exchange as a property with the keysExchange.XSLT_ERROR,Exchange.XSLT_FATAL_ERROR, orExchange.XSLT_WARNING which allows end users to get hold of any errors happening during transformation. 
 For example in the stylesheet below, we want to terminate if a staff has an empty dob field. And to include a custom error message using xsl:message. 



 Code Block




 
  xsl:template match=/
html
  body
xsl:for-each select=staff/programmer
  pName: xsl:value-of select=name/br /
xsl:if test=dob=''
  xsl:message terminate=yesError: DOB is an empty string!/xsl:message
/xsl:if
  /p
/xsl:for-each
  /body
/html
  /xsl:template
 



 This information is not available on the Exchange stored as an Exception that contains the message in the getMessage() method on the exception. The exception is stored on the Exchange as a warning with the keyExchange.XSLT_WARNING. 
Notes on using XSLT and Java Versions
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel XSLT

2014-08-27 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


XSLT   






...



 div








class
confluenceTableSmall


 









 Name 
 Default Value 
 Description 


  converter  
  null  
 Option to override default XmlConverter. Will lookup for the converter in the Registry. The provided converted must be of type org.apache.camel.converter.jaxp.XmlConverter. 


  transformerFactory  
  null  
 Option to override default TransformerFactory. Will lookup for the transformerFactory in the Registry. The provided transformer factory must be of type javax.xml.transform.TransformerFactory. 


  transformerFactoryClass  
  null  
 Option to override default TransformerFactory. Will create a TransformerFactoryClass instance and set it to 

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-26 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.
Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP
Improved stability when testing withcamel-test-blueprint component.
 Netty HTTPnow removes headerFilterStrategy option after resolvingit
Fixed POJO aggregating when the parameter type was referring to a type that was class annotated.
FixedMyBatisto keep the message body as-is when calling stored procedures, if the procedure returns data as OUT parameters.
Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.
Fixed Advice-With to work with transacted routes defined in XML DSL
Fixed Advice-With to work with Content Based Router when adding outputs to the when clauses.
Fixed Advice-With to honor autoStartup option.
FixedOnCompletion to route the completedExchangeeven if it was marked to stop / failed due exception / handled by error handler etc.
 Fixed using@EndpointInject with ref in RouteBuilderclasses, to enlist the endpoints in JMX during starting CamelContext when using OSGi 

New Enterprise Integration Patterns 
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel iBATIS

2014-08-26 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


iBATIS   






...



 Warning








title
Prefer MyBatis


 




 The Apache iBatis project is no longer active. The project is moved outside Apache and is now know as the MyBatis project.Therefore we encourage users to use MyBatis instead. This camel-ibatis component will be removed in Camel 3.0.  iBatis do not support Spring 4.x. So you can only use Spring 3.x or older with iBatis.  



Maven users will need to add the following dependency to their pom.xml for this component:



 Code Block









xml


 




 

dependency
groupIdorg.apache.camel/groupId
artifactIdcamel-ibatis/artifactId
versionx.x.x/version
!-- use the same version as your Camel core version --
/dependency
 



[CONF] Apache Camel Swagger

2014-08-26 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Swagger   






...



 Code Block




 dependency
groupIdorg.apache.camel/groupId
artifactIdcamel-swagger/artifactId
versionx.x.x/version
!-- use the same version as your Camel core version --
/dependency
 



Using
 To use this The Swagger servlet is integrated with Spring orServletListener Component. 




Component
Servlet ClassName


spring
org.apache.camel.component.swagger.spring.SpringRestSwaggerApiDeclarationServlet


servletlistener
org.apache.camel.component.swagger.servletlistener.ServletListenerRestSwaggerApiDeclarationServlet




 The servlet support the same options when using spring or servletlistener. 
 When using Spring you need to configure theorg.apache.camel.component.swagger.RestSwaggerApiDeclarationServletspring.SpringRestSwaggerApiDeclarationServletin theWEB-INF/web.xmlfile as shown below:



 Code Block




   !-- to setup Camel Swagger api servlet when using Spring --
  servlet
servlet-nameApiDeclarationServlet/servlet-name
servlet-classorg.apache.camel.component.swagger.RestSwaggerApiDeclarationServletspring.SpringRestSwaggerApiDeclarationServlet/servlet-class
init-param
  param-namebase.path/param-name
  param-valuehttp://localhost:8080/rest/param-value
/init-param
init-param
  param-nameapi.path/param-name
  

[CONF] Apache Camel SJMS

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


SJMS   






...
Maven users will need to add the following dependency to their pom.xml for this component:



 Code Block









xml


 




 

dependency
groupIdorg.apache.camel/groupId
artifactIdcamel-sjms/artifactId
versionx.x.x/version
!-- use the same version as your Camel core version --
/dependency
 



URI format



 Code Block




 

sjms:[queue:|topic:]destinationName[?options]
 



Where destinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. For example, to connect to the queue, FOO.BAR use:



 Code Block




 

sjms:FOO.BAR
 



You can include the optional queue: prefix, if you prefer:
 

[CONF] Apache Camel SJMS

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


SJMS   






...



 Info








title
Why the S in SJMS


 




 S stands for Simple and Standard and Springless. Also camel-jms was already taken.  






 Warning




  This is a rather new component in a complex world of JMS messaging. So this component is ongoing development and hardening.   The classic JMS component based on Spring JMS has been hardened and battle tested extensively.  



  
Maven users will need to add the following dependency to their pom.xml for this component:
...



 div








class
confluenceTableSmall
  

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Kafka

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen created a page:
 


Kafka   





Kafka Component
 Available as of Camel 2.13 
The kafka: component is used for communicating with Apache Kafkamessage broker.
 Maven users will need to add the following dependency to their pom.xml for this component: 


dependency
groupIdorg.apache.camel/groupId
artifactIdcamel-kafka/artifactId
versionx.x.x/version
!-- use the same version as your Camel core version --
/dependency



URI format


kafka:server:port[?options]




Options





 Property 
 Default 
 Description 


 zookeeperHost 
  
 The zookeeper host to use 


 zookeeperPort 
 2181 
 The zookeeper port to use 


 topic 
  
 The topic to use 


groupId




partitioner




consumerStreams
10
   

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel XSLT

2014-08-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


XSLT   






...



 div








class
confluenceTableSmall


 









 Name 
 Default Value 
 Description 


  converter  
  null  
 Option to override default XmlConverter. Will lookup for the converter in the Registry. The provided converted must be of type org.apache.camel.converter.jaxp.XmlConverter. 


  transformerFactory  
  null  
 Option to override default TransformerFactory. Will lookup for the transformerFactory in the Registry. The provided transformer factory must be of type javax.xml.transform.TransformerFactory. 


  transformerFactoryClass  
  null  
 Option to override default TransformerFactory. Will create a TransformerFactoryClass instance and set it to 

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-22 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel UuidGenerator

2014-08-22 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


UuidGenerator   






...
Starting with Camel 2.5, Camel supports 3rd party UUID generator(s). This is useful, if e.g. your messaging provider does not support UUID's with a length of 36 characters (like Websphere MQ). Another useful scenario is to use a simple counter for testing purpose. With this it is easier to correlate the exchanges in the log/debugger.
 Camel uses UUIDs in the exchange and message ids, and other unique ids it uses. 
You only have to implement org.apache.camel.spi.UuidGenerator and tell Camel, that it should use your custom implementation:
Configuring from Java DSL



 Code Block




 

getContext().setUuidGenerator(new MyCustomUuidGenerator());
 



...
Camel will configure this UUID generator by doing a lookup in the Spring bean registry to find the bean of the type org.apache.camel.spi.UuidGenerator.



 Code Block




 

bean id=activeMQUuidGenerator class=org.apache.camel.impl.ActiveMQUuidGenerator /

camelContext id=camel xmlns=http://camel.apache.org/schema/spring
  route
from uri=direct:start /
to uri=mock:result /
  /route
/camelContext
 



...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel User Stories

2014-08-22 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


User Stories   






...




 Company, Product, or Project 
 Description 


  Apache ActiveMQ  
 Uses Camel to add Enterprise Integration Patterns support into the ActiveMQ broker. If you run an out of the box ActiveMQ broker, look in conf/camel.xml and you'll see camelContext with some example routing rules. Can be used to bridge ActiveMQ with any of the camel Components. 


  Apache ServiceMix  
 Uses Camel as a routing engine as a JBI service unit for use either in JBI or OSGi to route between JBI endpoints. See the tutorial or example  


  JBoss Fuse  (formerly known as Fuse ESB)  
 Red Hat provides a commercial distribution of an ESB which includes Camel, ActiveMQ, CXF, ServiceMix, Karaf, fabric8, and hawtio. 


  Tools for Apache Camel (formerly know as Fuse IDE) 
 JBoss provides developer tooling for Camel, ActiveMQ, ServiceMix, Karaf, CXF, and fabric8. The tools is a set of Eclipse plugins, such as a graphical Camel editor. 


fabric8
fabric8 is an open source integration platform, allow to run Camel applications anywhere; whether its on-premise or in the cloud.


  hawt.io  
 hawt.io is an open source HTML5 web application for visualizing, managing and tracing Camel routes  endpoints, ActiveMQ brokers, JMX, OSGi, logging, and much more. 


  Grails  
 The Grails Camel Routing Plugin provides integration of Camel into Grails 


  Open ESB Camel SE  
 Provides a JBI Service 

[CONF] Apache Camel Articles

2014-08-19 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Articles   






...

 Linkedin Apache Camel group - Linkedin group for the Apache Camel project.
 Google Plus Apache Camel community - G+ community for the Apache Camel project. 
 EIP printable flashcards - A 6 page PDF with printable EIP cards.
There are several companies that provide extra documentation, examples, tutorials, etc... See the Commercial Camel Offerings page for more details.
 Apache Camel Reference Card at DZone by Claus Ibsen 
 The Top Twelve Integration Patterns for Apache Camel Reference Card at DZone by Claus Ibsen 
 Essential Camel Components Reference Card at DZone by Christian Posta 
The Apache Camel Components Poster (PDF,PDF w/ crops and bleed,JPG image,Printed)by Gliesian LLC.(October, 2013)   

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-08-18 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.
Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP
Improved stability when testing withcamel-test-blueprint component.
 Netty HTTPnow removes headerFilterStrategy option after resolvingit
Fixed POJO aggregating when the parameter type was referring to a type that was class annotated.
FixedMyBatisto keep the message body as-is when calling stored procedures, if the procedure returns data as OUT parameters.
Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.
Fixed Advice-With to work with transacted routes defined in XML DSL
Fixed Advice-With to work with Content Based Router when adding outputs to the when clauses.
 Fixed Advice-With to honor autoStartup option. 
FixedOnCompletion to route the completedExchangeeven if it was marked to stop / failed due exception / handled by error handler etc.

...
New Examples 

camel-example-splunkbox-osgi 
 camel-example-servlet-rest-blueprint 
camel-example-servlet-rest-tomcat
camel-example-spark-rest-tomcat
camel-example-box-osgisplunk 

 New  
...
 New Tooling
API changes

 Removed duplicate getter getMessageHistory onManagedCamelContextMBean  
 Added org.apache.camel.spi.SynchronizationRouteAware 
AddedbeforeRoute and afterRoute methods to UnitOfWork.

...

 Polling Consumerallows to configure initial queue size and whether to block when full when 

[CONF] Apache Camel ServletListener Component

2014-08-17 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


ServletListener Component   






...



 div








class
confluenceTableSmall


 









 Option 
 Type 
 Description 


 propertyPlaceholder.XXX 
  
 To configure property placeholders in Camel. You should prefix the option with propertyPlaceholder., for example to configure the location, use propertyPlaceholder.location as name. You can configure all the options from the Properties component. 


 jmx.XXX 
  
 To configure JMX. You should prefix the option with jmx., for example to disable JMX, use jmx.disabled as name. You can configure all the options from org.apache.camel.spi.ManagementAgent. As well the options mentioned on the JMX page. 


 name 
  String  
 To 

[CONF] Apache Camel Metrics Component

2014-08-17 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Metrics Component   






...
Themetrics:component allows to collect various metrics directly from Camel routes. Supported metric types arecounter,histogram, meterandtimer.Metricsprovides simple way to measure behaviour of application. Configurable reportingbackendis enabling different integration options for collecting and visualizing statistics. The component also provides aMetricsRoutePolicyFactory which allows to expose route statistics using codehale metrics, see bottom of page for details.
...
Each metric has type and name. Supported types are counter, histogram,meterand timer. Metric name is simple string. If metric type is not provided then type meter is used by default.
...




Name
Default
Description


useJmx
true
Whether to report the fine grained statistics to JMX by using the com.codahale.metrics.JmxReporter


jmxDomain
org.apache.camel.metrics
The JMX domain name


prettyPrint
false
Whether to use pretty print when outputting statistics in json format


metricsRegistry

Allow to use a shared com.codahale.metrics.MetricRegistry. If none is provided then Camel will create a shared instance used by the this CamelContext.




...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  
  

[CONF] Apache Camel Metrics Component

2014-08-17 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Metrics Component   






...
Themetrics:component allows to collect various metrics directly from Camel routes. Supported metric types arecounter,histogram, meterandtimer.Metricsprovides simple way to measure behaviour of application. Configurable reportingbackendis enabling different integration options for collecting and visualizing statistics. The component also provides aMetricsRoutePolicyFactory which allows to expose route statistics using codehale metrics, see bottom of page for details.
...
Each metric has type and name. Supported types are counter, histogram,meterand timer. Metric name is simple string. If metric type is not provided then type meter is used by default.
...




Name
Default
Description


useJmx
truefalse
Whether to report fine grained statistics to JMX by using the com.codahale.metrics.JmxReporter.  Notice that if JMX is enabled on CamelContext then a MetricsRegistryService mbean is enlisted under the services type in the JMX tree. That mbean has a single operation to output the statistics using json. Setting useJmx to true is only needed if you want fine grained mbeans per statistics type.


jmxDomain
org.apache.camel.metrics
The JMX domain name


prettyPrint
false
Whether to use pretty print when outputting statistics in json format


metricsRegistry

Allow to use a shared com.codahale.metrics.MetricRegistry. If none is provided then Camel will create a shared instance used by the this CamelContext.




...




[CONF] Apache Camel Camel 2.14.0 Release

2014-08-17 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...
New Languages 

XMLTokenizer

New Examples 

 camel-example-splunk 
 camel-example-servlet-rest-blueprint 
 camel-example-servlet-rest-tomcat 
 camel-example-spark-rest-tomcat 
 camel-example-box-osgi 

New Tutorials 
New Tooling
API changes
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-08-16 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-16 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Advanced configuration of CamelContext using Spring

2014-08-15 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Advanced configuration of CamelContext using Spring   






...




 Type 
 Number of beans 
 Description 


 InterceptStrategy 
 0..n 
 To use your own Intercept that intercepts every processing steps in all routes in the CamelContext. For instance you can use this to do an AOP like performance timer interceptor. 


 LifecycleStrategy 
 0..n 
  Camel 2.1: To use 3rd party lifecycle strategies. By default Camel uses a JMX aware that does JMX instrumentation. 


 EventNotifier 
 0..n 
  Camel 2.2: To use 3rd part event notifiers. 


RoutePolicyFactory
0..n
Camel 2.14: To use a 3rd party route policy factory to create a route policy for every route.




 Camel will log at INFO level if it pickup and uses a custom bean using org.apache.camel.spring.CamelContextFactoryBean as name.
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-08-15 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel RoutePolicy

2014-08-15 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


RoutePolicy   






...
You configure the route policy as follows from Java DSL, using the routePolicy method:



 Code Block




 
 RoutePolicy myPolicy = new MyRoutePolicy();
  from(seda:foo).routePolicy(myPolicy).to(mock:result);
 



In Spring XML its a bit different as follows using the routePolicyRef attribute:



 Code Block









xml


 




 
 bean id=myPolicy class=com.mycompany.MyRoutePolicy/

   route routePolicyRef=myPolicy
   from uri=seda:foo/
   to uri=mock:result/
   /route
 



...
In the example below, the route testRoute has a startPolicy and throttlePolicy applied concurrently. Both policies are applied as necessary on the route.



 Code Block







  

[CONF] Apache Camel File2

2014-08-14 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


File2   






...



 div








class
confluenceTableSmall


 









 Name 
 Default Value 
 Description 


  initialDelay  
  1000  
 Milliseconds before polling the file/directory starts. 


  delay  
  500  
 Milliseconds before the next poll of the file/directory. 


  useFixedDelay  
  
 Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. In Camel 2.7.x or older the default value is false. From Camel 2.8 onwards the default value is true. 


  

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-12 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

 Removed duplicate getter getMessageHistory onManagedCamelContextMBean  
 Added org.apache.camel.spi.SynchronizationRouteAware 
AddedbeforeRoute and afterRoute methods to UnitOfWork.
 Added a new method toorg.apache.camel.component.jms.QueueBrowseStrategy to support JMS selectors 

Known Issues
Dependency Upgrades
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel OnCompletion

2014-08-12 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


OnCompletion   






...

scope: global and/or per route (route scope override all global scope)
 multiple global scope 
triggered either always, only if completed with success, or only if failed
 onWhen predicate to only trigger in certain situations
 Camel 2.14: mode: to define whether to run either before or after route consumer writes response back to callee (if its InOut) 
 Camel 2.14: whether to run async or sync (use a thread pool or not) 

 FromCamel 2.14 onwards the onCompletion has been modified to support running the completion task in either synchronous or asynchronous mode (using a thread pool) and also whether to run before or after the route consumer is done. The reason is to give more flexibility. For example to specify to run synchronous and before the route consumer is done, which allows to modify the exchange before the consumer writes back any response to the callee. You can use this to for example add customer headers, or send to a log to log the response message, etc. 



 Info








title
Changes from Camel 2.14 onwards


 




  The onCompletion has changed defaults and behavior from Camel 2.14 onwards. It now runs 

 Runs synchronously without any thread pool 
  In Camel 2.13 the defaults were 

 Runs asynchronous using a thread pool 
 




  

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-12 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
 REST DSL integrated with Swagger to expose the service as swagger apis.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).
 JDBCnow supports outputClass for SelectList type.

[CONF] Apache Camel Swagger

2014-08-11 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Swagger   






...



 div








class
confluenceTableSmall


 









 Option 
 Type 
 Description 


cors
Boolean
Whether to enable CORS. Notice this only enables CORS for the api browser, and not the actual access to the REST services. Is default false. Instead of using this option is recommended to use the CorsFilte, see further below.


swagger.version
String
Swagger spec version. Is default 1.2.


base.path 
String
Required: To setup the base path where the REST services is available



[CONF] Apache Camel Swagger

2014-08-11 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Swagger   






...
To use this you need to configure theorg.apache.camel.component.swagger.RestSwaggerApiDeclarationServletin theWEB-INF/web.xmlfile as shown below:



 Wiki Markup




 
{snippet:id=e1|lang=xml|url="">  !-- to setup Camel Swagger api servlet --
  servlet
servlet-nameApiDeclarationServlet/servlet-name
servlet-classorg.apache.camel.component.swagger.RestSwaggerApiDeclarationServlet/servlet-class
init-param
  param-namebase.path/param-name
  param-valuehttp://localhost:8080/rest/param-value
/init-param
init-param
  param-nameapi.path/param-name
  param-valuehttp://localhost:8080/api-docs/param-value
/init-param
init-param
  param-nameapi.version/param-name
  param-value1.2.3/param-value
/init-param
init-param
  param-nameapi.title/param-name
  param-valueUser Services/param-value
/init-param
init-param
  param-nameapi.description/param-name
  param-valueCamel Rest Example with Swagger that provides an User REST service/param-value
/init-param
load-on-startup2/load-on-startup
  /servlet

  !-- swagger api declaration --
  servlet-mapping
servlet-nameApiDeclarationServlet/servlet-name
url-pattern/api-docs/*/url-pattern
  /servlet-mapping
 



Options
Theorg.apache.camel.component.swagger.RestSwaggerApiDeclarationServletsupports the following options which can be configured as context-param in the web.xml file.
...
To use CORS adds the following filter org.apache.camel.component.swagger.RestSwaggerCorsFilter to your web.xml.



 Wiki Markup




 
{snippet:id=e2|lang=xml|url="">  !-- enable CORS filter so people can use swagger ui to browse and test the apis --
  filter
filter-nameRestSwaggerCorsFilter/filter-name
filter-classorg.apache.camel.component.swagger.RestSwaggerCorsFilter/filter-class
  /filter


  filter-mapping
filter-nameRestSwaggerCorsFilter/filter-name
url-pattern/api-docs/*/url-pattern
url-pattern/rest/*/url-pattern
  /filter-mapping
 



The CorsFilter sets the following headers for all requests
...


[CONF] Apache Camel Camel 2.14.0 Release

2014-08-11 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...



 div








style
padding-right:20px;float:left;margin-left:-20px;


 




   






 div








style
min-height:200px


 








New and Noteworthy
Welcome to the 2.14.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST 

[CONF] Apache Camel Swagger

2014-08-10 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Swagger   






...



 div








class
confluenceTableSmall


 









 Option 
 Type 
 Description 


swagger.version
String
Swagger spec version. Is default 1.2.


base.path 
String
Required: To setup the base path where the API is available


api.version
String
The version of the api. Defaults to Is default 0.0.0.


api.path
String

[CONF] Apache Camel Swagger

2014-08-10 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Swagger   






...



 div








class
confluenceTableSmall


 









 Option 
 Type 
 Description 


cors
Boolean
Whether to enable CORS. Is default false.


swagger.version
String
Swagger spec version. Is default 1.2.


base.path 
String
Required: To setup the base path where the API REST services is available


api.version
String
 

[CONF] Apache Camel Rest DSL

2014-08-08 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...




Option
Default
Description


component

The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if aorg.apache.camel.spi.RestConsumerFactoryis registered in the registry. If either one is found, then that is being used.


scheme
http
The scheme to use for exposing the REST service. Usually http or https is supported


hostname

The hostname to use for exposing the REST service.


port

The port number to use for exposing the REST service.


contextPath

Sets a leading context-path the REST services will be using. This can be used when using components such as SERVLET where the deployed web application is deployed using a context-path.


restHostNameResolver
localHostName
If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using. The resolver supports localHostName or localIp.


bindingMode
off
Whether binding is in use. See further above for more 

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-07 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.
 camel-scala upgraded from Scala 2.10.x to 2.11.x
The optionuseSsl has been removed fromcamel-twitter as ssl is always enabled now, enforced by twitter
FixedRestlet to return error code 405 (instead of 404 if a http method is not allowed
 Routes starting fromJMSwill now shutdown the consumer (MessageListenerContainer) quicker when CamelContext is being stopped. (assuming theacceptMessagesWhileStopping hasn't been set to true). This can also help a cleaner shutdown as otherwise some JMS clients may attempt re-connect/failover during shutdown which isn't desired anyway as we are shutting down. If you want the routes to keep accepting messages during shutdown of Camel, then setacceptMessagesWhileStopping=true. 

Important changes to consider when upgrading
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Rest DSL

2014-08-06 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...



 Tip








title
Configuring route options


 




 In the embedded route you can configure the route settings such as routeId, autoStartup and various other options you can set on routes today. .get().route().routeId(myRestRoute).autoStartup(false).transform().constant(Hello World); 



 Managing Rest services 
Each of the rest service becomes a Camel route, so in the first example we have 2 x get and 1 x post REST service, which each become a Camel route. This makes itthe same from Camel to manage and run these services - as they are just Camel routes. This means any tooling and API today that deals with Camel routes, also work with the REST services.
This means you can use JMX to stop/start routes, and also get the JMX metrics about the routes, such as number of message processed, and their performance statistics.
 There is also a Rest Registry JMX MBean that contains a registry of all REST services which has been defined. 
Binding to POJOs using
The Rest DSL supports automatic binding json/xml contents to/from POJOs using CamelsData Format. By default the binding mode is off, meaning there is no automatic binding happening for incoming and outgoing messages.
...




Option
Default
Description


component

[CONF] Apache Camel Rest DSL

2014-08-06 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...



 Code Block








language
java


 




 protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
rest(/say/hello)
.get(/hello).to(direct:hello);
rest(/say/bye) .get(/bye).consumes(application/json).to(direct:bye)
.post(/bye).to(mock:update);

from(direct:hello)
.transform().constant(Hello World);
from(direct:bye)
.transform().constant(Bye World);
}
};
} 



...
This defines a REST service with the following url mappings:




Base Path
Uri template
Verb
Consumes


/say
/hello
get
all


/say
/bye
get
application/json
   

[CONF] Apache Camel JDBC

2014-08-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


JDBC   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{readSize}} | {{0}} | The default maximum number of rows that can be read by a polling query. The default value is 0. |
| {{statement.xxx}} | {{null}} | *Camel 2.1:* Sets additional options on the {{java.sql.Statement}} that is used behind the scenes to execute the queries. For instance, {{statement.maxRows=10}}. For detailed documentation, see the [{{java.sql.Statement}} javadoc|http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html] documentation. |
| {{useJDBC4ColumnNameAndLabelSemantics}} | {{true}} | *Camel 2.2:* Sets whether to use JDBC 4/3 column label/name semantics. You can use this option to turn it {{false}} in case you have issues with your JDBC driver to select data. This only applies when using {{SQL SELECT}} using aliases (e.g. {{SQL SELECT id as identifier, name as given_name from persons}}). |
| {{resetAutoCommit}} | {{true}} | *Camel 2.9:* Camel will set the autoCommit on the JDBC connection to be false, commit the change after executed the statement and reset the autoCommit flag of the connection at the end, if the resetAutoCommit is true. If the JDBC connection doesn't support to reset the autoCommit flag, you can set the resetAutoCommit flag to be false, and Camel will not try to reset the autoCommit flag.|
| {{allowNamedParameters}} | {{true}} | *Camel 2.12:* Whether to allow using named parameters in the queries. |
| {{prepareStatementStrategy}} | | *Camel 2.12:* Allows to plugin to use a custom {{org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy}} to control preparation of the query and prepared statement. |
| {{useHeadersAsParameters}} | {{false}} | *Camel 2.12:* Set this option to {{true}} to use the {{prepareStatementStrategy}} with named parameters. This allows to define queries with named placeholders, and use headers with the dynamic values for the query placeholders. |
| {{outputType}} | {{SelectList}} | *Camel 2.12.1:* Make the output of the producer to SelectList as List of Map, or SelectOne as single Java object in the following way:
a) If the query has only single column, then that JDBC Column object is returned. (such as SELECT COUNT( * ) FROM PROJECT will return a Long object.
b) If the query has more than one column, then it will return a Map of that result.
c) If the outputClass is set, then it will convert the query result into an Java bean object by calling all the setters that match the column names. It will assume your class has a default constructor to create instance with. From *Camel 2.14* onwards then SelectList is also supported. |
d) If the query resulted in more than one rows, it throws an non-unique result exception.
*Camel 2.14.0:* New {{StreamList}} output type value that streams the result of the query using an {{IteratorMapString, Object}}, it can be used along with the [Splitter] EIP. |
| {{outputClass}} | {{null}} | *Camel 2.12.1:* Specify the full package and class name to use as conversion when outputType=SelectOne. From *Camel 2.14* onwards then SelectList is also supported. |
| {{beanRowMapper}} | | *Camel 2.12.1:* To use a custom {{org.apache.camel.component.jdbc.BeanRowMapper}} when using {{outputClass}}. The default implementation will lower case the row names and skip underscores, and dashes. For 

[CONF] Apache Camel JDBC

2014-08-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


JDBC   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{readSize}} | {{0}} | The default maximum number of rows that can be read by a polling query. The default value is 0. |
| {{statement.xxx}} | {{null}} | *Camel 2.1:* Sets additional options on the {{java.sql.Statement}} that is used behind the scenes to execute the queries. For instance, {{statement.maxRows=10}}. For detailed documentation, see the [{{java.sql.Statement}} javadoc|http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html] documentation. |
| {{useJDBC4ColumnNameAndLabelSemantics}} | {{true}} | *Camel 2.2:* Sets whether to use JDBC 4/3 column label/name semantics. You can use this option to turn it {{false}} in case you have issues with your JDBC driver to select data. This only applies when using {{SQL SELECT}} using aliases (e.g. {{SQL SELECT id as identifier, name as given_name from persons}}). |
| {{resetAutoCommit}} | {{true}} | *Camel 2.9:* Camel will set the autoCommit on the JDBC connection to be false, commit the change after executed the statement and reset the autoCommit flag of the connection at the end, if the resetAutoCommit is true. If the JDBC connection doesn't support to reset the autoCommit flag, you can set the resetAutoCommit flag to be false, and Camel will not try to reset the autoCommit flag.|
| {{allowNamedParameters}} | {{true}} | *Camel 2.12:* Whether to allow using named parameters in the queries. |
| {{prepareStatementStrategy}} | | *Camel 2.12:* Allows to plugin to use a custom {{org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy}} to control preparation of the query and prepared statement. |
| {{useHeadersAsParameters}} | {{false}} | *Camel 2.12:* Set this option to {{true}} to use the {{prepareStatementStrategy}} with named parameters. This allows to define queries with named placeholders, and use headers with the dynamic values for the query placeholders. |
| {{outputType}} | {{SelectList}} | *Camel 2.12.1:* Make the output of the producer to SelectList as List of Map, or SelectOne as single Java object in the following way:
a) If the query has only single column, then that JDBC Column object is returned. (such as SELECT COUNT( * ) FROM PROJECT will return a Long object.
b) If the query has more than one column, then it will return a Map of that result.
c) If the outputClass is set, then it will convert the query result into an Java bean object by calling all the setters that match the column names. It will assume your class has a default constructor to create instance with. From *Camel 2.14* onwards then SelectList is also supported. |
d) If the query resulted in more than one rows, it throws an non-unique result exception.
*Camel 2.14.0:* New {{StreamList}} output type value that streams the result of the query using an {{IteratorMapString, Object}}, it can be used along with the [Splitter] EIP. |
| {{outputClass}} | {{null}} | *Camel 2.12.1:* Specify the full package and class name to use as conversion when outputType=SelectOne. From *Camel 2.14* onwards then SelectList is also supported. |
| {{beanRowMapper}} | | *Camel 2.12.1:* To use a custom {{org.apache.camel.component.jdbc.BeanRowMapper}} when using {{outputClass}}. The default implementation will lower case the row names and skip underscores, and dashes. For 

[CONF] Apache Camel Camel 2.14.0 Release

2014-08-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

camel-ahc-ws
camel-atmosphere-websocket
camel-box
 camel-dropbox 
camel-metrics
 camel-netty4 
 camel-openshift 
 camel-gora 
 camel-rest (in camel-core)
 camel-spark-rest 

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-31 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.
 camel-scala upgraded from Scala 2.10.x to 2.11.x
The optionuseSsl has been removed fromcamel-twitter as ssl is always enabled now, enforced by twitter
 FixedRestlet to return error code 405 (instead of 4040 if a http method is not allowed 

Important changes to consider when upgrading
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel How do I import rests from other XML files

2014-07-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen created a page:
 


How do I import rests from other XML files   





How do I import rests from other XML files
 Available as of Camel 2.14 
When defining rests in Camel using Xml Configuration you may want to define some rests in other XML files. For example you may have many rest services and it may help to maintain the application if some of the rests are in separate XML files. You may also want to store common and reusable rests in other XML files, which you can simply import when needed.
This is possible to define rests outside camelContext/ which you do in a new restContext/ tag.

Icon

 Notice: When you use restContext then they are separated, and cannot reuse existing onException, intercept, dataFormats and similar cross cutting functionality defined in the camelContext. In other words the restContext is currently isolated. This may change in Camel 3.x.


For example we could have a file named myCoolRests.xml which contains a rest (can have more) as shown:


  restContext id=myCoolRest xmlns=http://camel.apache.org/schema/spring
rest uri=/say/hello
  get
to uri=direct:hello/
  /get
/rest
  /restContext



Then in your XML file which contains the CamelContext you can use Spring to import the myCoolRests.xml file. And then inside camelContext/ you can refer to the restContext/using the restContextRef by its id as shown below:


  camelContext xmlns=http://camel.apache.org/schema/spring


restContextRef ref=myCoolRest/


rest uri=/say/bye
  get consumes=application/json
to uri=direct:bye/
  /get
  post
to uri=mock:update/
  /post
/rest

route
  from uri=direct:hello/
  transform
constantHello World/constant
  /transform
/route
route
  from uri=direct:bye/
  transform
constantBye World/constant
  /transform
/route
  /camelContext





Also notice that you can mix and match, having rests inside CamelContext and also externalized in RestContext.
You can have as many restContextRef/ as you like.

Reusable rests
Icon

The rests defined in restContext/ can be reused by multiple camelContext/. However its only the definition which is reused. At runtime each CamelContext will create its own instance of the rest based on the definition.




[CONF] Apache Camel Rest DSL

2014-07-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...
See Also
 DSL 
 Rest 
 Spark-rest 
 How do I import rests from other XML files 






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

camel-ahc-ws
camel-atmosphere-websocket
camel-box
 camel-dropbox 
 camel-metrics 
 camel-openshift 
 camel-gora 
 camel-rest (in camel-core)
 camel-spark-rest 

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

 Removed duplicate getter getMessageHistory onManagedCamelContextMBean  
 Added org.apache.camel.spi.SynchronizationRouteAware 
AddedbeforeRoute and afterRoute methods to UnitOfWork.
 Added a new method toorg.apache.camel.component.jms.QueueBrowseStrategy to support JMS selectors 

Known Issues
Dependency Upgrades
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Rest DSL

2014-07-29 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...
The following Camel components supports the Rest DSL. See the bottom of this page for how to integrate a component with the Rest DSL.

 camel-netty-http 
 camel-jetty 
 camel-restlet 
 camel-servlet 
 camel-spark-rest 

Rest DSL with Java
To use the Rest DSL in Java then just do as with regular Camel routes by extending theRouteBuilder and define the routes in theconfigure method.
...
Any Apache Camel component can integrate with the Rest DSL if they can be used as a REST service (eg as a REST consumer in Camel lingo). To integrate with the Rest DSL, then the component should implement theorg.apache.camel.spi.RestConsumerFactory. The Rest DSL will then invoke thecreateConsumer method when it setup the Camel routes from the defined DSL. The component should then implement logic to create a Camel consumer that exposes the REST services based on the given parameters, such as path, verb, and other options. For example see the source code for camel-restlet, camel-spark-rest.

See Also
 DSL 
 Rest 
 Restlet 
 Spark-rest 






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-27 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.
Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL.
Andcamel-jackson can now easily be configured to unmarshal to aListpojoor ListMapinstead of either a single pojo orMap type.
 IntroducedSynchronizationRouteAware allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode). 

Fixed Issues

Timer consumer is now scheduled after CamelContext 

[CONF] Apache Camel OnCompletion

2014-07-27 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


OnCompletion   






...
Camel has this concept of a Unit of Work that encompass the Exchange. The unit of work among others supports synchronization callbacks that are invoked when the Exchange is complete. The callback API is defined in org.apache.camel.spi.Synchronization. From Camel 2.14 onwards we have an extended synchronization org.apache.camel.spi.SynchronizationRouteAwarethat have callbacks for route events. 



 Tip








title
Getting the UnitOfWork


 




 You can get hold of the org.apache.camel.spi.UnitOfWork from org.apache.camel.Exchange with the method getUnitOfWork(). 



...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Rest DSL

2014-07-27 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...
The Rest DSL is a facade that builds Restendpoints as consumers for Camel routes. The actual REST transport is leveraged by using Camel REST components such asRestlet,Spark-rest, and others that has native REST integration.
 Components supporting Rest DSL 
 The following Camel components supports the Rest DSL. See the bottom of this page for how to integrate a component with the Rest DSL. 

 camel-jetty 
 camel-restlet 
 camel-spark-rest 

 Rest DSL with Java
To use the Rest DSL in Java then just do as with regular Camel routes by extending theRouteBuilder and define the routes in theconfigure method.
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Jetty

2014-07-26 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Jetty   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{sessionSupport}} | {{false}} | Specifies whether to enable the session manager on the server side of Jetty. |
| {{httpClient.XXX}} | {{null}} | Configuration of Jetty's [HttpClient|http://wiki.eclipse.org/Jetty/Tutorial/HttpClient]. For example, setting {{httpClient.idleTimeout=3}} sets the idle timeout to 30 seconds. And {{httpClient.timeout=3}} sets the request timeout to 30 seconds, in case you want to timeout sooner if you have long running request/response calls. |
| {{httpClient}} | {{null}} | To use a shared {{org.eclipse.jetty.client.HttpClient}} for all producers created by this endpoint. This option should only be used in special circumstances. |
| {{httpClientMinThreads}} | {{null}} | *Camel 2.11:* *Producer only*: To set a value for minimum number of threads in {{HttpClient}} thread pool. This setting override any setting configured on component level. Notice that both a min and max size must be configured. If not set it default to min 8 threads used in Jettys thread pool. |
| {{httpClientMaxThreads}} | {{null}} | *Camel 2.11:* *Producer only*: To set a value for maximum number of threads in {{HttpClient}} thread pool. This setting override any setting configured on component level. Notice that both a min and max size must be configured. If not set it default to max 254 threads used in Jettys thread pool. |
| {{httpBindingRef}} | {{null}} | Reference to an {{org.apache.camel.component.http.HttpBinding}} in the [Registry]. {{HttpBinding}} can be used to customize how a response should be written for the consumer. |
| {{jettyHttpBindingRef}} | {{null}} | *Camel 2.6.0+:* Reference to an {{org.apache.camel.component.jetty.JettyHttpBinding}} in the [Registry]. {{JettyHttpBinding}} can be used to customize how a response should be written for the producer. |
| {{matchOnUriPrefix}} | {{false}} | Whether or not the {{CamelServlet}} should try to find a target consumer by matching the URI prefix if no exact match is found. See here [How do I let Jetty match wildcards]. |
| {{handlers}} | {{null}} | Specifies a comma-delimited set of {{org.mortbay.jetty.Handler}} instances in your [Registry] (such as your Spring {{ApplicationContext}}). These handlers are added to the Jetty servlet context (for example, to add security). *Important:* You can not use different handlers with different Jetty endpoints using the same port number. The handlers is associated to the port number. If you need different handlers, then use different port numbers. |
| {{chunked}} | {{true}} | *Camel 2.2:* If this option is false Jetty servlet will disable the HTTP streaming and set the content-length header on the response |
| {{enableJmx}} | {{false}} | *Camel 2.3:* If this option is true, Jetty JMX support will be enabled for this endpoint. See [Jetty JMX support|#Jetty JMX support] for more details. |
| {{disableStreamCache}} | {{false}} | *Camel 2.3:* Determines whether or not the raw input stream from Jetty is cached or not (Camel will read the stream into a in memory/overflow to file, [Stream caching]) cache. By default Camel will cache the Jetty input stream to support reading it multiple times to ensure it Camel can retrieve all data from the stream. However you can set this option to 

[CONF] Apache Camel Rest DSL

2014-07-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...
This means you can use JMX to stop/start routes, and also get the JMX metrics about the routes, such as number of message processed, and their performance statistics.
 Example - camel-example-spark-rest-tomcat 
 We provide an example that uses the REST DSL with the Spark Rest component that can be deployed in web containers such as Apache Tomcat. This example definesa single REST service which offers a GET operation that accepts 3 different types: plain text, json, and xml. 
...
 Binding to POJOs using 
 The Rest DSL supports automatic binding json/xml contents to/from POJOs using CamelsData Format. By default the binding mode is off, meaning there is no automatic binding happening for incoming and outgoing messages. 
 You may want to use binding if you develop POJOs that maps to your REST services request and response types. This allows you as a developer to work with the POJOs in Java code. 
 The binding modes are: 




Binding Mode
Description


off
Binding is turned off. This is the default option.


auto
Binding is enabled and Camel is relaxed and support json, xml or both if the needed data formats are included in the classpath. Notice that if for example camel-jaxb is not on the classpath, then XML binding is not enabled.


json
Binding to/from json is enabled, and requires a json capabile data format on the classpath. By default Camel will use json-jackson as the data format.


xml
Binding to/from xml is enabled, and requires camel-jaxb on the classpath.


json_xml
Biding to/from json and xml is enabled and requires both data formats to be on the classpath.


   

[CONF] Apache Camel Rest DSL

2014-07-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...




Option
Default
Description


component

The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if aorg.apache.camel.spi.RestConsumerFactoryis registered in the registry. If either one is found, then that is being used.


scheme
http
The scheme to use for exposing the REST service. Usually http or https is supported


hostname
0.0.0.0
The hostname to use for exposing the REST service.


port

The port number to use for exposing the REST service.


bindingMode
off
Whether binding is in use. See further above for more details.


jsonDataFormat

Name of specific json data format to use. By default json-jackson will be used. Notice: Currently Jackson is what we recommend and are using for testing.


xmlDataFormat

Name of specific XML data format to use. By default jaxb will be used. Notice: Currently only jaxb is supported.

 

[CONF] Apache Camel Rest DSL

2014-07-25 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...




Option
Default
Description


component

The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if aorg.apache.camel.spi.RestConsumerFactoryis registered in the registry. If either one is found, then that is being used.


scheme
http
The scheme to use for exposing the REST service. Usually http or https is supported


hostname
0.0.0.0
The hostname to use for exposing the REST service.


port

The port number to use for exposing the REST service.


bindingMode
off
Whether binding is in use. See further above for more details.


jsonDataFormat

Name of specific json data format to use. By default json-jackson will be used. Notice: Currently Jackson is what we recommend and are using for testing.


xmlDataFormat

Name of specific XML data format to use. By default jaxb will be used. Notice: Currently only jaxb is supported.

 

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-24 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Atomikos 3.9.2 to 3.9.3
Commons-codec 1.8 to 1.9
CXF 2.7.11 to 3.0.0
Deltaspike 0.7 to 1.0.0
Dozer 5.4.0 to 5.5.1
EhCache 2.8.1 to 2.8.3
Groovy 2.2.2 to 2.3.3
Guava 16.0.1 to 17.0
 Hapi 2.1 to 2.2 
 Hazelcast 3.0.3 to 3.2.4 
JRuby 1.7.10 to 1.7.12
MongoDB-Java-Driver 2.11.4 to 2.12.0
RabbitMQ AMQ Client 3.2.2 to 3.3.0
RxJava 0.17.5 to 0.19.4
Scala 2.10.3 to 2.10.4
Snmp4j 2.2.5 to 2.3.0
SSHD 0.10.1 to 0.11.0
spring-redis 1.1.0 to 1.3.0

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-24 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Atomikos 3.9.2 to 3.9.3
Commons-codec 1.8 to 1.9
CXF 2.7.11 to 3.0.1
Deltaspike 0.7 to 1.0.1
Dozer 5.4.0 to 5.5.1
EhCache 2.8.1 to 2.8.3
Groovy 2.2.2 to 2.3.4
Guava 16.0.1 to 17.0
Hapi 2.1 to 2.2
Hazelcast 3.0.3 to 3.2.4
JRuby 1.7.10 to 1.7.12
MongoDB-Java-Driver 2.11.4 to 2.12.0
RabbitMQ AMQ Client 3.2.2 to 3.3.0
RxJava 0.17.5 to 0.19.4
Scala 2.10.3 to 2.1011.42 
Snmp4j 2.2.5 to 2.3.0
SSHD 0.10.1 to 0.11.0
spring-redis 1.1.0 to 1.3.0

...

 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.
 camel-scala upgraded from Scala 2.10.x to 2.11.x 

Important changes to consider when upgrading
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Restlet

2014-07-24 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Restlet   






...




 Name 
 Default Value 
 Description 


  headerFilterStrategy=#refName  
 An instance of RestletHeaderFilterStrategy  
 Use the # notation (headerFilterStrategy=#refName) to reference a header filter strategy in the Camel Registry. The strategy will be plugged into the restlet binding if it is HeaderFilterStrategyAware. 


  restletBinding=#refName  
 An instance of DefaultRestletBinding  
 The bean ID of a RestletBinding object in the Camel Registry. 


  restletMethod  
  GET  
 On a producer endpoint, specifies the request method to use. On a consumer endpoint, specifies that the endpoint consumes only restletMethod requests. The string value is converted to org.restlet.data.Method by the Method.valueOf(String) method. 


  restletMethods  
  None  
  Consumer only Specify one or more methods separated by commas (e.g. restletMethods=post,put) to be serviced by a restlet consumer endpoint. If both restletMethod and restletMethods options are specified, the restletMethod setting is ignored. 


  restletRealm=#refName  
  null  
 The bean ID of the Realm Map in the Camel Registry. 


  restletUriPatterns=#refName  
  None  
  Consumer only Specify one ore more URI templates to be serviced by a restlet consumer endpoint, using the # notation to reference a ListString in the Camel Registry. If a URI pattern has been defined in the endpoint URI, both the URI pattern defined in the endpoint and the 

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-24 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Atomikos 3.9.2 to 3.9.3
Commons-codec 1.8 to 1.9
CXF 2.7.11 to 3.0.1
Deltaspike 0.7 to 1.0.1
Dozer 5.4.0 to 5.5.1
EhCache 2.8.1 to 2.8.3
Groovy 2.2.2 to 2.3.4
Guava 16.0.1 to 17.0
Hapi 2.1 to 2.2
Hazelcast 3.0.3 to 3.2.4
JRuby 1.7.10 to 1.7.12
MongoDB-Java-Driver 2.11.4 to 2.12.0
RabbitMQ AMQ Client 3.2.2 to 3.3.0
Restlet 2.17 to 2.2.1
RxJava 0.17.5 to 0.19.4
Scala 2.10.3 to 2.11.2
Snmp4j 2.2.5 to 2.3.0
SSHD 0.10.1 to 0.11.0
spring-redis 1.1.0 to 1.3.0
 Twitter4j 3.0.5 x to 4.0.1 

Internal changes

Changed ...

...

 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.
 camel-scala upgraded from Scala 2.10.x to 2.11.x
 The optionuseSsl has been removed fromcamel-twitter as ssl is always enabled now, enforced by twitter 

Important changes to consider when upgrading
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel JSON

2014-07-22 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


JSON   






...



 Code Block








language
xml


 




 from uri=direct:inPojoAgeView/
  marshal
json library=Jackson unmarshalTypeName=org.apache.camel.component.jackson.TestPojoView jsonView=org.apache.camel.component.jackson.Views$Age/
  /marshal
 



 Setting serialization include option for Jackson marshal 
 Available as of Camel 2.13.3/2.14 
 If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, then you need to set either an annotation on the pojo, 



 Code Block




 
@JsonInclude(Include.NON_NULL)
public class MyPojo {
   ...
}
 



 But this requires you to include that annotation in your pojo source code. You can also configure the Camel JsonDataFormat to set the include option, as shown below: 



 Code Block




 
JacksonDataFormat format = new 

[CONF] Apache Camel JSON

2014-07-22 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


JSON   






...



 Code Block




 dataFormats
  json id=json library=Jackson include=NOT_NULL/
/dataFormats 



 Unmarshalling from json to POJO with dynamic class name 
 Available as of Camel 2.14 
 If you use jackson to unmarshal json to POJO, then you can now specify a header in the message that indicate which class name to unmarshal to.  The header has key CamelJacksonUnmarshalTypeif that header is present in the message, then Jackson will use that as FQN for the POJO class to unmarshal the json payload as. Notice that behavior is enabled out of the box from Camel 2.14 onwards. 
 For JMS end users there is the JMSType header from the JMS spec that indicates that also. To enable support for JMSType you would need to turn that on, on the jackson data format as shown: 



 Code Block




 
JacksonDataFormat format = new JacksonDataFormat();
format.setAllowJmsType(true);
 



 Or from XML DSL you configure this as 



 Code Block




 
dataFormats
  json id=json library=Jackson allowJmsType=true/
/dataFormats
 



Dependencies for XStream
To use JSON in your camel routes you need to add the a dependency on camel-xstream which implements this data format.
...




  

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-22 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.
 Unmarshal json to pojo usingcamel-jackson now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded. 
 Also allow to configurecamel-jackson to skip null values, by setting includes toNOT_NULL. 

Fixed Issues

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak 

[CONF] Apache Camel Rest

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen created a page:
 


Rest   





Rest Component
 Available as of Camel 2.14 
The rest component allows to define REST endpoints using the Rest DSL and plugin to other Camel components as the REST transport.

URI format


  rest://verb:path?[options]



 URI Options 



  Name  
  Default Value  
  Description  


  verb  
  
  get, post, put, patch, delete, head, trace, connect, or options.  


  path  
  
  the content path which support REST syntax. See further below for examples.  


  consumes  
  
  accept type such as: 'text/xml', or 'application/json'. By default we accept all kinds of types.  



Path syntax
The path option is defined using a REST syntax where you define the REST context path using support for parameters.
The following is a Camel route using a fixed path


  from(rest:get:hello)
.transform().constant(Bye World);


And the following route uses a parameter which is mapped to a Camel header with the key me.


  from(rest:get:hello/{me})
.transform().simple(Bye ${header.me});


 More examples 
There is a camel-example-spark-rest-tomcat example in the Apache Camel distribution, that demonstrates how to use the Rest DSL with theSpark-rest as transportthat can be deployed on Apache Tomcat, or similar web containers. 
 

[CONF] Apache Camel Spark-rest

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Spark-rest   






...
The Spark-rest component allows to define REST endpoints using the Spark REST Java library which has a nice using the Rest DSL.



 Info




Spark Java requires Java 8 runtime.



...



 Code Block




   from(spark-rest:get:/hello/*/to/*)
.transform().simple(Bye big ${header.splat[1]} from ${header.splat[0]}); 



 SparkRouteBuilder 
 If you use Java code, then you can use the classorg.apache.camel.component.sparkrest.SparkRouteBuilder to define routes using a Spark DSL, as shown below 
  
 Rest DSL 
 Apache Camel provides a new Rest DSL that allow to define the REST services in a nice REST style. 
 For example we can define a REST hello service in Java DSL as shown below: 



 Code Block




   return new SparkRouteBuilderRouteBuilder() {
  @Override
  public void configure() throws Exception {
getrest(/hello/:{me}).get()
.route().transform().simple(Bye ${header.me});
}
}; 



 When using the SparkRouteBuilder, then you can define Camel routes using the REST verbs, such as get, post, put, delete etc. 
  
 And the same example in XML DSL would be 


[CONF] Apache Camel DSL

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


DSL   






...

 Java DSL - A Java based DSL using the fluent builder style.
 Spring XML - A XML based DSL in Spring XML files
 Blueprint XML - A XML based DSL in OSGi Blueprint XML files
 Rest DSL - A DSL to define REST services using a REST style in either Java or XML. 
 Groovy DSL - A Groovy based DSL using Groovy programming language
 Scala DSL - A Scala based DSL using Scala programming language
 Annotation DSL - Use annotations in Java beans.
 Kotlin DSL - Work in progress - Currently developed outside ASF, but will we included later in Camel when Kotlin and the DSL is ready.

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Rest DSL

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...
To define the REST services we use therest method, where we can setup the path, which is /hello/{me}. Where me refers the a wildcard that is mapped to Camel message header with the same key. Notice how we can refer to this header in the embedded Camel routes where we do message transformation.And because we used embedded routes, we need to define this using .route(), and to denote the end of the route, we use .endRest() to go back to the Rest DSL, where we can then add the 2nd, and 3rd get service. 

  
  
...
See Also

 DSL 
 Rest 
 Restlet 
 Spark-rest 







 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Rest DSL

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen created a page:
 


Rest DSL   





Rest DSL
 Available as of Camel 2.14 
Apache Camel offers a REST styled DSL which can be used with Java or XML. The intention is to allow end users to define REST services using a REST style with verbs such as get, post, delete etc.
How it works
The Rest DSL is a facade that builds Restendpoints as consumers for Camel routes. The actual REST transport is leveraged by using Camel REST components such asRestlet,Spark-rest, and others that has native REST integration.
Rest DSL with Java
To use the Rest DSL in Java then just do as with regular Camel routes by extending theRouteBuilder and define the routes in theconfigure method.
A simple REST service can be define as follows, where we use rest() to define the services as shown below:


protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
rest(/say/hello)
.get().to(direct:hello);
rest(/say/bye)
.get().consumes(application/json).to(direct:bye)
.post().to(mock:update);

from(direct:hello)
.transform().constant(Hello World);
from(direct:bye)
.transform().constant(Bye World);
}
};
}



This defines a REST service with the following url mappings:




Uri template
Verb
Consumes


/say/hello
get
all


/say/bye
get
application/json


/say/bye
post
all




Notice that in the REST service we route directly to a Camel endpoint using the to(). This is 

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
 REST DSL to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL. 
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes.

...

camel-ahc-ws
camel-atmosphere-websocket
camel-box
 camel-openshift 
 camel-gora 
 camel-rest (in camel-core) 
 camel-spark-rest 

New Camel Maven Archetypes 
...







[CONF] Apache Camel Rest DSL

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...
Notice that in the REST service we route directly to a Camel endpoint using the to(). This is because the Rest DSL has a short-hand for routing directly to an endpoint using to(). An alternative is to embed a Camel route directly using route() - there is such an example further below.
 Rest DSL with XML 
 The REST DSL supports the XML DSL also using either Spring or Blueprint. The example above can be define in XML as shown below: 



 Code Block




 
  camelContext xmlns=http://camel.apache.org/schema/spring
rest uri=/say/hello
  get
to uri=direct:hello/
  /get
/rest
rest uri=/say/bye
  get consumes=application/json
to uri=direct:bye/
  /get
  post
to uri=mock:update/
  /post
/rest
route
  from uri=direct:hello/
  transform
constantHello World/constant
  /transform
/route
route
  from uri=direct:bye/
  transform
constantBye World/constant
  /transform
/route
  /camelContext
 




 Using path prefixes 
 The REST DSL allows to define path prefixes to make the DSL a bit more DRY. For example to define a customer path, we can set the prefix in rest(/customer) and then provide the past postfix in the verbs, as shown below: 



 Code Block




 
  rest(/customers/)
  .get(/{id}).to(direct:customerDetail)
  .get(/{id}/orders).to(direct:customerOrders)
  .post(/neworder).to(direct:customerNewOrder);


 



  
 And using XML DSL it becomes: 



 Code Block




 
rest 

[CONF] Apache Camel Rest DSL

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...



 Tip




 The REST DSL will take care of duplicate path separators when using path prefixes. In the example above the rest path prefix ends with a slash ( / ) and the verb starts with a slash ( / ). But Apache Camel will take care of this and remove the duplicated slash. 




  
camel-example-spark-rest-tomcat
...




Option
Default
Description


component

The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.


scheme
http
The scheme to use for exposing the REST service. Usually http or https is supported


hostname
0.0.0.0
The hostname to use for exposing the REST service.


port

The port number to use for exposing the REST service.


property
 

[CONF] Apache Camel Spark-rest

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Spark-rest   






...
The Spark-rest component allows to define REST endpoints using the Spark REST Java library using the Rest DSL.



 Info




Spark Java requires Java 8 runtime.



...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Rest DSL

2014-07-21 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Rest DSL   






...




Option
Default
Description


component

The Camel Rest component to use for the REST transport, such as restlet, spark-rest. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if aorg.apache.camel.spi.RestConsumerFactoryis registered in the registry. If either one is found, then that is being used.


scheme
http
The scheme to use for exposing the REST service. Usually http or https is supported


hostname
0.0.0.0
The hostname to use for exposing the REST service.


port

The port number to use for exposing the REST service.


propertycomponentProperty

Allows to configure as many additional properties. This is used to configure component specific options such as forRestlet/Spark-Restetc.


endpointProperty

Allows to configure as many additional properties. This is used to configure endpoint specific options for Restlet/Spark-Restetc.


consumerProperty

Allows to configure as many additional properties. This is used to configure consumer specific options for Restlet/Spark-Restetc.
  

[CONF] Apache Camel Manual

2014-07-20 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Manual   






...
You can download a specific version here




 Manual Versions 


Camel Manual 2.13.x (html)


  Camel Manual 2.12.x (html) 


  Camel Manual 2.11.x (pdf) 


  Camel Manual 2.10.x (pdf) 


  Camel Manual 2.9.x (pdf) 


  Camel Manual 2.8.x (pdf) 


  Camel Manual 2.7.x (pdf) 


  Camel Manual 2.6.0 (pdf) 


  Camel Manual 2.5.0 (pdf) 


  Camel Manual 2.4.0 (pdf) 


  Camel Manual 2.3.0 (pdf) 


  Camel Manual 2.2.0 (pdf) 


  Camel Manual 2.0.0 (pdf) 


  Camel Manual 1.6.4 (pdf) 


  Camel Manual 1.6.3 (pdf) 
   

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-20 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs
Support to set the variable map from message header in Velocity, Freemarker, StringTemplate.
 Added HazelcastInstance option toHazelcast component. 
 Producers from static EIPs such as to is is now also enlisted in JMX when Camel is starting routes. 

Fixed Issues

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.
Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP
Improved stability when testing withcamel-test-blueprint component.
 Netty HTTPnow removes headerFilterStrategy option after resolvingit
Fixed POJO aggregating when the parameter type was 

[CONF] Apache Camel Articles

2014-07-17 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Articles   






...

 Wanna try our Apache Camel developer tools for Enterprise Integration Patterns? by James Strachan 
 Using NetBeans 7.0 to create a new Apache Camel project shows how to start from scratch in NetBeans to setup a Apache Camel project (tutorial style with screenshots)
 Using NetBeans 7.0 to create a new Apache Camel project without Spring dependency shows how to start from scratch in NetBeans to setup a Apache Camel project (tutorial style with screenshots) without any Spring dependency
 Integrating Apache Camel with JBoss ESB by Edgar Ankiewsky 
 Combining ApacheCamel+BSF to make JBoss ESB polyglot by Edgard Ankiewsky Silva 
 Implementing Fuji integration scenario using Camel SE by Louis Polycarpou 
 An IRC alerter written using Apache Camel and Java how to easily integrate IRC with Camel to monitor and do alerts.
 Things to consider when selecting between Apache Camel and Apache Servicemix by Ashwin Karpe 
 A jira notification system for irc using Camel by Guillaume Nodet 
 Camel + Smooks from the official Smooks blog about Smooks integration Camel out of the box.
 Getting Started with Apache Camel and prepare for Apache ServiceMix deployment by Magnus K Karlsson 
 Smooks OSGI: Camel, UN/EDIFACT, ServiceMix shows how to use Smooks with Camel running in the Apache ServieMix OSGi container.
 ServiceMix bridge to IBM WebSphereMQ how to bridge ActiveMQ and IBM WebSphereMQ with Camel running inside Apache ServiceMix 4.x (OSGi based).
 Camel integration with Oracle WebLogic JMS by Lowry Curry 
 Camel integration with WebSphere MQ by Lowry Curry 
 jBPM5/Drools Apache Camel integration a blog entry talking about JBMP5/Drools integration with Apache Camel.
 Use remote EJB in Camel routes by Jean-Baptiste Onofr 
 Use Camel, CXF and Karaf to implement batches by Jean-Baptiste Onofr explains how to control a Camel route from another route and a JAX-RS server using CXF, package into an OSGi bundle ready to run in Apache Karaf.
 Karaf Tutorial Part 5 - Running Apache Camel integrations in OSGi by Christian Schneider 
 Unit testing OSGi Blueprint with Apache Camel made easier - Blog post how Camel Testing with OSGi blueprint became much much easier, than having to resort to use pax exam.
 Communication between two remote Camel routes using Apache Karaf Cellar by Jean-Baptiste Onofr 
 How to Start/Stop Camel Routes on an ActiveMQ Slave - by Jason Sherman 
 Article about testing WMB - This article shows a hands-on approach of how you can test your IBM WebSphere Message Broker solutions in a 

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-14 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

camel-ahc-ws
camel-atmosphere-websocket
camel-barcode 
 camel-box
 camel-openshift 
 camel-gora 
 camel-spark-rest 

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-14 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Java 1.6 no longer supported.
 Unit testing with Spring 3.x now requires using camel-test-spring3, as camel-test-spring is for Spring 4.x   

Getting the Distributions
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Camel 2.14.0 Release

2014-07-14 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

camel-ahc-ws
camel-atmosphere-websocket
camel-barcodecamel-box
 camel-openshift 
 camel-gora 
 camel-spark-rest 

...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Bindy

2014-07-06 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Bindy   






...




 Parameter name 
 type 
 Info 


 pos 
 int 
 mandatory - digit number starting from 1 to ... 


 pattern 
 string 
 optional - default value =  - will be used to format Decimal, Date, ... 


 length 
 int 
 optional - represents the length of the field for fixed length format 


 precision 
 int 
 optional - represents the precision to be used when the Decimal number will be formatted/parsed 


 pattern 
 string 
 optional - default value =  - is used by the Java Formater formatter (SimpleDateFormat by example) to format/validate data. If using pattern, then setting locale on bindy data format is recommended. Either set to a known locale such as us or use default to use platform default locale. Notice that default requires Camel 2.14/2.13.3/2.125.  


 position 
 int 
 optional - must be used when the position of the field in the CSV generated must be different compare to pos 


 required 
 boolean 
 optional - default value = false 


 

[CONF] Apache Camel Multicast

2014-07-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Multicast   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{strategyRef}} | | Refers to an [AggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html] to be used to assemble the replies from the multicasts, into a single outgoing message from the [Multicast]. By default Camel will use the last reply as the outgoing message.  From *Camel 2.12* onwards you can also use a POJO as the {{AggregationStrategy}}, see the [Aggregate|Aggregator2] page for more details. |
| {{strategyMethodName}} | | *Camel 2.12:* This option can be used to explicit declare the method name to use, when using POJOs as the {{AggregationStrategy}}. See the [Aggregate|Aggregator2] page for more details. |
| {{strategyMethodAllowNull}} | {{false}} | *Camel 2.12:* If this option is {{false}} then the aggregate method is not used if there was no data to enrich. If this option is {{true}} then {{null}} values is used as the {{oldExchange}} (when no data to enrich), when using POJOs as the {{AggregationStrategy}}. See the [Aggregate|Aggregator2] page for more details. |
| {{parallelProcessing}} | {{false}} | If enablesenabled then sending messages to the multicasts occurs concurrently. Note the caller thread will still wait until all messages has been fully processed, before it continues. Its only the sending and processing the replies from the multicasts which happens concurrently. |
| {{parallelAggregate}} | {{false}} | *Camel 2.14:* If enabled then the {{aggregate}} method on {{AggregationStrategy}} can be called concurrently. Notice that this would require the implementation of {{AggregationStrategy}} to be implemented as thread-safe. By default this is {{false}} meaning that Camel synchronizes the call to the {{aggregate}} method. Though in some use-cases this can be used to archive higher performance when the {{AggregationStrategy}} is implemented as thread-safe. |
| {{executorServiceRef}} | | Refers to a custom [Thread Pool|Threading Model] to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well. |
| {{stopOnException}} | {{false}} | *Camel 2.2:* Whether or not to stop continue processing immediately when an exception occurred. If disable, then Camel will send the message to all multicasts regardless if one of them failed. You can deal with exceptions in the [AggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html] class where you have full control how to handle that. |
| {{streaming}} | {{false}} | If enabled then Camel will process replies out-of-order, eg in the order they come back. If disabled, Camel will process replies in the same order as multicasted. |
| {{timeout}} | | *Camel 2.5:* Sets a total timeout specified in millis. If the [Multicast] hasn't been able to send and process all replies within the given timeframe, then the timeout triggers and the [Multicast] breaks out and continues. Notice if you provide a [TimeoutAwareAggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/TimeoutAwareAggregationStrategy.html] then the 

[CONF] Apache Camel Splitter

2014-07-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Splitter   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{strategyRef}} | | Refers to an [AggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html] to be used to assemble the replies from the sub-messages, into a single outgoing message from the [Splitter]. See the defaults described below in _[What the Splitter returns|#WhattheSplitterreturns]_. From *Camel 2.12* onwards you can also use a POJO as the {{AggregationStrategy}}, see the [Aggregate|Aggregator2] page for more details. |
| {{strategyMethodName}} | | *Camel 2.12:* This option can be used to explicit declare the method name to use, when using POJOs as the {{AggregationStrategy}}. See the [Aggregate|Aggregator2] page for more details. |
| {{strategyMethodAllowNull}} | {{false}} | *Camel 2.12:* If this option is {{false}} then the aggregate method is not used for the very first splitted message. If this option is {{true}} then {{null}} values is used as the {{oldExchange}} (for the very first message splitted), when using POJOs as the {{AggregationStrategy}}. See the [Aggregate|Aggregator2] page for more details. |
| {{parallelProcessing}} | {{false}} | If enabled then processing the sub-messages occurs concurrently. Note the caller thread will still wait until all sub-messages has been fully processed, before it continues. |
| {{parallelAggregate}} | {{false}} | *Camel 2.14:* If enabled then the {{aggregate}} method on {{AggregationStrategy}} can be called concurrently. Notice that this would require the implementation of {{AggregationStrategy}} to be implemented as thread-safe. By default this is {{false}} meaning that Camel synchronizes the call to the {{aggregate}} method. Though in some use-cases this can be used to archive higher performance when the {{AggregationStrategy}} is implemented as thread-safe. |
| {{executorServiceRef}} | | Refers to a custom [Thread Pool|Threading Model] to be used for parallel processing. Notice if you set this option, then parallel processing is automatically implied, and you do not have to enable that option as well. |
| {{stopOnException}} | {{false}} | *Camel 2.2:* Whether or not to stop continue processing immediately when an exception occurred. If disable, then Camel continue splitting and process the sub-messages regardless if one of them failed. You can deal with exceptions in the [AggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html] class where you have full control how to handle that. |
| {{streaming}} | {{false}} | If enabled then Camel will split in a streaming fashion, which means it will split the input message in chunks. This reduces the memory overhead. For example if you split big messages its recommended to enable streaming. If streaming is enabled then the sub-message replies will be aggregated out-of-order, eg in the order they come back. If disabled, Camel will process sub-message replies in the same order as they where splitted. |
| {{timeout}} | | *Camel 2.5:* Sets a total timeout specified in millis. If the [Recipient List] hasn't been able to split and process all replies within the given timeframe, then the timeout triggers and the [Splitter] breaks 

[CONF] Apache Camel Recipient List

2014-07-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Recipient List   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{delimiter}} | {{,}} | Delimiter used if the [_expression_] returned multiple endpoints. *Camel 2.13* can be disabled using false |
| {{strategyRef}} | | An [AggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html] that will assemble the replies from recipients into a single outgoing message from the [Recipient List]. By default Camel will use the last reply as the outgoing message. From *Camel 2.12* onwards you can also use a POJO as the {{AggregationStrategy}}, see the [Aggregate|Aggregator2] page for more details. |
| {{strategyMethodName}} | | *Camel 2.12:* This option can be used to explicit declare the method name to use, when using POJOs as the {{AggregationStrategy}}. See the [Aggregate|Aggregator2] page for more details. |
| {{strategyMethodAllowNull}} | {{false}} | *Camel 2.12:* If this option is {{false}} then the aggregate method is not used if there was no data to enrich. If this option is {{true}} then {{null}} values is used as the {{oldExchange}} (when no data to enrich), when using POJOs as the {{AggregationStrategy}}. See the [Aggregate|Aggregator2] page for more details. |
| {{parallelProcessing}} | {{false}} | *Camel 2.2:* If enabled, messages are sent to the recipients concurrently. Note that the calling thread will still wait until all messages have been fully processed before it continues; it's the sending and processing of replies from recipients which happens in parallel. |
| {{parallelAggregate}} | {{false}} | *Camel 2.14:* If enabled then the {{aggregate}} method on {{AggregationStrategy}} can be called concurrently. Notice that this would require the implementation of {{AggregationStrategy}} to be implemented as thread-safe. By default this is {{false}} meaning that Camel synchronizes the call to the {{aggregate}} method. Though in some use-cases this can be used to archive higher performance when the {{AggregationStrategy}} is implemented as thread-safe. |
| {{executorServiceRef}} | | *Camel 2.2:* A custom [Thread Pool|Threading Model] to use for parallel processing. Note that enabling this option implies parallel processing, so you need not enable that option as well. |
| {{stopOnException}} | {{false}} | *Camel 2.2:* Whether to immediately stop processing when an exception occurs. If disabled, Camel will send the message to all recipients regardless of any individual failures. You can process exceptions in an [AggregationStrategy|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html] implementation, which supports full control of error handling. |
| {{ignoreInvalidEndpoints}} | {{false}} | *Camel 2.3:* Whether to ignore an endpoint URI that could not be resolved. If disabled, Camel will throw an exception identifying the invalid endpoint URI. |
| {{streaming}} | {{false}} | *Camel 2.5:* If enabled, Camel will process replies out-of-order - that is, in the order received in reply from each recipient. If disabled, Camel will process replies in the same order as specified by the [_expression_]. |
| {{timeout}} | | *Camel 2.5:* Specifies a processing timeout milliseconds. If the [Recipient List] 

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Support for running on Java 1.8 JVMs
Spring 4.x supported.
Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as _expression_.
Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic EIPs.
Added event notification for routes added and removed.
Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.
 Netty HTTPproducer now supports the CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server. 
 Polling Consumerallows to configure initial queue size and whether to block when full when using the defaultEventDrivenPollingConsumer which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered. 
 Added a generic callback to configure the APNS service builder. 
 AddedStreamList option to theJDBC component 
Allow to define Simple expressions for sql parameters of the SQL component.   
A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)
 Added optionparallelAggregate to Multicast, Splitter and Recipient ListEIPs 

Fixed Issues

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.
Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP
Improved stability when testing withcamel-test-blueprint component.
 Netty HTTPnow removes headerFilterStrategy option after resolvingit
Fixed POJO aggregating when the parameter type was referring to a type that was class annotated.
FixedMyBatisto keep the message body as-is when calling stored procedures, if the procedure returns data as OUT parameters.
Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.
  

[CONF] Apache Camel File2

2014-07-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


File2   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{initialDelay}} | {{1000}} | Milliseconds before polling the file/directory starts. |
| {{delay}} | {{500}} | Milliseconds before the next poll of the file/directory. |
| {{useFixedDelay}} | | Controls if fixed delay or fixed rate is used. See [ScheduledExecutorService|http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html] in JDK for details. In *Camel 2.7.x* or older the default value is {{false}}. From *Camel 2.8* onwards the default value is {{true}}. |
| {{runLoggingLevel}} | {{TRACE}} | *Camel 2.8:* The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. |
| {{recursive}} | {{false}} | If a directory, will look for files in all the sub-directories as well. |
| {{delete}} | {{false}} | If {{true}}, the file will be deleted *after* it is processed successfully. |
| {{noop}} | {{false}} | If {{true}}, the file is not moved or deleted in any way. This option is good for readonly data, or for [ETL] type requirements. If {{noop=true}}, Camel will set {{idempotent=true}} as well, to avoid consuming the same files over and over again. |
| {{preMove}} | {{null}} | [_expression_] (such as [File Language]) used to dynamically set the filename when moving it *before* processing. For example to move in-progress files into the {{order}} directory set this value to {{order}}. |
| {{move}} | {{.camel}} | [_expression_] (such as [File Language]) used to dynamically set the filename when moving it *after* processing. To move files into a {{.done}} subdirectory just enter {{.done}}. |
| {{moveFailed}} | {{null}} | [_expression_] (such as [File Language]) used to dynamically set a different target directory when moving files _in case of_ processing (configured via {{move}} defined above) failed. For example, to move files into a {{.error}} subdirectory use: {{.error}}. Note: When moving the files to the “fail” location Camel will *handle* the error and will not pick up the file again. |
| {{include}} | {{null}} | Is used to include files, if filename matches the regex pattern. |
| {{exclude}} | {{null}} | Is used to exclude files, if filename matches the regex pattern. |
| {{antInclude}} | {{null}} | *Camel 2.10:* Ant style filter inclusion, for example {{antInclude=\*}}{{{}*/*{}}}{{.txt}}. Multiple inclusions may be specified in comma-delimited format. See [below|#Filtering using ANT path matcher] for more details about ant path filters. |
| {{antExclude}} | {{null}} | *Camel 2.10:* Ant style filter exclusion. If both {{antInclude}} and {{antExclude}} are used, {{antExclude}} takes precedence over {{antInclude}}. Multiple exclusions may be specified in comma-delimited format. See [below|#Filtering using ANT path matcher] for more details about ant path filters. |
| {{antFilterCaseSensitive}} | {{true}} | *Camel 2.11:* Ant style filter which is case sensitive or not. |
| {{idempotent}} | {{false}} | Option to use the [Idempotent Consumer] EIP pattern to let Camel skip already processed files. Will by default use a memory based LRUCache that holds 1000 entries. If {{noop=true}} then idempotent will be enabled as well to avoid consuming the same files over and over again. |
| {{idempotentKey}} | 

[CONF] Apache Camel Articles

2014-07-04 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Articles   






...
Archived Webinars and Screencasts

 Integration using Apache Camel and Groovy (June 2014) by Claus Ibsen, presenting Camel, Groovy, and hawtio at gr8conf 2014. 
 Effective System Integrations with Apache Camel (March 2014) by Jakub Korab
 Getting started with Apache Camel video from BarcelonaJUG (January 2014) by Claus Ibsen
 Camel in the cloud demo from CamelOne 2013 - Video presentation from CamelOne 2013 demonstrating Camel in the cloud using Fuse Fabric and hawtio 
 Getting started with Apache Camel - Video presentation from Javagruppen meeting by Claus Ibsen (May 2013)
 Apache Camel Essential Components by Christian Posta (January 2013)
 Leverage Enterprise Integration Patterns with Apache Camel and Twitter by Bruno Borges (JavaOne 2012)
 Riding the Apache Camel into the cloud James Strachan (QCon 2012)
 Migrating akka-camel module to Akka 2.x by Peter Gabryanczy (ScalaDays 2012)
 Confident Data Transfers with Apache Camel Security by Dominik Schadow (JavaOne 2012)
 CamelOne 2012 Videos - All the videos from the CamelOne 2012 conference (May 2012)
 JavaOne 2012 - Leverage Enterprise Integration Patterns with Apache Camel and Twitter by Bruno Borges (JavaOne 2012)
 Using Apache Camel and Java EE in an OSGi World by Jeff Genender and Johan Edstrom (JavaOne 2011)
 Er Apache Camel riktig valg for deg? Lytt til erfarne Camel spotters by Rune Peter Bjrnstad, and Bjrn Nordlund(September 2011)
 In the brain of James Strachan, riding the Camel - by James Strachan (August 2011)
 CamelOne 2011 Video presentations CamelOne 2011 conference (May 2011)
 What Riding the Camel can make integration easier for you by Claus Ibsen (September 2011)
 Paris JUG 2011 - Integration with Apache Camel and ESB by Charles Moulliard 
 JEEConf 2011 - What riding the Camel can do to make integration easier for you by Claus Ibsen (May 2011).
 Belgium JUG 2011 - Integration with Apache ServiceMix and Camel by Charles Moulliard 
 Devoxx 2011 - Introduction to Apache ActiveMQ, ServiceMix, Camel and CXF by Charles Moulliard and Gert Vanthienen 
 Claus Ibsen's Devoxx 2010 talk is all about Apache Camel
 Introduction to messaging with ActiveMQ at redev 2008 conference by Bruce Snyder 
 James Strachan's Devoxx 2009 talk is mostly about Camel and ActiveMQ
ScreenCast: an introduction to Apache Camel and the use of Enterprise Integration Patterns in Medium 

[CONF] Apache Camel Spark-rest

2014-07-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Spark-rest   






 Spark-rest Component 
 Available as of Camel 2.14 
The Spark-rest component allows to define REST endpoints using the Spark REST Java library which has a nice DSL.
...



 Code Block









xml


 




 	dependency
	groupIdorg.apache.camel/groupId
	artifactIdcamel-sparkspark-rest/artifactId
	version${camel-version}/version
	/dependency
 



 URI format 



 Code Block




   spark-rest://verb:path?[options]
 



 URI Options 



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| verb |  | get, post, put, patch, delete, head, trace, connect, or options. |
| path | | the content path which support Spark syntax. See further below for examples. |
| accept | */* | accept type such as: 'text/xml', or 'application/json'. By default we 

[CONF] Apache Camel Camel 2.14.0 Release

2014-07-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Camel 2.14.0 Release   






...

Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.
 Netty HTTP now returns HTTP status 404 if resource not found instead of 503.
Fixed the MongoDBreadPreferenceoption which used to cause an IllegalArgumentExceptionto be thrown.
Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.
Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP
Improved stability when testing withcamel-test-blueprint component.
 Netty HTTPnow removes headerFilterStrategy option after resolvingit
Fixed POJO aggregating when the parameter type was referring to a type that was class annotated.
FixedMyBatisto keep the message body as-is when calling stored procedures, if the procedure returns data as OUT parameters.
Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.
 Fixed Advice-With to work with transacted routes defined in XML DSL 
 Fixed Advice-With to work with Content Based Router when adding outputs to the when clauses. 

New Enterprise Integration Patterns 
...

camel-ahc-ws
camel-atmosphere-websocket
 camel-box 
 camel-openshift 
 camel-gora 
 camel-sparkspark-rest 

New Camel Maven Archetypes 
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Spark-rest

2014-07-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Spark-rest   






...



 Code Block




   spark-rest://verb:path?[options]
 



 URI Options 



 Wiki Markup




 
{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| verb |  | get, post, put, patch, delete, head, trace, connect, or options. |
| path | | the content path which support Spark syntax. See further below for examples. |
| accept | */* | accept type such as: 'text/xml', or 'application/json'. By default we accept all kinds of types. |
{div}
 



Path using Spark syntax
The path option is defined using a Spark REST syntax where you define the REST context path using support for parameters and splat. See more details at the Spark Java Route documentation.
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel File2

2014-07-01 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


File2   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{initialDelay}} | {{1000}} | Milliseconds before polling the file/directory starts. |
| {{delay}} | {{500}} | Milliseconds before the next poll of the file/directory. |
| {{useFixedDelay}} | | Controls if fixed delay or fixed rate is used. See [ScheduledExecutorService|http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html] in JDK for details. In *Camel 2.7.x* or older the default value is {{false}}. From *Camel 2.8* onwards the default value is {{true}}. |
| {{runLoggingLevel}} | {{TRACE}} | *Camel 2.8:* The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. |
| {{recursive}} | {{false}} | If a directory, will look for files in all the sub-directories as well. |
| {{delete}} | {{false}} | If {{true}}, the file will be deleted *after* it is processed successfully. |
| {{noop}} | {{false}} | If {{true}}, the file is not moved or deleted in any way. This option is good for readonly data, or for [ETL] type requirements. If {{noop=true}}, Camel will set {{idempotent=true}} as well, to avoid consuming the same files over and over again. |
| {{preMove}} | {{null}} | [_expression_] (such as [File Language]) used to dynamically set the filename when moving it *before* processing. For example to move in-progress files into the {{order}} directory set this value to {{order}}. |
| {{move}} | {{.camel}} | [_expression_] (such as [File Language]) used to dynamically set the filename when moving it *after* processing. To move files into a {{.done}} subdirectory just enter {{.done}}. |
| {{moveFailed}} | {{null}} | [_expression_] (such as [File Language]) used to dynamically set a different target directory when moving files _in case of_ processing (configured via {{move}} defined above) failed. For example, to move files into a {{.error}} subdirectory use: {{.error}}. Note: When moving the files to the “fail” location Camel will *handle* the error and will not pick up the file again. |
| {{include}} | {{null}} | Is used to include files, if filename matches the regex pattern. |
| {{exclude}} | {{null}} | Is used to exclude files, if filename matches the regex pattern. |
| {{antInclude}} | {{null}} | *Camel 2.10:* Ant style filter inclusion, for example {{antInclude=\*}}{{{}*/*{}}}{{.txt}}. Multiple inclusions may be specified in comma-delimited format. See [below|#Filtering using ANT path matcher] for more details about ant path filters. |
| {{antExclude}} | {{null}} | *Camel 2.10:* Ant style filter exclusion. If both {{antInclude}} and {{antExclude}} are used, {{antExclude}} takes precedence over {{antInclude}}. Multiple exclusions may be specified in comma-delimited format. See [below|#Filtering using ANT path matcher] for more details about ant path filters. |
| {{antFilterCaseSensitive}} | {{true}} | *Camel 2.11:* Ant style filter which is case sensitive or not. |
| {{idempotent}} | {{false}} | Option to use the [Idempotent Consumer] EIP pattern to let Camel skip already processed files. Will by default use a memory based LRUCache that holds 1000 entries. If {{noop=true}} then idempotent will be enabled as well to avoid consuming the same files over and over again. |
| {{idempotentKey}} | 

[CONF] Apache Camel Blueprint Testing

2014-06-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Blueprint Testing   






...
 Available as of Camel 2.10 



 Info




  camel-test-blueprint does only support testing one CamelContext. So if you have 2 or more CamelContexts in your blueprint XML files, then first found CamelContext is used during testing.  



 Testing is a crucial part of any development or integration work. Camel supports the definition of Blueprint routes, but given Blueprint is an OSGi specific technology, writing unit tests is quite difficult. This library leverages PojoSR which provides a service registry without using a fully compliant OSGi container. This allows defining real unit tests (as opposed to integration tests using Pax Exam. Please make sure all test jars in you class path are OSGi bundle. 



 Wiki Markup




 {snippet:lang=java|id=example|url=""> 



...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache Camel Spark

2014-06-30 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Spark   






...



 Wiki Markup




 {div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| verb |  | GETget, POSTpost, DELETEput, etcpatch, delete, head, trace, connect, or options. |
| path | | the content path which support Spark syntax. See further below for examples. |
| accept | */* | accept type such as: 'text/xml', or 'application/json'. By default we accept all kinds of types. |
{div} 



 Path using Spark syntax 
 The path option is defined using a Spark syntax where you define the REST context path using support for parameters and splat. See more details at the Spark Route documentation. 
 The following is a Camel route using a fixed path 



 Code Block




 
  from(spark:get:hello)
.transform().constant(Bye World);
 



 And the following route uses a parameter which is mapped to a Camel header with the key me. 



 Code Block




 
  from(spark:get:hello/:me)
.transform().simple(Bye ${header.me});
 



 Mapping to Camel Message 
 The Spark Request object is mapped to a Camel Message as aorg.apache.camel.component.spark.SparkMessage which has access to the raw Spark request using the getRequest method. By default the Spark body is mapped to Camel message body, and any HTTP headers / Spark parameters is mapped to Camel Message headers. There is special support for the Spark splat syntax, which is mapped to the Camel message header with key splat. 
 For example the 

[CONF] Apache Camel Bindy

2014-06-28 Thread Claus Ibsen (Confluence)














  


Claus Ibsen edited the page:
 


Bindy   






...




 Parameter name 
 type 
 Info 


 pos 
 int 
 mandatory - digit number starting from 1 to ... 


 pattern 
 string 
 optional - default value =  - will be used to format Decimal, Date, ... 


 length 
 int 
 optional - represents the length of the field for fixed length format 


 precision 
 int 
 optional - represents the precision to be used when the Decimal number will be formatted/parsed 


 pattern 
 string 
 optional - default value =  - is used by the Java Formater (SimpleDateFormat by example) to format/validate data 


 position 
 int 
 optional - must be used when the position of the field in the CSV generated must be different compare to pos 


 required 
 boolean 
 optional - default value = false 


 trim 
 boolean 
 optional - default value = 

  1   2   3   4   5   >