+ private void initBitronixTransactionManager() {
+ Configuration tmConf = TransactionManagerServices.getConfiguration();
+ tmConf.setServerId(getFrameworkProp(FRAMEWORK_UUID));
+
+ File tmBaseDir = new File(getFrameworkProp(TRANSACTIONS_HOME,
+ getOsgiInstancePath("transactions")));
+ File tmDir1 = new File(tmBaseDir, "btm1");
+ tmDir1.mkdirs();
+ tmConf.setLogPart1Filename(new File(tmDir1, tmDir1.getName() + ".tlog")
+ .getAbsolutePath());
+ File tmDir2 = new File(tmBaseDir, "btm2");
+ tmDir2.mkdirs();
+ tmConf.setLogPart2Filename(new File(tmDir2, tmDir2.getName() + ".tlog")
+ .getAbsolutePath());
+ transactionManager = getTransactionManager();
+ transactionSynchronizationRegistry = getTransactionSynchronizationRegistry();
+ }
+
+ private void publish() {
+ // Listen to service publication (also ours)
+ bc.addServiceListener(Kernel.this);
+
+ // Logging
+ loggerReg = bc.registerService(ArgeoLogger.class, logger, null);
+ // Transaction
+ tmReg = bc.registerService(TransactionManager.class,
+ transactionManager, null);
+ utReg = bc.registerService(UserTransaction.class, transactionManager,
+ null);
+ tsrReg = bc.registerService(TransactionSynchronizationRegistry.class,
+ transactionSynchronizationRegistry, null);
+ // User admin
+ userAdminReg = bc.registerService(UserAdmin.class, userAdmin,
+ userAdmin.currentState());
+ // JCR
+ Hashtable<String, String> regProps = new Hashtable<String, String>();
+ regProps.put(JCR_REPOSITORY_ALIAS, ALIAS_NODE);
+ repositoryReg = bc.registerService(Repository.class, repository,
+ regProps);
+ repositoryFactoryReg = bc.registerService(RepositoryFactory.class,
+ repositoryFactory, null);
+ }
+