1 package org
.argeo
.cms
.internal
.runtime
;
3 import java
.io
.IOException
;
4 import java
.nio
.file
.Files
;
5 import java
.nio
.file
.Path
;
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
;
13 public class DeployedContentRepository
extends CmsContentRepository
{
14 private final static String ROOT_XML
= "cr:root.xml";
16 private final static CmsLog log
= CmsLog
.getLog(DeployedContentRepository
.class);
18 private CmsUserManager userManager
;
22 long begin
= System
.currentTimeMillis();
25 Path rootXml
= KernelUtils
.getOsgiInstancePath(ROOT_XML
);
26 initRootContentProvider(null);
28 // Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE);
29 // FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false);
30 // addProvider(srvContentProvider);
33 Path runDirPath
= KernelUtils
.getOsgiInstancePath(CmsContentRepository
.RUN_BASE
);
34 if (runDirPath
!= null) {
35 Files
.createDirectories(runDirPath
);
36 FsContentProvider runContentProvider
= new FsContentProvider(CmsContentRepository
.RUN_BASE
, runDirPath
);
37 addProvider(runContentProvider
);
41 DirectoryContentProvider directoryContentProvider
= new DirectoryContentProvider(
42 CmsContentRepository
.DIRECTORY_BASE
, userManager
);
43 addProvider(directoryContentProvider
);
46 // DavContentProvider davContentProvider = new DavContentProvider("/srv",
47 // URI.create("http://localhost/unstable/a2/"));
48 // addProvider(davContentProvider);
49 } catch (IOException e
) {
50 throw new IllegalStateException("Cannot start content repository", e
);
52 long duration
= System
.currentTimeMillis() - begin
;
53 log
.debug(() -> "CMS content repository available (initialisation took " + duration
+ " ms)");
61 public void setUserManager(CmsUserManager userManager
) {
62 this.userManager
= userManager
;