X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FDeployedContentRepository.java;h=8358105e2982db480f79369db507b14f471b0d90;hb=f3ea14abccc33b1c3326417a87c91145be776c72;hp=af42418421ac3e6d080b350f1d50b31b8712316e;hpb=9174f78c93c94b9c148dff66c38204baf55bc8f2;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java index af4241842..8358105e2 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java @@ -1,27 +1,56 @@ package org.argeo.cms.internal.runtime; -import java.util.Map; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; -import org.argeo.api.acr.spi.ContentProvider; -import org.argeo.api.cms.CmsState; +import org.argeo.api.cms.CmsLog; +import org.argeo.cms.CmsUserManager; import org.argeo.cms.acr.CmsContentRepository; -import org.argeo.util.LangUtils; +import org.argeo.cms.acr.directory.DirectoryContentProvider; +import org.argeo.cms.acr.fs.FsContentProvider; public class DeployedContentRepository extends CmsContentRepository { -// private final static String ROOT_XML = "cr:root.xml"; - private final static String ACR_MOUNT_PATH = "acr.mount.path"; + private final static String ROOT_XML = "cr:root.xml"; - private CmsState cmsState; + private final static CmsLog log = CmsLog.getLog(DeployedContentRepository.class); + + private CmsUserManager userManager; @Override public void start() { - super.start(); -// Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); - initRootContentProvider(null); + long begin = System.currentTimeMillis(); + try { + super.start(); + Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); + initRootContentProvider(null); // Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE); -// FsContentProvider srvContentProvider = new FsContentProvider(srvPath, false); -// addProvider("/" + CmsConstants.SRV_WORKSPACE, srvContentProvider); +// FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false); +// addProvider(srvContentProvider); + + // run dir + Path runDirPath = KernelUtils.getOsgiInstancePath(CmsContentRepository.RUN_BASE); + if (runDirPath != null) { + Files.createDirectories(runDirPath); + FsContentProvider runContentProvider = new FsContentProvider(CmsContentRepository.RUN_BASE, runDirPath); + addProvider(runContentProvider); + } + + // users + DirectoryContentProvider directoryContentProvider = new DirectoryContentProvider( + CmsContentRepository.DIRECTORY_BASE, userManager); + addProvider(directoryContentProvider); + + // remote +// DavContentProvider davContentProvider = new DavContentProvider("/srv", +// URI.create("http://localhost/unstable/a2/")); +// addProvider(davContentProvider); + } catch (IOException e) { + throw new IllegalStateException("Cannot start content repository", e); + } + long duration = System.currentTimeMillis() - begin; + log.debug(() -> "CMS content repository available (initialisation took " + duration + " ms)"); } @Override @@ -29,16 +58,8 @@ public class DeployedContentRepository extends CmsContentRepository { super.stop(); } - public void addContentProvider(ContentProvider provider, Map properties) { - String base = LangUtils.get(properties, ACR_MOUNT_PATH); - addProvider(base, provider); - } - - public void removeContentProvider(ContentProvider provider, Map properties) { - } - - public void setCmsState(CmsState cmsState) { - this.cmsState = cmsState; + public void setUserManager(CmsUserManager userManager) { + this.userManager = userManager; } }