]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsWebDavServlet.java
d61e5f49403fa99e0195cf154147b55758a648ca
[lgpl/argeo-commons.git] / CmsWebDavServlet.java
1 package org.argeo.cms.internal.http;
2
3 import java.util.Map;
4
5 import javax.jcr.Repository;
6
7 import org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet;
8 import org.argeo.api.NodeConstants;
9
10 /** A {@link SimpleWebdavServlet} based on {@link CmsSessionProvider}. */
11 public class CmsWebDavServlet extends SimpleWebdavServlet {
12 private static final long serialVersionUID = 7485800288686328063L;
13 private Repository repository;
14
15 public CmsWebDavServlet() {
16 }
17
18 public CmsWebDavServlet(String alias, Repository repository) {
19 this.repository = repository;
20 setSessionProvider(new CmsSessionProvider(alias));
21 }
22
23 @Override
24 public Repository getRepository() {
25 return repository;
26 }
27
28 public void setRepository(Repository repository, Map<String, String> properties) {
29 this.repository = repository;
30 String alias = properties.get(NodeConstants.CN);
31 if (alias != null)
32 setSessionProvider(new CmsSessionProvider(alias));
33 else
34 throw new IllegalArgumentException("Only aliased repositories are supported");
35 }
36
37 }