Replace assert instanceof checks by if ( instanceof) throws IllegalArgumentException statements. Also: make sure that MSCLogger is used for null parameter validation and check for null parameters on TransactionControllerContext subclasses.
At ServiceBuilderImpl: fix mistaken MSCLogger.SERVICE.methodParameter(...) statements, the correct is throw MSCLogger.SERVICE.methodParameter(...)
Remove needless casting (Transaction) transaction.
Add test to ServiceContext other methods and validations. Run it with both ParentServiceContext and ServiceContextImpl
Implement TransactionControllerContext.validateTransaction in terms of TransactionController.own
Make ServiceBuilder.install return ServiceController, an interface with methods for removal, restarting and retrying the service.
Move methods from ManagementContext interface to other classes/interfaces, such as ServiceContext, ServiceRegistry and ServiceContainer.
minimize count of TransactionXAResourceManager instances to minimum
reviewed and fixed transaction methods visibility
exposing transaction state to the public
Refactoring listener to support notification for multiple txn lifecycle events.
Temp commit (WIP)