always terminate (either commit or rollback) created transaction to prevent active transactions leaking - fixes tests regression
fixing javadoc issues
adding missing TransactionController.newTask() method lost during TaskFactory refactoring
hiding TaskFactory from public API and moving it to impl. package
Associate ManagementContext, ServiceContext and Transaction with the TransactionController, that now works as a scope enforcer for those three (thus, operations contained in Service/ManagementContext and TransactionController can be performed only with the transactions created by the same transaction controller).
Fix bug in ServiceRegistryImpl.disable: the method was mistakenly marking registry's state as removed.
use only one transaction controller instance in our test suite
Refactoring removeService() & removeRegistry() from ServiceContext to ManagementContext.
Child services are automatically cleared when parent is gone thus user don't
need to deal with child services removal. On the other hand top level services
can be removed only by TransactionController owner who registered them.
adding security check for creating transaction controller
introducing TransactionController.owns(Transaction) method
TransactionController.validateTransaction() throws SecurityException instead of IllegalArgumentException
Fix ServiceName.toString, which was concatenating parent name multiple times.
Prevent multiple equal service transitions when more than a notification trigger a transition call.
Add new ManagementContextTestCase. Plus: add support to multiple registries at AbstractServiceTest and make TestService.toString user-friendly (for tracing failing tests purposes).
Make ServiceBuilder.intall throw DuplicateServiceException if there is already a service installed with same name/alias.
fixing synchronization issues
Use delegation for accessing the transaction task factory