]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java
Give all rights on workgroup
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / CmsDeployment.java
index 126c591e64befe548823d048b6ad33236b56efee..28e2ef9387bb121759b7eca6fc3ec5410d565210 100644 (file)
@@ -103,25 +103,27 @@ public class CmsDeployment implements NodeDeployment {
                                deployConfig = new DeployConfig(configurationAdmin, cleanState);
                                httpExpected = deployConfig.getProps(KernelConstants.JETTY_FACTORY_PID, "default") != null;
                                try {
+                                       // Configuration[] configs = configurationAdmin
+                                       // .listConfigurations("(service.factoryPid=" +
+                                       // NodeConstants.NODE_REPOS_FACTORY_PID + ")");
+                                       // for (Configuration config : configs) {
+                                       // Object cn = config.getProperties().get(NodeConstants.CN);
+                                       // if (log.isDebugEnabled())
+                                       // log.debug("Standalone repo cn: " + cn);
+                                       // }
                                        Configuration[] configs = configurationAdmin
-                                                       .listConfigurations("(service.factoryPid=" + NodeConstants.NODE_REPOS_FACTORY_PID + ")");
-                                       for (Configuration config : configs) {
-                                               Object cn = config.getProperties().get(NodeConstants.CN);
-                                               log.debug("Standalone repo cn: " + cn);
-                                       }
-                                       configs = configurationAdmin
                                                        .listConfigurations("(service.factoryPid=" + NodeConstants.NODE_USER_ADMIN_PID + ")");
 
                                        boolean hasDomain = false;
                                        for (Configuration config : configs) {
                                                Object realm = config.getProperties().get(UserAdminConf.realm.name());
                                                if (realm != null) {
-                                                       log.debug("Realm: " + realm);
+                                                       log.debug("Found realm: " + realm);
                                                        hasDomain = true;
                                                }
                                        }
-                                       if (!hasDomain) {
-                                               loadNoIpaJaasConfiguration();
+                                       if (hasDomain) {
+                                               loadIpaJaasConfiguration();
                                        }
                                } catch (Exception e) {
                                        throw new CmsException("Cannot initialize config", e);
@@ -131,13 +133,12 @@ public class CmsDeployment implements NodeDeployment {
                }.open();
        }
 
-       private void loadNoIpaJaasConfiguration() {
+       private void loadIpaJaasConfiguration() {
                if (System.getProperty(KernelConstants.JAAS_CONFIG_PROP) == null) {
-                       String jaasConfig = KernelConstants.JAAS_CONFIG_NOIPA;
+                       String jaasConfig = KernelConstants.JAAS_CONFIG_IPA;
                        URL url = getClass().getClassLoader().getResource(jaasConfig);
                        KernelUtils.setJaasConfiguration(url);
-                       if (log.isDebugEnabled())
-                               log.debug("Set no-IPA JAAS configuration.");
+                       log.debug("Set IPA JAAS configuration.");
                }
        }
 
@@ -157,25 +158,25 @@ public class CmsDeployment implements NodeDeployment {
                        long initDuration = System.currentTimeMillis() - begin;
                        if (log.isTraceEnabled())
                                log.trace("Kernel initialization took " + initDuration + "ms");
-                       directorsCut(initDuration);
+                       tributeToFreeSoftware(initDuration);
                }
        }
 
-       final private void directorsCut(long initDuration) {
-               // final long ms = 128l + (long) (Math.random() * 128d);
-               long ms = initDuration / 100;
-               log.info("Spend " + ms + "ms" + " reflecting on the progress brought to mankind" + " by Free Software...");
-               long beginNano = System.nanoTime();
-               try {
-                       Thread.sleep(ms, 0);
-               } catch (InterruptedException e) {
-                       // silent
+       final private void tributeToFreeSoftware(long initDuration) {
+               if (log.isTraceEnabled()) {
+                       long ms = initDuration / 100;
+                       log.trace("Spend " + ms + "ms" + " reflecting on the progress brought to mankind" + " by Free Software...");
+                       long beginNano = System.nanoTime();
+                       try {
+                               Thread.sleep(ms, 0);
+                       } catch (InterruptedException e) {
+                               // silent
+                       }
+                       long durationNano = System.nanoTime() - beginNano;
+                       final double M = 1000d * 1000d;
+                       double sleepAccuracy = ((double) durationNano) / (ms * M);
+                       log.trace("Sleep accuracy: " + String.format("%.2f", 100 - (sleepAccuracy * 100 - 100)) + " %");
                }
-               long durationNano = System.nanoTime() - beginNano;
-               final double M = 1000d * 1000d;
-               double sleepAccuracy = ((double) durationNano) / (ms * M);
-               if (log.isDebugEnabled())
-                       log.debug("Sleep accuracy: " + String.format("%.2f", 100 - (sleepAccuracy * 100 - 100)) + " %");
        }
 
        private void prepareNodeRepository(Repository deployedNodeRepository) {
@@ -234,11 +235,11 @@ public class CmsDeployment implements NodeDeployment {
                }
                List<BundleCapability> capabilities = wiring.getCapabilities(CMS_DATA_MODEL_NAMESPACE);
                for (BundleCapability capability : capabilities) {
-                       registerCnd(adminSession, capability, processed);
+                       registerDataModelCapability(adminSession, capability, processed);
                }
        }
 
-       private void registerCnd(Session adminSession, BundleCapability capability, Set<String> processed) {
+       private void registerDataModelCapability(Session adminSession, BundleCapability capability, Set<String> processed) {
                Map<String, Object> attrs = capability.getAttributes();
                String name = (String) attrs.get(DataModelNamespace.CAPABILITY_NAME_ATTRIBUTE);
                if (processed.contains(name)) {
@@ -246,15 +247,21 @@ public class CmsDeployment implements NodeDeployment {
                                log.trace("Data model " + name + " has already been processed");
                        return;
                }
+
+               // CND
                String path = (String) attrs.get(DataModelNamespace.CAPABILITY_CND_ATTRIBUTE);
-               URL url = capability.getRevision().getBundle().getResource(path);
-               try (Reader reader = new InputStreamReader(url.openStream())) {
-                       CndImporter.registerNodeTypes(reader, adminSession, true);
-                       processed.add(name);
-                       if (log.isDebugEnabled())
-                               log.debug("Registered CND " + url);
-               } catch (Exception e) {
-                       throw new CmsException("Cannot import CND " + url, e);
+               if (path != null) {
+                       URL url = capability.getRevision().getBundle().getResource(path);
+                       if (url == null)
+                               throw new CmsException("No data model '" + name + "' found under path " + path);
+                       try (Reader reader = new InputStreamReader(url.openStream())) {
+                               CndImporter.registerNodeTypes(reader, adminSession, true);
+                               processed.add(name);
+                               if (log.isDebugEnabled())
+                                       log.debug("Registered CND " + url);
+                       } catch (Exception e) {
+                               throw new CmsException("Cannot import CND " + url, e);
+                       }
                }
 
                if (!asBoolean((String) attrs.get(DataModelNamespace.CAPABILITY_ABSTRACT_ATTRIBUTE))) {