View Javadoc
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  }