Restructure Webdav and JCR servlets
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2011 14:05:39 +0000 (14:05 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2011 14:05:39 +0000 (14:05 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@4207 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

20 files changed:
eclipse/plugins/org.argeo.jcr.ui.explorer/log4j.properties
server/modules/org.argeo.jackrabbit.webapp/META-INF/MANIFEST.MF
server/modules/org.argeo.jackrabbit.webapp/WEB-INF/applicationContext.xml
server/modules/org.argeo.jackrabbit.webapp/WEB-INF/remoting-servlet.xml
server/modules/org.argeo.jackrabbit.webapp/WEB-INF/webdav-servlet.xml
server/modules/org.argeo.server.webextender/.project [new file with mode: 0644]
server/modules/org.argeo.server.webextender/.settings/org.eclipse.pde.core.prefs [new file with mode: 0644]
server/modules/org.argeo.server.webextender/META-INF/MANIFEST.MF
server/modules/org.argeo.server.webextender/build.properties [new file with mode: 0644]
server/runtime/org.argeo.server.catalina/META-INF/MANIFEST.MF
server/runtime/org.argeo.server.jackrabbit/pom.xml
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitContainer.java
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/AbstractJackrabbitHandlerMapping.java [new file with mode: 0644]
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/JcrRemotingHandlerMapping.java
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/JcrRemotingServlet.java
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java [new file with mode: 0644]
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavHandlerMapping.java [new file with mode: 0644]
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavServlet.java [new file with mode: 0644]
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebDavServlet.java [deleted file]
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebdavHandlerMapping.java [deleted file]

index 577571c820a838b372116b5f3820c18d6dcb585c..dcc3a49d05a3460b28eca10c7d49ac7b48a074e9 100644 (file)
@@ -7,6 +7,7 @@ log4j.logger.org.springframework.security=INFO
 log4j.logger.org.apache.catalina=INFO
 log4j.logger.org.apache.coyote=INFO
 log4j.logger.org.apache.tomcat=INFO
+log4j.logger.org.springframework.osgi.web.deployer.tomcat=WARN
 
 log4j.logger.org.apache.directory.server=INFO
 log4j.logger.org.apache.directory.server.core.partition=ERROR
index dead9a924e870d17e476b116c324719015859539..0e6854f7994a3609ac821bbf793892548e2328b4 100644 (file)
@@ -5,15 +5,20 @@ Bundle-SymbolicName: org.argeo.jackrabbit.webapp
 Bundle-Version: 0.2.3.SNAPSHOT
 Web-ContextPath: org.argeo.jcr.webapp
 Bundle-Vendor: Argeo
+DynamicImport-Package: *
 Import-Package: javax.jcr,
  javax.servlet,
  javax.servlet.http,
  javax.servlet.resources,
+ org.aopalliance.aop;version="1.0.0",
  org.argeo.jackrabbit.remote,
  org.argeo.jcr,
  org.argeo.jcr.mvc,
  org.argeo.server.json,
  org.argeo.server.mvc,
+ org.springframework.aop;version="2.5.6.SEC01",
+ org.springframework.aop.framework;version="2.5.6.SEC01",
+ org.springframework.aop.scope;version="2.5.6.SEC01",
  org.springframework.osgi.web.context.support;version="1.2.1",
  org.springframework.security;version="2.0.6.RELEASE",
  org.springframework.security.ui.webapp;version="2.0.6.RELEASE",
index a30ecbf0613e087d222588c4722b5c5c94761cb9..5898b1952fa5816c1b56a22cf36f917acfce4c5d 100644 (file)
@@ -1,10 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
-       xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
 
        <import resource="osgi.xml" />
 
        <bean id="repositoryRegister" class="org.argeo.jcr.DefaultRepositoryRegister" />
 
-       <bean id="osivInterceptor"
-               class="org.argeo.jcr.mvc.OpenSessionInViewJcrInterceptor">
-<!--           <property name="session" ref="jcrSession" />-->
+       <bean id="sessionProvider" scope="session" destroy-method="dispose"
+               class="org.argeo.jackrabbit.remote.SimpleSessionProvider">
+               <aop:scoped-proxy proxy-target-class="false" />
+       </bean>
+
+       <bean id="osivInterceptor" class="org.argeo.jcr.mvc.OpenSessionInViewJcrInterceptor">
+               <!-- <property name="session" ref="jcrSession" /> -->
        </bean>
 
 </beans>
\ No newline at end of file
index 35376c18403e521fbc0e58cad328ea5cf6ab3d7c..d07eecede1bab491dbe089988a45d9c9a56a82a5 100644 (file)
@@ -16,6 +16,7 @@
        <bean id="urlMapping"
                class="org.argeo.jackrabbit.remote.JcrRemotingHandlerMapping">
                <property name="repositoryRegister" ref="repositoryRegister" />
+               <property name="sessionProvider" ref="sessionProvider" />
        </bean>
 
 </beans>
\ No newline at end of file
index 71874b5713e3e90cdaef4731b2d64f2a4a809e92..bddeb52a911918dc38adcbb9ae3ae230cebd0e40 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
-       xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
        <bean id="servletHandler"
                class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
 
-       <bean id="urlMapping"
-               class="org.argeo.jackrabbit.remote.WebdavHandlerMapping">
+       <bean id="urlMapping" class="org.argeo.jackrabbit.remote.SimpleWebdavHandlerMapping">
+               <property name="configuration" value="/WEB-INF/webdav-config.xml" />
                <property name="repositoryRegister" ref="repositoryRegister" />
-               <property name="configuration" value="osgibundle:/WEB-INF/webdav-config.xml" />
+               <property name="sessionProvider" ref="sessionProvider" />
        </bean>
 
 </beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.server.webextender/.project b/server/modules/org.argeo.server.webextender/.project
new file mode 100644 (file)
index 0000000..a8e485f
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.server.webextender</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+       </natures>
+</projectDescription>
diff --git a/server/modules/org.argeo.server.webextender/.settings/org.eclipse.pde.core.prefs b/server/modules/org.argeo.server.webextender/.settings/org.eclipse.pde.core.prefs
new file mode 100644 (file)
index 0000000..bd6f9ba
--- /dev/null
@@ -0,0 +1,4 @@
+#Fri Feb 25 14:51:26 CET 2011
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
index e8f59fe32cfee5f8977e54b26658fce890fc3ac8..b5758f5c3d70aff77f3d10b3b11b4441812c75e9 100644 (file)
@@ -1,5 +1,9 @@
 Manifest-Version: 1.0
-Fragment-Host: org.springframework.osgi.web.extender
-Bundle-Version: 0.2.3.SNAPSHOT
+Bundle-ManifestVersion: 2
+Bundle-Name: Webextender
 Bundle-SymbolicName: org.argeo.server.webextender
-Import-Package: org.apache.catalina,org.apache.catalina.connector
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Argeo
+Fragment-Host: org.springframework.osgi.web.extender
+Import-Package: org.apache.catalina,
+ org.apache.catalina.connector
diff --git a/server/modules/org.argeo.server.webextender/build.properties b/server/modules/org.argeo.server.webextender/build.properties
new file mode 100644 (file)
index 0000000..5f22cdd
--- /dev/null
@@ -0,0 +1 @@
+bin.includes = META-INF/
index 9820bc0067cd1ad7b6cf8e3c9062bfe361c69ef7..faada56d5536e126c370b5e23f23095aaa469168 100644 (file)
@@ -7,9 +7,12 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Import-Package: org.apache.catalina;version="6.0.24",
  org.apache.catalina.connector;version="6.0.24",
  org.apache.catalina.core;version="6.0.24",
+ org.apache.catalina.startup;version="6.0.24",
  org.apache.catalina.util;version="6.0.24",
  org.apache.commons.logging;version="1.1.1",
  org.apache.naming.resources;version="6.0.24",
  org.osgi.framework;version="1.5.0",
  org.osgi.service.url;version="1.0.0",
- org.springframework.beans.factory;version="2.5.6.SEC01"
+ org.springframework.aop;version="2.5.6.SEC01",
+ org.springframework.beans.factory;version="2.5.6.SEC01",
+ org.springframework.osgi.web.deployer;version="1.2.1"
index 4beeb819ac3694d832e46175e2b89aa6498278b3..cce6833350c36c36ad8afc5da4a2074fe60cb09f 100644 (file)
@@ -34,6 +34,8 @@
                                                </Export-Package>
                                                <Import-Package>
                                                        javax.servlet,
+                                                       org.apache.jackrabbit.webdav.server,
+                                                       org.springframework.web.context,
                                                        org.xml.sax;version="0.0.0",
                                                        org.apache.jackrabbit.webdav.jcr,
                                                        org.springframework.security.providers.jaas;resolution:="optional",
index 8b35d0b6f3e1b28957216ae97370af984609c752..b5170c191867ac2eddc58fdbf27b44eed2789349 100644 (file)
@@ -42,7 +42,6 @@ import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.commons.JcrUtils;
 import org.apache.jackrabbit.commons.NamespaceHelper;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
-import org.apache.jackrabbit.core.RepositoryFactoryImpl;
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.TransientRepository;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/AbstractJackrabbitHandlerMapping.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/AbstractJackrabbitHandlerMapping.java
new file mode 100644 (file)
index 0000000..5c0ef83
--- /dev/null
@@ -0,0 +1,18 @@
+package org.argeo.jackrabbit.remote;
+
+import org.apache.jackrabbit.server.SessionProvider;
+import org.argeo.jcr.mvc.MultipleRepositoryHandlerMapping;
+
+public abstract class AbstractJackrabbitHandlerMapping extends
+               MultipleRepositoryHandlerMapping {
+       private SessionProvider sessionProvider;
+
+       protected SessionProvider getSessionProvider() {
+               return sessionProvider;
+       }
+
+       public void setSessionProvider(SessionProvider sessionProvider) {
+               this.sessionProvider = sessionProvider;
+       }
+
+}
index e72a23073910cb6d7c1fb8913b6e12a08a95d5b5..41c1a753708409b21a5533819a0756c91dd6b8bd 100644 (file)
@@ -6,17 +6,14 @@ import javax.jcr.Repository;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 
-import org.apache.jackrabbit.webdav.jcr.JCRWebdavServerServlet;
-import org.argeo.jcr.mvc.MultipleRepositoryHandlerMapping;
-
-public class JcrRemotingHandlerMapping extends MultipleRepositoryHandlerMapping {
+public class JcrRemotingHandlerMapping extends AbstractJackrabbitHandlerMapping {
        protected HttpServlet createServlet(Repository repository, String pathPrefix)
                        throws ServletException {
-               JcrRemotingServlet servlet = new JcrRemotingServlet(repository);
+               JcrRemotingServlet servlet = new JcrRemotingServlet(repository,
+                               getSessionProvider());
                Properties initParameters = new Properties();
                initParameters.setProperty(
-                               JCRWebdavServerServlet.INIT_PARAM_RESOURCE_PATH_PREFIX,
-                               pathPrefix);
+                               JcrRemotingServlet.INIT_PARAM_RESOURCE_PATH_PREFIX, pathPrefix);
                servlet.init(new DelegatingServletConfig(pathPrefix.replace('/', '_'),
                                initParameters));
                return servlet;
index e9b00c8f785eca4e10d2e6a9aa557ab78e960574..ad3a59225355a61bc03ff84752ed30d27056c1f9 100644 (file)
@@ -1,7 +1,6 @@
 package org.argeo.jackrabbit.remote;
 
 import javax.jcr.Repository;
-import javax.jcr.SimpleCredentials;
 
 import org.apache.jackrabbit.server.SessionProvider;
 
@@ -11,9 +10,12 @@ public class JcrRemotingServlet extends
        private static final long serialVersionUID = 3131835511468341309L;
 
        private final Repository repository;
+       private final SessionProvider sessionProvider;
 
-       public JcrRemotingServlet(Repository repository) {
+       public JcrRemotingServlet(Repository repository,
+                       SessionProvider sessionProvider) {
                this.repository = repository;
+               this.sessionProvider = sessionProvider;
        }
 
        @Override
@@ -23,8 +25,7 @@ public class JcrRemotingServlet extends
 
        @Override
        protected SessionProvider getSessionProvider() {
-               return new CachingSessionProvider(new SimpleCredentials("demo",
-                               "demo".toCharArray()));
+               return sessionProvider;
        }
 
 }
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java
new file mode 100644 (file)
index 0000000..ded4915
--- /dev/null
@@ -0,0 +1,65 @@
+package org.argeo.jackrabbit.remote;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jackrabbit.server.SessionProvider;
+
+/** To be injected, typically of scope="session" */
+public class SimpleSessionProvider implements SessionProvider, Serializable {
+       private static final long serialVersionUID = 2270957712453841368L;
+
+       private final static Log log = LogFactory
+                       .getLog(SimpleSessionProvider.class);
+
+       private transient Map<String, Session> sessions = Collections
+                       .synchronizedMap(new HashMap<String, Session>());
+
+       private Credentials credentials = null;
+
+       public Session getSession(HttpServletRequest request, Repository rep,
+                       String workspace) throws LoginException, ServletException,
+                       RepositoryException {
+
+               if (!sessions.containsKey(workspace)) {
+                       Session session = rep.login(credentials, workspace);
+                       sessions.put(workspace, session);
+                       return session;
+               } else {
+                       Session session = sessions.get(workspace);
+                       if (!session.isLive()) {
+                               sessions.remove(workspace);
+                               session = rep.login(credentials, workspace);
+                               sessions.put(workspace, session);
+                       }
+                       return session;
+               }
+       }
+
+       public void releaseSession(Session session) {
+               if (log.isDebugEnabled())
+                       log.debug("Releasing JCR session " + session);
+               // session.logout();
+               // FIXME: find a way to log out when the HTTP session is expired
+       }
+
+       public void dispose() {
+               for (String workspace : sessions.keySet()) {
+                       Session session = sessions.get(workspace);
+                       if (session.isLive())
+                               session.logout();
+               }
+       }
+}
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavHandlerMapping.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavHandlerMapping.java
new file mode 100644 (file)
index 0000000..ea014f9
--- /dev/null
@@ -0,0 +1,33 @@
+package org.argeo.jackrabbit.remote;
+
+import java.util.Properties;
+
+import javax.jcr.Repository;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+public class SimpleWebdavHandlerMapping extends
+               AbstractJackrabbitHandlerMapping {
+       private String configuration;
+
+       protected HttpServlet createServlet(Repository repository, String pathPrefix)
+                       throws ServletException {
+
+               SimpleWebdavServlet servlet = new SimpleWebdavServlet(repository,
+                               getSessionProvider());
+               Properties initParameters = new Properties();
+               initParameters.setProperty(
+                               SimpleWebdavServlet.INIT_PARAM_RESOURCE_CONFIG, configuration);
+               initParameters
+                               .setProperty(
+                                               SimpleWebdavServlet.INIT_PARAM_RESOURCE_PATH_PREFIX,
+                                               pathPrefix);
+               servlet.init(new DelegatingServletConfig(pathPrefix.replace('/', '_'),
+                               initParameters));
+               return servlet;
+       }
+
+       public void setConfiguration(String configuration) {
+               this.configuration = configuration;
+       }
+}
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavServlet.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavServlet.java
new file mode 100644 (file)
index 0000000..4fa4033
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.argeo.jackrabbit.remote;
+
+import javax.jcr.Repository;
+
+import org.apache.jackrabbit.server.SessionProvider;
+
+public class SimpleWebdavServlet extends
+               org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet {
+       private static final long serialVersionUID = -369787931175177080L;
+       private final Repository repository;
+
+       public SimpleWebdavServlet(Repository repository, SessionProvider sessionProvider) {
+               this.repository = repository;
+               setSessionProvider(sessionProvider);
+       }
+
+       public Repository getRepository() {
+               return repository;
+       }
+
+}
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebDavServlet.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebDavServlet.java
deleted file mode 100644 (file)
index ec140f8..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.argeo.jackrabbit.remote;
-
-import java.io.IOException;
-
-import javax.jcr.Repository;
-import javax.jcr.SimpleCredentials;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.jackrabbit.server.SessionProvider;
-import org.apache.jackrabbit.webdav.simple.ResourceConfig;
-import org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet;
-import org.argeo.ArgeoException;
-import org.springframework.core.io.Resource;
-
-public class WebDavServlet extends SimpleWebdavServlet {
-
-       private static final long serialVersionUID = 1L;
-       private final static Log log = LogFactory.getLog(WebDavServlet.class);
-
-       private final Repository repository;
-       private final Resource resourceConfiguration;
-
-       public WebDavServlet(Repository repository, Resource configuration) {
-               this.repository = repository;
-               this.resourceConfiguration = configuration;
-       }
-
-       @Override
-       public void init() throws ServletException {
-               super.init();
-
-               if (resourceConfiguration != null) {
-                       ResourceConfig resourceConfig = new ResourceConfig(null);
-                       try {
-                               resourceConfig.parse(resourceConfiguration.getURL());
-                       } catch (IOException e) {
-                               throw new ArgeoException("Cannot parse resource configuration "
-                                               + resourceConfiguration, e);
-                       }
-                       setResourceConfig(resourceConfig);
-               }
-       }
-
-       @Override
-       protected void service(HttpServletRequest request,
-                       HttpServletResponse response) throws ServletException, IOException {
-               if (log.isTraceEnabled())
-                       log.trace("Received request " + request);
-               super.service(request, response);
-
-               if (log.isTraceEnabled()) {
-                       log.trace("Webdav response: " + response);
-                       // response.
-               }
-       }
-
-       public Repository getRepository() {
-               return repository;
-       }
-
-       @Override
-       public SessionProvider getSessionProvider() {
-               return new CachingSessionProvider(new SimpleCredentials("demo",
-                               "demo".toCharArray()));
-       }
-
-}
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebdavHandlerMapping.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/WebdavHandlerMapping.java
deleted file mode 100644 (file)
index 02132ec..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.argeo.jackrabbit.remote;
-
-import java.util.Properties;
-
-import javax.jcr.Repository;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-
-import org.apache.jackrabbit.webdav.jcr.JCRWebdavServerServlet;
-import org.argeo.jcr.mvc.MultipleRepositoryHandlerMapping;
-import org.springframework.core.io.Resource;
-
-public class WebdavHandlerMapping extends MultipleRepositoryHandlerMapping {
-       private Resource configuration;
-
-       protected HttpServlet createServlet(Repository repository, String pathPrefix)
-                       throws ServletException {
-
-               WebDavServlet servlet = new WebDavServlet(repository, configuration);
-               Properties initParameters = new Properties();
-               initParameters.setProperty(
-                               JCRWebdavServerServlet.INIT_PARAM_RESOURCE_PATH_PREFIX,
-                               pathPrefix);
-               servlet.init(new DelegatingServletConfig(pathPrefix.replace('/', '_'),
-                               initParameters));
-               return servlet;
-       }
-
-       public void setConfiguration(Resource configuration) {
-               this.configuration = configuration;
-       }
-
-}