]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java
Introduce AsyncPipedOutputStream
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / runtime / DeployedContentRepository.java
1 package org.argeo.cms.internal.runtime;
2
3 import java.io.IOException;
4 import java.nio.file.Files;
5 import java.nio.file.Path;
6
7 import org.argeo.api.cms.CmsLog;
8 import org.argeo.api.cms.directory.CmsUserManager;
9 import org.argeo.cms.acr.CmsContentRepository;
10 import org.argeo.cms.acr.directory.DirectoryContentProvider;
11 import org.argeo.cms.acr.fs.FsContentProvider;
12 import org.argeo.cms.util.OS;
13
14 public class DeployedContentRepository extends CmsContentRepository {
15 private final static String ROOT_XML = OS.LOCAL.isMSWindows() ? "cr%3Aroot.xml" : "cr:root.xml";
16
17 private final static CmsLog log = CmsLog.getLog(DeployedContentRepository.class);
18
19 private CmsUserManager userManager;
20
21 @Override
22 public void start() {
23 long begin = System.currentTimeMillis();
24 try {
25 super.start();
26 // FIXME does not work on Windows
27 // Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML);
28 initRootContentProvider(null);
29
30 // Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE);
31 // FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false);
32 // addProvider(srvContentProvider);
33
34 // run dir
35 Path runDirPath = KernelUtils.getOsgiInstancePath(CmsContentRepository.RUN_BASE);
36 if (runDirPath != null) {
37 Files.createDirectories(runDirPath);
38 FsContentProvider runContentProvider = new FsContentProvider(CmsContentRepository.RUN_BASE, runDirPath);
39 addProvider(runContentProvider);
40 }
41
42 // users
43 DirectoryContentProvider directoryContentProvider = new DirectoryContentProvider(userManager,
44 CmsContentRepository.DIRECTORY_BASE);
45 addProvider(directoryContentProvider);
46
47 // remote
48 // DavContentProvider davContentProvider = new DavContentProvider("/srv",
49 // URI.create("http://localhost/unstable/a2/"));
50 // addProvider(davContentProvider);
51 } catch (IOException e) {
52 throw new IllegalStateException("Cannot start content repository", e);
53 }
54 long duration = System.currentTimeMillis() - begin;
55 log.debug(() -> "CMS content repository available (initialisation took " + duration + " ms)");
56 }
57
58 @Override
59 public void stop() {
60 super.stop();
61 }
62
63 public void setUserManager(CmsUserManager userManager) {
64 this.userManager = userManager;
65 }
66
67 }