]> git.argeo.org Git - gpl/argeo-jcr.git/blob - org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/servlet/CmsRemotingServlet.java
Improve writing to a JCR Content
[gpl/argeo-jcr.git] / org.argeo.cms.jcr / src / org / argeo / cms / jcr / internal / servlet / CmsRemotingServlet.java
1 package org.argeo.cms.jcr.internal.servlet;
2
3 import java.util.Map;
4
5 import javax.jcr.Repository;
6
7 import org.apache.jackrabbit.server.SessionProvider;
8 import org.apache.jackrabbit.server.remoting.davex.JcrRemotingServlet;
9 import org.argeo.api.cms.CmsConstants;
10
11 /** A {@link JcrRemotingServlet} based on {@link CmsSessionProvider}. */
12 public class CmsRemotingServlet extends JcrRemotingServlet {
13 private static final long serialVersionUID = 6459455509684213633L;
14 private Repository repository;
15 private SessionProvider sessionProvider;
16
17 public CmsRemotingServlet() {
18 }
19
20 public CmsRemotingServlet(String alias, Repository repository) {
21 this.repository = repository;
22 this.sessionProvider = new CmsSessionProvider(alias);
23 }
24
25 @Override
26 public Repository getRepository() {
27 return repository;
28 }
29
30 public void setRepository(Repository repository, Map<String, String> properties) {
31 this.repository = repository;
32 String alias = properties.get(CmsConstants.CN);
33 if (alias != null)
34 sessionProvider = new CmsSessionProvider(alias);
35 else
36 throw new IllegalArgumentException("Only aliased repositories are supported");
37 }
38
39 @Override
40 protected SessionProvider getSessionProvider() {
41 return sessionProvider;
42 }
43
44 }