2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org
.argeo
.server
.jackrabbit
.webdav
;
19 import java
.io
.IOException
;
21 import javax
.jcr
.Repository
;
22 import javax
.servlet
.ServletException
;
23 import javax
.servlet
.http
.HttpServletRequest
;
24 import javax
.servlet
.http
.HttpServletResponse
;
26 import org
.apache
.commons
.logging
.Log
;
27 import org
.apache
.commons
.logging
.LogFactory
;
28 import org
.apache
.jackrabbit
.webdav
.simple
.ResourceConfig
;
29 import org
.apache
.jackrabbit
.webdav
.simple
.SimpleWebdavServlet
;
30 import org
.argeo
.ArgeoException
;
31 import org
.springframework
.core
.io
.Resource
;
33 public class WebDavServlet
extends SimpleWebdavServlet
{
35 private static final long serialVersionUID
= 1L;
36 private final static Log log
= LogFactory
.getLog(WebDavServlet
.class);
38 private Repository repository
;
39 private Resource resourceConfiguration
;
41 public WebDavServlet() {
46 public void init() throws ServletException
{
49 if (resourceConfiguration
!= null) {
50 ResourceConfig resourceConfig
= new ResourceConfig();
52 resourceConfig
.parse(resourceConfiguration
.getURL());
53 } catch (IOException e
) {
54 throw new ArgeoException("Cannot parse resource configuration "
55 + resourceConfiguration
, e
);
57 setResourceConfig(resourceConfig
);
62 protected void service(HttpServletRequest request
,
63 HttpServletResponse response
) throws ServletException
, IOException
{
64 if (log
.isTraceEnabled())
65 log
.trace("Received request " + request
);
66 super.service(request
, response
);
68 if (log
.isTraceEnabled()) {
69 log
.trace("Webdav response: " + response
);
74 public Repository
getRepository() {
78 public void setRepository(Repository repository
) {
79 this.repository
= repository
;
82 public void setResourceConfiguration(Resource resourceConfig
) {
83 this.resourceConfiguration
= resourceConfig
;