]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebDavServlet.java
02fdcde731adf317f2e673a4cc093a70c10e27b2
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jackrabbit / src / main / java / org / argeo / jackrabbit / remote / WebDavServlet.java
1 /*
2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16
17 package org.argeo.jackrabbit.remote;
18
19 import java.io.IOException;
20
21 import javax.jcr.Repository;
22 import javax.servlet.ServletException;
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25
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;
32
33 public class WebDavServlet extends SimpleWebdavServlet {
34
35 private static final long serialVersionUID = 1L;
36 private final static Log log = LogFactory.getLog(WebDavServlet.class);
37
38 private Repository repository;
39 private Resource resourceConfiguration;
40
41 public WebDavServlet() {
42
43 }
44
45 @Override
46 public void init() throws ServletException {
47 super.init();
48
49 if (resourceConfiguration != null) {
50 ResourceConfig resourceConfig = new ResourceConfig(null);
51 try {
52 resourceConfig.parse(resourceConfiguration.getURL());
53 } catch (IOException e) {
54 throw new ArgeoException("Cannot parse resource configuration "
55 + resourceConfiguration, e);
56 }
57 setResourceConfig(resourceConfig);
58 }
59 }
60
61 @Override
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);
67
68 if (log.isTraceEnabled()) {
69 log.trace("Webdav response: " + response);
70 // response.
71 }
72 }
73
74 public Repository getRepository() {
75 return repository;
76 }
77
78 public void setRepository(Repository repository) {
79 this.repository = repository;
80 }
81
82 public void setResourceConfiguration(Resource resourceConfig) {
83 this.resourceConfiguration = resourceConfig;
84 }
85
86 }