1 package org
.argeo
.server
.jackrabbit
.webdav
;
3 import java
.io
.IOException
;
5 import javax
.jcr
.Repository
;
6 import javax
.servlet
.ServletException
;
7 import javax
.servlet
.http
.HttpServletRequest
;
8 import javax
.servlet
.http
.HttpServletResponse
;
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
;
17 public class WebDavServlet
extends SimpleWebdavServlet
{
19 private static final long serialVersionUID
= 1L;
20 private final static Log log
= LogFactory
.getLog(WebDavServlet
.class);
22 private Repository repository
;
23 private Resource resourceConfiguration
;
25 public WebDavServlet() {
29 // private Session session;
32 public void init() throws ServletException
{
35 if (resourceConfiguration
!= null) {
36 ResourceConfig resourceConfig
= new ResourceConfig();
38 resourceConfig
.parse(resourceConfiguration
.getURL());
39 } catch (IOException e
) {
40 throw new ArgeoException("Cannot parse resource configuration "
41 + resourceConfiguration
, e
);
43 setResourceConfig(resourceConfig
);
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);
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()
62 super.service(request
, response
);
64 if (log
.isDebugEnabled()) {
65 log
.debug("Webdav response: " + response
);
70 // public void onEvent(EventIterator events) {
71 // while (events.hasNext()) {
72 // Event event = events.nextEvent();
78 // protected Session session() {
79 // if (session == null)
81 // session = getRepository().login(
82 // new SimpleCredentials("demo", "demo".toCharArray()));
83 // } catch (Exception e) {
84 // throw new ArgeoException("Cannot open session", e);
89 public Repository
getRepository() {
93 public void setRepository(Repository repository
) {
94 this.repository
= repository
;
97 public void setResourceConfiguration(Resource resourceConfig
) {
98 this.resourceConfiguration
= resourceConfig
;