Static CMS working as native image
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / AbstractContentRepository.java
index 382c432b564f4fe1c46bd17fa49ed3166c756f31..6ca7b3591a8cae1d27f42755833dded275687ba3 100644 (file)
@@ -22,6 +22,7 @@ import org.argeo.api.acr.spi.ContentProvider;
 import org.argeo.api.acr.spi.ProvidedContent;
 import org.argeo.api.acr.spi.ProvidedRepository;
 import org.argeo.api.cms.CmsLog;
+import org.argeo.api.uuid.UuidFactory;
 import org.argeo.cms.acr.xml.DomContentProvider;
 import org.argeo.cms.acr.xml.DomUtils;
 import org.w3c.dom.DOMException;
@@ -35,8 +36,10 @@ import org.xml.sax.SAXException;
 public abstract class AbstractContentRepository implements ProvidedRepository {
        private final static CmsLog log = CmsLog.getLog(AbstractContentRepository.class);
 
-       private final MountManager mountManager;
-       private final TypesManager typesManager;
+       private UuidFactory uuidFactory;
+
+       private MountManager mountManager;
+       private TypesManager typesManager;
 
        private CmsContentSession systemSession;
 
@@ -56,20 +59,19 @@ public abstract class AbstractContentRepository implements ProvidedRepository {
                                log.trace(type + " - " + typesManager.getAttributeTypes(type));
                        }
 
-               systemSession = newSystemSession();
-
-               // mounts
-               mountManager = new MountManager(systemSession);
-
        }
 
        protected abstract CmsContentSession newSystemSession();
 
        public void start() {
+               systemSession = newSystemSession();
+               // mounts
+               mountManager = new MountManager(systemSession);
        }
 
        public void stop() {
-
+               systemSession.close();
+               systemSession = null;
        }
 
        /*
@@ -198,4 +200,8 @@ public abstract class AbstractContentRepository implements ProvidedRepository {
                return typesManager;
        }
 
+       public void setUuidFactory(UuidFactory uuidFactory) {
+               this.uuidFactory = uuidFactory;
+       }
+
 }