X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FCmsDeployment.java;h=28e2ef9387bb121759b7eca6fc3ec5410d565210;hb=89cd1a458823bbbbb1a5167a953f3d03ef1d2e05;hp=07c10f486045f64d0d7adf120367b2af08a93c13;hpb=5b5c2b97eee9edd037e198acadf8b416a973863f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java index 07c10f486..28e2ef938 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java @@ -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."); } } @@ -234,11 +235,11 @@ public class CmsDeployment implements NodeDeployment { } List 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 processed) { + private void registerDataModelCapability(Session adminSession, BundleCapability capability, Set processed) { Map 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))) {