X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FCmsInstance.java;h=eef8d925e76d7663e67338c811fa0b036645b1b9;hb=6e6286a551d04ee0993dc7930bd9744f7c9df10e;hp=795f063fb48b3037125cf7d819638ec363dbc98f;hpb=828c592e047d6dd0b88c1835093e07b1526036b0;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsInstance.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsInstance.java index 795f063fb..eef8d925e 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsInstance.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsInstance.java @@ -1,12 +1,13 @@ package org.argeo.cms.internal.kernel; import javax.jcr.Repository; +import javax.naming.ldap.LdapName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.argeo.jcr.ArgeoJcrConstants; -import org.argeo.node.NodeConstants; -import org.argeo.node.NodeInstance; +import org.argeo.api.NodeConstants; +import org.argeo.api.NodeInstance; +import org.argeo.cms.CmsException; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.framework.ServiceReference; @@ -16,6 +17,7 @@ public class CmsInstance implements NodeInstance { private final Log log = LogFactory.getLog(getClass()); private final BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext(); + private EgoRepository egoRepository; public CmsInstance() { initTrackers(); @@ -27,12 +29,20 @@ public class CmsInstance implements NodeInstance { @Override public Repository addingService(ServiceReference reference) { Object cn = reference.getProperty(NodeConstants.CN); - if (cn != null && cn.equals(ArgeoJcrConstants.ALIAS_NODE)) { - if (log.isDebugEnabled()) - log.debug("Node repository is available"); + if (cn != null && cn.equals(NodeConstants.EGO_REPOSITORY)) { +// egoRepository = (EgoRepository) bc.getService(reference); + if (log.isTraceEnabled()) + log.trace("Home repository is available"); } return super.addingService(reference); } + + @Override + public void removedService(ServiceReference reference, Repository service) { + super.removedService(reference, service); +// egoRepository = null; + } + }.open(); } @@ -40,4 +50,12 @@ public class CmsInstance implements NodeInstance { } + @Override + public void createWorkgroup(LdapName dn) { + if (egoRepository == null) + throw new CmsException("Ego repository is not available"); + // TODO add check that the group exists + egoRepository.createWorkgroup(dn); + } + }