X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FDeployedContentRepository.java;h=bb1f6112a927616caec811bb98d61321fc7319ea;hb=a4e2def61f587de89a03037aec2b95c54732ec55;hp=551062379a6047d9fbb733aee597719ca6b16d29;hpb=7e464c3cedfa41ece64811fb55ddc9ce740a1050;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 551062379..bb1f6112a 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 @@ -3,24 +3,28 @@ 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.cms.CmsUserManager; +import org.argeo.api.cms.CmsLog; +import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.cms.acr.CmsContentRepository; import org.argeo.cms.acr.directory.DirectoryContentProvider; import org.argeo.cms.acr.fs.FsContentProvider; +import org.argeo.cms.util.OS; public class DeployedContentRepository extends CmsContentRepository { - private final static String ROOT_XML = "cr:root.xml"; + private final static String ROOT_XML = OS.LOCAL.isMSWindows() ? "cr%3Aroot.xml" : "cr:root.xml"; + + private final static CmsLog log = CmsLog.getLog(DeployedContentRepository.class); private CmsUserManager userManager; @Override public void start() { + long begin = System.currentTimeMillis(); try { super.start(); - Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); + // FIXME does not work on Windows + //Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); initRootContentProvider(null); // Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE); @@ -29,17 +33,26 @@ public class DeployedContentRepository extends CmsContentRepository { // run dir Path runDirPath = KernelUtils.getOsgiInstancePath(CmsContentRepository.RUN_BASE); - Files.createDirectories(runDirPath); - FsContentProvider runContentProvider = new FsContentProvider(CmsContentRepository.RUN_BASE, runDirPath); - addProvider(runContentProvider); + 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 @@ -47,14 +60,6 @@ public class DeployedContentRepository extends CmsContentRepository { super.stop(); } -// public void addContentProvider(ContentProvider provider, Map properties) { -//// String base = LangUtils.get(properties, CmsContentRepository.ACR_MOUNT_PATH_PROPERTY); -// addProvider(provider); -// } - -// public void removeContentProvider(ContentProvider provider, Map properties) { -// } - public void setUserManager(CmsUserManager userManager) { this.userManager = userManager; }