]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java
Fix static CMS initialisation.
[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.cms.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
13 public class DeployedContentRepository extends CmsContentRepository {
14 private final static String ROOT_XML = "cr:root.xml";
15
16 private final static CmsLog log = CmsLog.getLog(DeployedContentRepository.class);
17
18 private CmsUserManager userManager;
19
20 @Override
21 public void start() {
22 long begin = System.currentTimeMillis();
23 try {
24 super.start();
25 Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML);
26 initRootContentProvider(null);
27
28 // Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE);
29 // FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false);
30 // addProvider(srvContentProvider);
31
32 // run dir
33 Path runDirPath = KernelUtils.getOsgiInstancePath(CmsContentRepository.RUN_BASE);
34 Files.createDirectories(runDirPath);
35 FsContentProvider runContentProvider = new FsContentProvider(CmsContentRepository.RUN_BASE, runDirPath);
36 addProvider(runContentProvider);
37
38 // users
39 DirectoryContentProvider directoryContentProvider = new DirectoryContentProvider(
40 CmsContentRepository.DIRECTORY_BASE, userManager);
41 addProvider(directoryContentProvider);
42 } catch (IOException e) {
43 throw new IllegalStateException("Cannot start content repository", e);
44 }
45 long duration = System.currentTimeMillis()-begin;
46 log.debug(() -> "CMS content repository available (initialisation took "+duration+" ms)");
47 }
48
49 @Override
50 public void stop() {
51 super.stop();
52 }
53
54 // public void addContentProvider(ContentProvider provider, Map<String, Object> properties) {
55 //// String base = LangUtils.get(properties, CmsContentRepository.ACR_MOUNT_PATH_PROPERTY);
56 // addProvider(provider);
57 // }
58
59 // public void removeContentProvider(ContentProvider provider, Map<String, Object> properties) {
60 // }
61
62 public void setUserManager(CmsUserManager userManager) {
63 this.userManager = userManager;
64 }
65
66 }