]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java
Update webdav
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jackrabbit / src / main / java / org / argeo / server / jackrabbit / webdav / WebDavServlet.java
1 package org.argeo.server.jackrabbit.webdav;
2
3 import java.io.IOException;
4
5 import javax.jcr.Repository;
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.apache.commons.logging.Log;
11 import org.apache.commons.logging.LogFactory;
12 import org.apache.jackrabbit.webdav.simple.ResourceConfig;
13 import org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet;
14 import org.argeo.ArgeoException;
15 import org.springframework.core.io.Resource;
16
17 public class WebDavServlet extends SimpleWebdavServlet {
18
19 private static final long serialVersionUID = 1L;
20 private final static Log log = LogFactory.getLog(WebDavServlet.class);
21
22 private Repository repository;
23 private Resource resourceConfiguration;
24
25 public WebDavServlet() {
26
27 }
28
29 // private Session session;
30
31 @Override
32 public void init() throws ServletException {
33 super.init();
34
35 if (resourceConfiguration != null) {
36 ResourceConfig resourceConfig = new ResourceConfig();
37 try {
38 resourceConfig.parse(resourceConfiguration.getURL());
39 } catch (IOException e) {
40 throw new ArgeoException("Cannot parse resource configuration "
41 + resourceConfiguration, e);
42 }
43 setResourceConfig(resourceConfig);
44 }
45
46 // try {
47 // session().getWorkspace().getObservationManager().addEventListener(
48 // this, Event.NODE_ADDED, "/", true, null, null, false);
49 // if (log.isDebugEnabled())
50 // log.debug("Registered listener");
51 // } catch (Exception e) {
52 // throw new ArgeoException("Cannot register event listener", e);
53 // }
54 }
55
56 @Override
57 protected void service(HttpServletRequest request,
58 HttpServletResponse response) throws ServletException, IOException {
59 if (log.isDebugEnabled())
60 log.debug("Received request with method '" + request.getMethod()
61 + "'");
62 super.service(request, response);
63
64 if (log.isDebugEnabled()) {
65 log.debug("Webdav response: " + response);
66 // response.
67 }
68 }
69
70 // public void onEvent(EventIterator events) {
71 // while (events.hasNext()) {
72 // Event event = events.nextEvent();
73 // log.debug(event);
74 // }
75 //
76 // }
77
78 // protected Session session() {
79 // if (session == null)
80 // try {
81 // session = getRepository().login(
82 // new SimpleCredentials("demo", "demo".toCharArray()));
83 // } catch (Exception e) {
84 // throw new ArgeoException("Cannot open session", e);
85 // }
86 // return session;
87 // }
88
89 public Repository getRepository() {
90 return repository;
91 }
92
93 public void setRepository(Repository repository) {
94 this.repository = repository;
95 }
96
97 public void setResourceConfiguration(Resource resourceConfig) {
98 this.resourceConfiguration = resourceConfig;
99 }
100
101 }