]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsState.java
Disable logging
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / CmsState.java
index 7906c28faf99473f6d3190f78f4a64193a59ea14..eebf71ccbb4c3df4f0abbf2cf724b6681eb62874 100644 (file)
@@ -7,9 +7,8 @@ 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.Dictionary;
-import java.util.Hashtable;
 import java.util.List;
 import java.util.Locale;
 import java.util.UUID;
@@ -21,7 +20,6 @@ import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.i18n.LocaleUtils;
 import org.argeo.node.NodeConstants;
 import org.argeo.node.NodeState;
@@ -63,7 +61,7 @@ public class CmsState implements NodeState {
                try {
                        this.hostname = InetAddress.getLocalHost().getHostName();
                } catch (UnknownHostException e) {
-                       log.error("Cannot set hostname", e);
+                       log.error("Cannot set hostname: " + e);
                }
 
                availableSince = System.currentTimeMillis();
@@ -94,17 +92,21 @@ public class CmsState implements NodeState {
                RepositoryServiceFactory repositoryServiceFactory = new RepositoryServiceFactory();
                shutdownHooks.add(() -> repositoryServiceFactory.shutdown());
                bc.registerService(ManagedServiceFactory.class, repositoryServiceFactory,
-                               LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_REPOS_FACTORY_PID));
+                               LangUtils.dico(Constants.SERVICE_PID, NodeConstants.NODE_REPOS_FACTORY_PID));
 
                NodeRepositoryFactory repositoryFactory = new NodeRepositoryFactory();
                bc.registerService(RepositoryFactory.class, repositoryFactory, null);
 
                // Security
-               NodeUserAdmin userAdmin = new NodeUserAdmin(AuthConstants.ROLES_BASEDN);
+               NodeUserAdmin userAdmin = new NodeUserAdmin(NodeConstants.ROLES_BASEDN);
                shutdownHooks.add(() -> userAdmin.destroy());
-               Dictionary<String, Object> props = new Hashtable<>();
-               props.put(Constants.SERVICE_PID, NodeConstants.NODE_USER_ADMIN_PID);
-               bc.registerService(ManagedServiceFactory.class, userAdmin, props);
+               bc.registerService(ManagedServiceFactory.class, userAdmin,
+                               LangUtils.dico(Constants.SERVICE_PID, NodeConstants.NODE_USER_ADMIN_PID));
+
+               // File System
+               CmsFsProvider cmsFsProvider = new CmsFsProvider();
+               bc.registerService(FileSystemProvider.class, cmsFsProvider,
+                               LangUtils.dico(Constants.SERVICE_PID, NodeConstants.NODE_FS_PROVIDER_PID));
        }
 
        private void initTransactionManager() {
@@ -113,19 +115,22 @@ public class CmsState implements NodeState {
                if (existingTm != null) {
                        if (log.isDebugEnabled())
                                log.debug("Using provided transaction manager " + existingTm);
+                       return;
                }
-               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());
 
+               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();
                shutdownHooks.add(() -> transactionManager.shutdown());
                BitronixTransactionSynchronizationRegistry transactionSynchronizationRegistry = getTransactionSynchronizationRegistry();
@@ -138,11 +143,11 @@ public class CmsState implements NodeState {
        }
 
        void shutdown() {
-               applyShutdownHooks();
-
                if (kernelThread != null)
                        kernelThread.destroyAndJoin();
 
+               applyShutdownHooks();
+
                if (log.isDebugEnabled())
                        log.debug("## CMS STOPPED");
        }