package org.argeo.cms.internal.kernel;
-import static bitronix.tm.TransactionManagerServices.getTransactionManager;
-import static bitronix.tm.TransactionManagerServices.getTransactionSynchronizationRegistry;
import static java.util.Locale.ENGLISH;
-import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.file.spi.FileSystemProvider;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
-import java.util.UUID;
import javax.jcr.RepositoryFactory;
import javax.transaction.TransactionManager;
-import javax.transaction.TransactionSynchronizationRegistry;
import javax.transaction.UserTransaction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.argeo.cms.CmsException;
-import org.argeo.cms.i18n.LocaleUtils;
+import org.argeo.cms.LocaleUtils;
import org.argeo.node.NodeConstants;
import org.argeo.node.NodeState;
import org.argeo.transaction.simple.SimpleTransactionManager;
import org.argeo.util.LangUtils;
-import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
import org.osgi.service.cm.ManagedServiceFactory;
-import bitronix.tm.BitronixTransactionManager;
-import bitronix.tm.BitronixTransactionSynchronizationRegistry;
-import bitronix.tm.TransactionManagerServices;
-
public class CmsState implements NodeState {
private final static Log log = LogFactory.getLog(CmsState.class);
private final BundleContext bc = FrameworkUtil.getBundle(CmsState.class).getBundleContext();
if (NodeConstants.TRANSACTION_MANAGER_SIMPLE.equals(tmType)) {
initSimpleTransactionManager();
} else if (NodeConstants.TRANSACTION_MANAGER_BITRONIX.equals(tmType)) {
- initBitronixTransactionManager();
+// initBitronixTransactionManager();
+ throw new UnsupportedOperationException(
+ "Bitronix is not supported anymore, but could be again if there is enough interest.");
} else {
throw new CmsException("Usupported transaction manager type " + tmType);
}
-
// POI
// POIXMLTypeLoader.setClassLoader(CTConnection.class.getClassLoader());
-
+
// Tika
// OpenDocumentParser odfParser = new OpenDocumentParser();
// bc.registerService(Parser.class, odfParser, new Hashtable());
// File System
CmsFsProvider cmsFsProvider = new CmsFsProvider();
+// ServiceLoader<FileSystemProvider> fspSl = ServiceLoader.load(FileSystemProvider.class);
+// for (FileSystemProvider fsp : fspSl) {
+// log.debug("FileSystemProvider " + fsp);
+// if (fsp instanceof CmsFsProvider) {
+// cmsFsProvider = (CmsFsProvider) fsp;
+// }
+// }
+// for (FileSystemProvider fsp : FileSystemProvider.installedProviders()) {
+// log.debug("Installed FileSystemProvider " + fsp);
+// }
bc.registerService(FileSystemProvider.class, cmsFsProvider,
LangUtils.dico(Constants.SERVICE_PID, NodeConstants.NODE_FS_PROVIDER_PID));
}
// TODO TransactionSynchronizationRegistry
}
- private void initBitronixTransactionManager() {
- // 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);
- return;
- }
-
- if (!TransactionManagerServices.isTransactionManagerRunning()) {
- bitronix.tm.Configuration tmConf = TransactionManagerServices.getConfiguration();
- tmConf.setServerId(UUID.randomUUID().toString());
-
- Bundle bitronixBundle = FrameworkUtil.getBundle(bitronix.tm.Configuration.class);
- File tmBaseDir = bitronixBundle.getDataFile(KernelConstants.DIR_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());
- }
- BitronixTransactionManager transactionManager = getTransactionManager();
- stopHooks.add(() -> transactionManager.shutdown());
- BitronixTransactionSynchronizationRegistry transactionSynchronizationRegistry = getTransactionSynchronizationRegistry();
- // register
- bc.registerService(TransactionManager.class, transactionManager, null);
- bc.registerService(UserTransaction.class, transactionManager, null);
- bc.registerService(TransactionSynchronizationRegistry.class, transactionSynchronizationRegistry, null);
- if (log.isDebugEnabled())
- log.debug("Initialised default Bitronix transaction manager");
- }
+// private void initBitronixTransactionManager() {
+// // 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);
+// return;
+// }
+//
+// if (!TransactionManagerServices.isTransactionManagerRunning()) {
+// bitronix.tm.Configuration tmConf = TransactionManagerServices.getConfiguration();
+// tmConf.setServerId(UUID.randomUUID().toString());
+//
+// Bundle bitronixBundle = FrameworkUtil.getBundle(bitronix.tm.Configuration.class);
+// File tmBaseDir = bitronixBundle.getDataFile(KernelConstants.DIR_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());
+// }
+// BitronixTransactionManager transactionManager = getTransactionManager();
+// stopHooks.add(() -> transactionManager.shutdown());
+// BitronixTransactionSynchronizationRegistry transactionSynchronizationRegistry = getTransactionSynchronizationRegistry();
+// // register
+// bc.registerService(TransactionManager.class, transactionManager, null);
+// bc.registerService(UserTransaction.class, transactionManager, null);
+// bc.registerService(TransactionSynchronizationRegistry.class, transactionSynchronizationRegistry, null);
+// if (log.isDebugEnabled())
+// log.debug("Initialised default Bitronix transaction manager");
+// }
void shutdown() {
if (log.isDebugEnabled())