[
https://issues.jboss.org/browse/JBTM-974?page=com.atlassian.jira.plugin.s...
]
Paul Robinson updated JBTM-974:
-------------------------------
Summary: Allow single lifecycle invocation for multiple ServiceRequest invocations
(was: Allow many ServiceRequest methods to have a single set of Lifecycle methods)
Allow single lifecycle invocation for multiple ServiceRequest
invocations
-------------------------------------------------------------------------
Key: JBTM-974
URL:
https://issues.jboss.org/browse/JBTM-974
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: TxBridge
Reporter: Paul Robinson
Assignee: Paul Robinson
Fix For: 5.0.0.M2
By setting the 'single' attribute on a Lifecycle Handler Annotation (such as
@Prepare or @Compensate) identifies whether more than one callback can be registered for
the lifecycle method in response to multiple invocations of the ServiceRequest method. If
it is true then the lifecycle method will be called once to the ServiceRequest method. If
it is false then the lifecycle method will be called once in response to each (non-read
only) call to the ServiceRequest method. The default is 'false'.
Annotation:
{code}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Compensate
{
public boolean single() default false;
}
{code}
Example:
{code}
@ServiceRequest
public void addToBasket()
{
//Add another item to the basket.
}
@Compensate(single=true)
public void emptyBasket()
{
//Empty every item from the basket
}
{code}
In this example the @ServiceRequest may be invoked many times to add many items to the
basket. The @Compensate method is only needed to be invoked once as the basket can be
emptied in one operation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira