LifecycleHandler classes can use the METHOD annotations @Recover and @RecoverComplete to perform recovery. @Recover's method should be called for each recovered object before allowing lifecycle processing to proceed for participants recovered from the log. The second method should be called once all recovered participants have completed, allowing the LifecycleHandler class to clear up records for transactions which were not resolved by recovery processing.
The target method for an @Recover annotation should have void type and take a single argument which should be type-compatible with the type of any saved object.
The target method for an @RecoverComplete annotation should have void type and take no arguments.
The recovery mechanism which needs to reload saved objects and presents them back to the service class during recovery processing as a precursor to actually running lifecycle callbacks for recovered transactions. This is done through the Control interface: