Do not register ego repository.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / CmsInstance.java
index fb3e6ad4d88c5f6b531edf45182c2a4fe577bf40..eef8d925e76d7663e67338c811fa0b036645b1b9 100644 (file)
@@ -1,11 +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.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;
@@ -15,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();
@@ -26,12 +29,20 @@ public class CmsInstance implements NodeInstance {
                        @Override
                        public Repository addingService(ServiceReference<Repository> reference) {
                                Object cn = reference.getProperty(NodeConstants.CN);
-                               if (cn != null && cn.equals(NodeConstants.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<Repository> reference, Repository service) {
+                               super.removedService(reference, service);
+//                             egoRepository = null;
+                       }
+
                }.open();
        }
 
@@ -39,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);
+       }
+
 }