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);
56 @SuppressWarnings("restriction")
58 protected void service(HttpServletRequest request
,
59 HttpServletResponse response
) throws ServletException
, IOException
{
60 if (log
.isTraceEnabled())
61 log
.debug("Received request with method '" + request
.getMethod()
63 super.service(request
, response
);
65 if (log
.isTraceEnabled()) {
66 log
.debug("Webdav response: " + response
);
71 // public void onEvent(EventIterator events) {
72 // while (events.hasNext()) {
73 // Event event = events.nextEvent();
79 // protected Session session() {
80 // if (session == null)
82 // session = getRepository().login(
83 // new SimpleCredentials("demo", "demo".toCharArray()));
84 // } catch (Exception e) {
85 // throw new ArgeoException("Cannot open session", e);
90 public Repository
getRepository() {
94 public void setRepository(Repository repository
) {
95 this.repository
= repository
;
98 public void setResourceConfiguration(Resource resourceConfig
) {
99 this.resourceConfiguration
= resourceConfig
;