From 3cf2ac1853e37c531d3ab402c7a0ad73316e41bd Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 31 May 2016 08:54:16 +0000 Subject: [PATCH] Start clarifying the kernel. git-svn-id: https://svn.argeo.org/commons/trunk@8941 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../cms/internal/kernel/DataModelNamespace.java | 16 ++++++++++++++++ .../org/argeo/cms/internal/kernel/Kernel.java | 11 +++++------ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModelNamespace.java diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModelNamespace.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModelNamespace.java new file mode 100644 index 000000000..898ab956c --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModelNamespace.java @@ -0,0 +1,16 @@ +package org.argeo.cms.internal.kernel; + +import org.osgi.resource.Namespace; + +/** CMS Data Model capability namespace. */ +class DataModelNamespace extends Namespace { + + public static final String CMS_DATA_MODEL_NAMESPACE = "cms.datamodel"; + public static final String CAPABILITY_NAME_ATTRIBUTE = "name"; + public static final String CAPABILITY_CND_ATTRIBUTE = "cnd"; + + private DataModelNamespace() { + // empty + } + +} diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java index c82c6c451..199356198 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java @@ -3,6 +3,7 @@ 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 static org.argeo.cms.internal.kernel.DataModelNamespace.CMS_DATA_MODEL_NAMESPACE; import static org.argeo.cms.internal.kernel.KernelUtils.getFrameworkProp; import static org.argeo.cms.internal.kernel.KernelUtils.getOsgiInstanceDir; import static org.argeo.jcr.ArgeoJcrConstants.ALIAS_NODE; @@ -278,8 +279,6 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener { return props; } - private final static String CMS_DATA_MODEL = "cms.datamodel"; - private void prepareDataModel(ManagedJackrabbitRepository nodeRepo) { Session adminSession = null; try { @@ -303,12 +302,12 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener { private void processWiring(Session adminSession, BundleWiring wiring, Set processed) { // recursively process requirements first - List requiredWires = wiring.getRequiredWires(CMS_DATA_MODEL); + List requiredWires = wiring.getRequiredWires(CMS_DATA_MODEL_NAMESPACE); for (BundleWire wire : requiredWires) { processWiring(adminSession, wire.getProviderWiring(), processed); // registerCnd(adminSession, wire.getCapability(), processed); } - List capabilities = wiring.getCapabilities(CMS_DATA_MODEL); + List capabilities = wiring.getCapabilities(CMS_DATA_MODEL_NAMESPACE); for (BundleCapability capability : capabilities) { registerCnd(adminSession, capability, processed); } @@ -316,13 +315,13 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener { private void registerCnd(Session adminSession, BundleCapability capability, Set processed) { Map attrs = capability.getAttributes(); - String name = attrs.get("name").toString(); + String name = attrs.get(DataModelNamespace.CAPABILITY_NAME_ATTRIBUTE).toString(); if (processed.contains(name)) { if (log.isTraceEnabled()) log.trace("Data model " + name + " has already been processed"); return; } - String path = attrs.get("cnd").toString(); + String path = attrs.get(DataModelNamespace.CAPABILITY_CND_ATTRIBUTE).toString(); URL url = capability.getRevision().getBundle().getResource(path); try (Reader reader = new InputStreamReader(url.openStream())) { CndImporter.registerNodeTypes(reader, adminSession, true); -- 2.30.2