]
Kevin Conner closed JBESB-2268.
-------------------------------
Resolution: Won't Fix
Superseded by JBESB-2270
Actions that implement BeanConfiguredAction are instantiated for
every process() invocation
-------------------------------------------------------------------------------------------
Key: JBESB-2268
URL:
https://jira.jboss.org/jira/browse/JBESB-2268
Project: JBoss ESB
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: Configuration
Affects Versions: 4.4 CP1
Reporter: Morten Hattesen
Priority: Minor
Whereas actions that extend ActionPipelineProcessor are instantiated once per action, and
the process() method called on this instance, the lifecycle of actions that implement
BeanConfiguredAction is entirely different, which is NOT clear from documentation or
JavaDoc.
An action that implements BeanConfiguredAction is instantiated on every call to the
process() method, making it impossible to maintain state across invocations. This
effectively renders this way of configuring Actions useless for anything but the most
simple actions, since lazy-initialization is made impossible (unless static scope is
employed).
I see absolutely no argument for retaining the current instance-per-invocation lifecycle
at all.
I propose to change org.jboss.soa.esb.listeners.message.BeanConfigActionProcessor to
maintain a single processor instance variable on which the process method is invoked, in
the same way it is done by the
org.jboss.soa.esb.listeners.message.OverriddenActionPipelineProcessor (used when an action
implements ActionPipelineProcessor, which is the case on
AbstractActionPipelineProcessor).
Alternatively, it should be made absolutely clear in the ESB documentation, that actions
that implement BeanConfiguredAction have an instance-per-invocation lifecycle, which will
typically have serious performance-implications since no action-state can be maintained.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: