X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FCmsDeployment.java;h=1d1734d36645664b0bc5adca04183674614daed0;hb=76a7e65ffa515c0dbd7a5587b29ffc9bba449542;hp=20a899eca2a8a2fb7f6e3e82ca4bf529008f7c12;hpb=12caa0288053858bade6e16372a0998ae4fd2820;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 20a899eca..1d1734d36 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 @@ -36,6 +36,7 @@ import org.osgi.framework.ServiceReference; import org.osgi.framework.wiring.BundleCapability; import org.osgi.framework.wiring.BundleWire; import org.osgi.framework.wiring.BundleWiring; +import org.osgi.service.cm.Configuration; import org.osgi.service.cm.ConfigurationAdmin; import org.osgi.service.cm.ManagedService; import org.osgi.service.http.HttpService; @@ -43,6 +44,8 @@ import org.osgi.service.useradmin.UserAdmin; import org.osgi.util.tracker.ServiceTracker; public class CmsDeployment implements NodeDeployment { + private final static String LEGACY_JCR_REPOSITORY_ALIAS = "argeo.jcr.repository.alias"; + private final Log log = LogFactory.getLog(getClass()); private final BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext(); @@ -86,6 +89,15 @@ public class CmsDeployment implements NodeDeployment { ConfigurationAdmin configurationAdmin = bc.getService(reference); 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); + log.debug("Standalone repo cn: "+cn); + } + } catch (Exception e) { + throw new CmsException("Cannot initialize config", e); + } return super.addingService(reference); } }.open(); @@ -133,10 +145,13 @@ public class CmsDeployment implements NodeDeployment { // home prepareDataModel(KernelUtils.openAdminSession(deployedNodeRepository)); + } + + private void prepareHomeRepository(Repository deployedRepository) { Hashtable regProps = new Hashtable(); - regProps.put(NodeConstants.CN, NodeConstants.ALIAS_HOME); - regProps.put(NodeConstants.JCR_REPOSITORY_ALIAS, NodeConstants.ALIAS_HOME); - homeRepository = new HomeRepository(deployedNodeRepository); + regProps.put(NodeConstants.CN, NodeConstants.HOME); + regProps.put(LEGACY_JCR_REPOSITORY_ALIAS, NodeConstants.HOME); + homeRepository = new HomeRepository(deployedRepository); // register bc.registerService(Repository.class, homeRepository, regProps); @@ -148,7 +163,7 @@ public class CmsDeployment implements NodeDeployment { CallbackHandler callbackHandler = bc.getService(reference); nodeKeyring.setDefaultCallbackHandler(callbackHandler); bc.registerService(LangUtils.names(CryptoKeyring.class, ManagedService.class), nodeKeyring, - LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_KEYRING_PID)); + LangUtils.dico(Constants.SERVICE_PID, NodeConstants.NODE_KEYRING_PID)); return callbackHandler; } @@ -204,9 +219,9 @@ public class CmsDeployment implements NodeDeployment { if (!asBoolean((String) attrs.get(DataModelNamespace.CAPABILITY_ABSTRACT_ATTRIBUTE))) { Hashtable properties = new Hashtable<>(); - properties.put(NodeConstants.JCR_REPOSITORY_ALIAS, name); + properties.put(LEGACY_JCR_REPOSITORY_ALIAS, name); properties.put(NodeConstants.CN, name); - if (name.equals(NodeConstants.ALIAS_NODE)) + if (name.equals(NodeConstants.NODE)) properties.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE); LocalRepository localRepository = new LocalRepository(adminSession.getRepository(), capability); bc.registerService(Repository.class, localRepository, properties); @@ -244,10 +259,15 @@ public class CmsDeployment implements NodeDeployment { public RepositoryContext addingService(ServiceReference reference) { RepositoryContext nodeRepo = bc.getService(reference); Object cn = reference.getProperty(NodeConstants.CN); - if (cn != null && cn.equals(NodeConstants.ALIAS_NODE)) { - prepareNodeRepository(nodeRepo.getRepository()); - nodeAvailable = true; - checkReadiness(); + if (cn != null) { + if (cn.equals(NodeConstants.NODE)) { + prepareNodeRepository(nodeRepo.getRepository()); + prepareHomeRepository(nodeRepo.getRepository()); + nodeAvailable = true; + checkReadiness(); + }else{ + // TODO standalone + } } return nodeRepo; }