X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FDeployedContentRepository.java;h=4a4a4d9867863a4e4bf4ecf3887ba63ecdc37ab3;hb=4c7e1885b8bf3c93fa0919ace122e3f289a925ea;hp=aaf02e06a5089911b6751d35aab00dd7c5865324;hpb=e3db2eba9a7f8380a6f76d7b0e6cd4825e91893e;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 aaf02e06a..4a4a4d986 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,28 +1,45 @@ package org.argeo.cms.internal.runtime; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; import org.argeo.api.acr.spi.ContentProvider; -import org.argeo.api.cms.CmsConstants; -import org.argeo.api.cms.CmsState; +import org.argeo.cms.CmsUserManager; import org.argeo.cms.acr.CmsContentRepository; +import org.argeo.cms.acr.directory.DirectoryContentProvider; import org.argeo.cms.acr.fs.FsContentProvider; -import org.argeo.util.LangUtils; public class DeployedContentRepository extends CmsContentRepository { private final static String ROOT_XML = "cr:root.xml"; - private CmsState cmsState; + + private CmsUserManager userManager; @Override public void start() { - super.start(); - Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); - initRootContentProvider(rootXml); - - Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE); - FsContentProvider srvContentProvider = new FsContentProvider(CmsConstants.SRV_WORKSPACE, srvPath, false); - addProvider("/" + CmsConstants.SRV_WORKSPACE, srvContentProvider); + try { + super.start(); + Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); + initRootContentProvider(null); + +// Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE); +// FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false); +// addProvider(srvContentProvider); + + // run dir + Path runDirPath = KernelUtils.getOsgiInstancePath(CmsContentRepository.RUN_BASE); + Files.createDirectories(runDirPath); + FsContentProvider runContentProvider = new FsContentProvider(CmsContentRepository.RUN_BASE, runDirPath); + addProvider(runContentProvider); + + // users + DirectoryContentProvider directoryContentProvider = new DirectoryContentProvider( + CmsContentRepository.DIRECTORY_BASE, userManager); + addProvider(directoryContentProvider); + } catch (IOException e) { + throw new IllegalStateException("Cannot start content repository", e); + } } @Override @@ -31,15 +48,15 @@ public class DeployedContentRepository extends CmsContentRepository { } public void addContentProvider(ContentProvider provider, Map properties) { - String base = LangUtils.get(properties, CmsContentRepository.ACR_MOUNT_PATH_PROPERTY); - addProvider(base, provider); +// String base = LangUtils.get(properties, CmsContentRepository.ACR_MOUNT_PATH_PROPERTY); + addProvider(provider); } public void removeContentProvider(ContentProvider provider, Map properties) { } - public void setCmsState(CmsState cmsState) { - this.cmsState = cmsState; + public void setUserManager(CmsUserManager userManager) { + this.userManager = userManager; } }