]> 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 9ff1540a7bf3f1d6d9eb498279f57697e15aef63..eebf71ccbb4c3df4f0abbf2cf724b6681eb62874 100644 (file)
@@ -7,6 +7,7 @@ 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;
@@ -19,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;
@@ -61,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();
@@ -92,16 +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());
                bc.registerService(ManagedServiceFactory.class, userAdmin,
-                               LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_USER_ADMIN_PID));
+                               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() {
@@ -110,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();
@@ -135,11 +143,11 @@ public class CmsState implements NodeState {
        }
 
        void shutdown() {
-               applyShutdownHooks();
-
                if (kernelThread != null)
                        kernelThread.destroyAndJoin();
 
+               applyShutdownHooks();
+
                if (log.isDebugEnabled())
                        log.debug("## CMS STOPPED");
        }