- // trackers
- new ServiceTracker<HttpService, HttpService>(bc, HttpService.class, new PrepareHttpStc()).open();
-
- initTransactionManager();
-
- // JCR
- RepositoryServiceFactory repositoryServiceFactory = new RepositoryServiceFactory();
- shutdownHooks.add(() -> repositoryServiceFactory.shutdown());
- bc.registerService(ManagedServiceFactory.class, repositoryServiceFactory,
- LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_REPOS_FACTORY_PID));
-
- NodeRepositoryFactory repositoryFactory = new NodeRepositoryFactory();
- bc.registerService(RepositoryFactory.class, repositoryFactory, null);
-
- // RepositoryService repositoryService = new RepositoryService();
- // shutdownHooks.add(() -> repositoryService.shutdown());
- // bc.registerService(LangUtils.names(ManagedService.class,
- // MetaTypeProvider.class), repositoryService,
- // LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_REPO_PID));
-
- // Security
- NodeUserAdmin userAdmin = new NodeUserAdmin();
- shutdownHooks.add(() -> userAdmin.destroy());
- Dictionary<String, Object> props = userAdmin.currentState();
- props.put(Constants.SERVICE_PID, NodeConstants.NODE_USER_ADMIN_PID);
- bc.registerService(UserAdmin.class, userAdmin, props);
-
- // UI
- bc.registerService(ApplicationConfiguration.class, new MaintenanceUi(),
- LangUtils.init(PROPERTY_CONTEXT_NAME, "system"));
- bc.registerService(ApplicationConfiguration.class, new UserUi(), LangUtils.init(PROPERTY_CONTEXT_NAME, "user"));
- }
- // private void initUserAdmin() {
- // userAdmin = new NodeUserAdmin();
- // // register
- // Dictionary<String, Object> props = userAdmin.currentState();
- // props.put(Constants.SERVICE_PID, NodeConstants.NODE_USER_ADMIN_PID);
- // // TODO use ManagedService
- // bc.registerService(UserAdmin.class, userAdmin, props);
- // }
-
- private void initTransactionManager() {
- // TODO manage it in a managed service, as startup could be long
- ServiceReference<TransactionManager> existingTm = bc.getServiceReference(TransactionManager.class);
- if (existingTm != null) {
- if (log.isDebugEnabled())
- log.debug("Using provided transaction manager " + existingTm);
+ // JTA
+ String tmType = KernelUtils.getFrameworkProp(NodeConstants.TRANSACTION_MANAGER,
+ NodeConstants.TRANSACTION_MANAGER_SIMPLE);
+ if (NodeConstants.TRANSACTION_MANAGER_SIMPLE.equals(tmType)) {
+ initSimpleTransactionManager();
+ } else if (NodeConstants.TRANSACTION_MANAGER_BITRONIX.equals(tmType)) {
+// initBitronixTransactionManager();
+ throw new UnsupportedOperationException(
+ "Bitronix is not supported anymore, but could be again if there is enough interest.");
+ } else {
+ throw new IllegalArgumentException("Usupported transaction manager type " + tmType);