@Produce and @Consume injected on prototype beans needs a mechanism for
automatic stopping when no longer in use
----------------------------------------------------------------------------------------------------------------
Key: CAMEL-2650
URL: https://issues.apache.org/activemq/browse/CAMEL-2650
Project: Apache Camel
Issue Type: Improvement
Components: camel-spring
Affects Versions: 2.2.0
Reporter: Claus Ibsen
Fix For: Future
This only applies for prototype scoped POJOs which uses @Produce or @Consume to
inject a Camel Producer/Consumer.
As the prototype scoped POJO is short lived and there could potentially be
created many of those POJOs.
Then @Produce / @Consume will inject new instances of Producer / Consumer as
well.
And since there is no standard way of knowing when the POJO is no longer in
need, which is where we can to stop the Producer/Consumer.
For singleton scoped this is not a problem as CamelContext will keep track on
the created Producer/Consumer in its internal _servicesToClose_.
Which is then stopped when CamelContext stops.
For prototype we need a different strategy such as
- proxy it to use pooled producers/consumers which CamelContext manage the
lifecycle
- use a shared ProducerTemplate / ConsumerTemplate instead which CamelContext
manages the lifecycle
- other
- maybe some thread local tricks
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira