Here is a tricky question.
I have a route that is defined with concurrent consumers. Currently it
creates a single instance of a data format and then uses it in the route
several times:
public void configureARoute() {
final ObjectMapper mapper = mapperBuilderMethod();
final JacksonDataFormat recfmt = new JacksonDataFormat(mapper,
Record.class);
from("activemq:queue:src?concurrentConsumers=3)
.unmarshal(recfmt)
// [do things here]
.marshal(recfmt)
.to("activemq:queue:dest);
}
The problem is I am not so sure the object mapper is totally thread safe so
I would like to create an instance of the mapper per concurrent consumer
but NOT per marshal / unmarshal call (because the actual object is used a
lot and I would have 5 of them per consumer). So what I am looking for is a
way to build an object per route concurrent consumer and use that object
throughout the route. Any ideas?
Thanks in advance.
*Robert Simmons Jr. MSc. - Lead Java Architect @ EA*
*Author of: Hardcore Java (2003) and Maintainable Java (2012)*
*LinkedIn: **http://www.linkedin.com/pub/robert-simmons/40/852/a39
<http://www.linkedin.com/pub/robert-simmons/40/852/a39>*