Improve Jackrabbit
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 26 Nov 2009 10:33:52 +0000 (10:33 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 26 Nov 2009 10:33:52 +0000 (10:33 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@3170 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

16 files changed:
server/modules/org.argeo.server.jackrabbit.repo/META-INF/MANIFEST.MF
server/modules/org.argeo.server.jackrabbit.webapp/META-INF/MANIFEST.MF [deleted file]
server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/applicationContext.xml [deleted file]
server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/config.xml [deleted file]
server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/osgi.xml [deleted file]
server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/web-orig.xml [deleted file]
server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/web.xml [deleted file]
server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/webdav-servlet.xml [deleted file]
server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/applicationContext.xml [new file with mode: 0644]
server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/config.xml [new file with mode: 0644]
server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/osgi.xml [new file with mode: 0644]
server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/web-orig.xml [new file with mode: 0644]
server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/web.xml [new file with mode: 0644]
server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/webdav-servlet.xml [new file with mode: 0644]
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavController.java [deleted file]

index b989f208d70cd68c9cd3b071f19f1986678d59ca..2da11017fb0dc9257c0cb47c35110289838b02f9 100644 (file)
@@ -3,5 +3,6 @@ Bundle-Version: 0.1.2.SNAPSHOT
 Import-Package: javax.jcr,
  org.apache.jackrabbit.core,
  org.apache.jackrabbit.core.config,
+ org.apache.xalan.processor,
  org.argeo.server.jackrabbit,
  org.springframework.beans.factory.config
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/META-INF/MANIFEST.MF b/server/modules/org.argeo.server.jackrabbit.webapp/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index ca8576d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Bundle-SymbolicName: org.argeo.server.jackrabbit.webapp
-Bundle-Version: 0.1.2.SNAPSHOT
-Web-ContextPath: org.argeo.server.jackrabbit.webapp
-Import-Package: javax.jcr,
- javax.servlet,
- javax.servlet.http,
- javax.servlet.resources,
- org.argeo.server.jackrabbit.webdav,
- org.springframework.osgi.web.context.support,
- org.springframework.web.context,
- org.springframework.web.servlet,
- org.springframework.web.servlet.handler
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/applicationContext.xml b/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/applicationContext.xml
deleted file mode 100644 (file)
index c0a2d6f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?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" />
-</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/config.xml b/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/config.xml
deleted file mode 100644 (file)
index f562d76..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You 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.
-  -->
-<!--
-<!DOCTYPE config [
-        <!ELEMENT config (iomanager , propertymanager, (collection | noncollection)? , filter?, mimetypeproperties?) >
-
-        <!ELEMENT iomanager (class, iohandler*) >
-        <!ELEMENT iohandler (class) >
-
-        <!ELEMENT propertymanager (class, propertyhandler*) >
-        <!ELEMENT propertyhandler (class) >
-
-        <!ELEMENT collection (nodetypes) >
-        <!ELEMENT noncollection (nodetypes) >
-
-        <!ELEMENT filter (class, namespaces?, nodetypes?) >
-
-        <!ELEMENT class >
-        <!ATTLIST class
-            name  CDATA #REQUIRED
-        >
-        <!ELEMENT namespaces (prefix | uri)* >
-        <!ELEMENT prefix (CDATA) >
-        <!ELEMENT uri (CDATA) >
-
-        <!ELEMENT nodetypes (nodetype)* >
-        <!ELEMENT nodetype (CDATA) >
-
-        <!ELEMENT mimetypeproperties (mimemapping*, defaultmimetype) >
-
-        <!ELEMENT mimemapping >
-        <!ATTLIST mimemapping
-            extension  CDATA #REQUIRED
-            mimetype  CDATA #REQUIRED
-        >
-
-        <!ELEMENT defaultmimetype (CDATA) >
-]>
--->
-
-<config>
-    <!--
-     Defines the IOManager implementation that is responsible for passing
-     import/export request to the individual IO-handlers.
-    -->
-    <iomanager>
-        <!-- class element defines the manager to be used. The specified class
-             must implement the IOManager interface.
-             Note, that the handlers are being added and called in the order
-             they appear in the configuration.
-        -->
-        <class name="org.apache.jackrabbit.server.io.IOManagerImpl" />
-        <iohandler>
-            <class name="org.apache.jackrabbit.server.io.VersionHandler" />
-        </iohandler>
-        <iohandler>
-            <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
-        </iohandler>
-        <iohandler>
-            <class name="org.apache.jackrabbit.server.io.ZipHandler" />
-        </iohandler>
-        <iohandler>
-            <class name="org.apache.jackrabbit.server.io.XmlHandler" />
-        </iohandler>
-        <iohandler>
-            <class name="org.apache.jackrabbit.server.io.DirListingExportHandler" />
-        </iohandler>
-        <iohandler>
-            <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
-        </iohandler>
-    </iomanager>
-    <!--
-     Example config for iomanager that populates its list of handlers with
-     default values. Therefore the 'iohandler' elements are omited.
-    -->
-    <!--
-    <iomanager>
-        <class name="org.apache.jackrabbit.server.io.DefaultIOManager" />
-    </iomanager>
-    -->
-    <!--
-     Defines the PropertyManager implementation that is responsible for export
-     and import of resource properties.
-    -->
-    <propertymanager>
-        <!-- class element defines the manager to be used. The specified class
-             must implement the PropertyManager interface.
-             Note, that the handlers are being added and called in the order
-             they appear in the configuration.
-        -->
-        <class name="org.apache.jackrabbit.server.io.PropertyManagerImpl" />
-        <propertyhandler>
-            <class name="org.apache.jackrabbit.server.io.VersionHandler" />
-        </propertyhandler>
-        <propertyhandler>
-            <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
-        </propertyhandler>
-        <propertyhandler>
-            <class name="org.apache.jackrabbit.server.io.ZipHandler" />
-        </propertyhandler>
-        <propertyhandler>
-            <class name="org.apache.jackrabbit.server.io.XmlHandler" />
-        </propertyhandler>
-        <propertyhandler>
-            <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
-        </propertyhandler>
-    </propertymanager>
-    <!--
-     Define nodetypes, that should never by displayed as 'collection'
-    -->
-    <noncollection>
-        <nodetypes>
-            <nodetype>nt:file</nodetype>
-            <nodetype>nt:resource</nodetype>
-        </nodetypes>
-    </noncollection>
-    <!--
-     Example: Defines nodetypes, that should always be displayed as 'collection'.
-    -->
-    <!--
-    <collection>
-        <nodetypes>
-            <nodetype>nt:folder</nodetype>
-            <nodetype>rep:root</nodetype>
-        </nodetypes>
-    </collection>
-    -->
-    <!--
-     Filter that allows to prevent certain items from being displayed.
-     Please note, that this has an effect on PROPFIND calls only and does not
-     provide limited access to those items matching any of the filters.
-
-     However specifying a filter may cause problems with PUT or MKCOL if the
-     resource to be created is being filtered out, thus resulting in inconsistent
-     responses (e.g. PUT followed by PROPFIND on parent).
-     -->
-    <filter>
-        <!-- class element defines the resource filter to be used. The specified class
-             must implement the ItemFilter interface -->
-        <class name="org.apache.jackrabbit.webdav.simple.DefaultItemFilter" />
-        <!--
-         Nodetype names to be used to filter child nodes.
-         A child node can be filtered if the declaring nodetype of its definition
-         is one of the nodetype names specified in the nodetypes Element.
-         E.g. defining 'rep:root' as filtered nodetype whould result in jcr:system
-         being hidden but no other child node of the root node, since those
-         are defined by the nodetype nt:unstructered.
-        -->
-        <!--
-        <nodetypes>
-            <nodetype>rep:root</nodetype>
-        </nodetypes>
-        -->
-        <!--
-         Namespace prefixes or uris. Items having a name that matches any of the
-         entries will be filtered.
-        -->
-        <namespaces>
-            <prefix>rep</prefix>
-            <prefix>jcr</prefix>
-            <!--
-            <uri>internal</uri>
-            <uri>http://www.jcp.org/jcr/1.0</uri>
-            -->
-        </namespaces>
-    </filter>
-    
-    <!--
-     Optional 'mimetypeproperties' element.
-     It defines additional or replaces existing mappings for the MimeResolver
-     instance created by the ResourceConfig.
-     The default mappings are defined in org.apache.jackrabbit.server.io.mimetypes.properties.
-     If the default mime type defined by MimeResolver is 'application/octet-stream'.
-    -->
-    <!--
-    <mimetypeproperties>
-        <mimemapping extension="rtf" mimetype="application/rtf" />
-        <mimemapping extension="ott" mimetype="application/vnd.oasis.opendocument.text-template" />
-        <defaultmimetype>text/html</defaultmimetype>
-    </mimetypeproperties>
-    -->
-</config>
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/osgi.xml b/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/osgi.xml
deleted file mode 100644 (file)
index 493a6b8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
-       xmlns:security="http://www.springframework.org/schema/security"\r
-       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
-       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
-       http://www.springframework.org/schema/beans   \r
-       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
-       http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd">\r
-\r
-       <reference id="repository" interface="javax.jcr.Repository" />\r
-</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/web-orig.xml b/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/web-orig.xml
deleted file mode 100644 (file)
index a8e5fdd..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You 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.
-  -->
-
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app>
-    <display-name>Jackrabbit JCR Server</display-name>
-
-    <!-- ====================================================================== -->
-    <!-- L O G G I N G   S E R V L E T                                          -->
-    <!-- ====================================================================== -->
-    
-    <!-- mbaudier
-    <servlet>
-        <servlet-name>Logging</servlet-name>
-        <description>The logging servlet configures the Log4J logging facility.</description>
-        <servlet-class>org.apache.jackrabbit.j2ee.LoggingServlet</servlet-class>
-
-        <init-param>
-            <param-name>log4j-config</param-name>
-            <param-value>/WEB-INF/log4j.xml</param-value>
-            <description>initial log4j configuration</description>
-        </init-param>
-
-        <load-on-startup>1</load-on-startup>
-    </servlet>
- -->
-    <!-- ====================================================================== -->
-    <!-- R E P O S I T O R Y   S T A R T U P  S E R V L E T                     -->
-    <!-- ====================================================================== -->
-    <!-- mbaudier
-    <servlet>
-        <servlet-name>RepositoryStartup</servlet-name>
-        <description>
-            Repository servlet that starts the repository and registers it to JNDI ans RMI.
-            If you already have the repository registered in this appservers JNDI context,
-            or if its accessible via RMI, you do not need to use this servlet.
-        </description>
-        <servlet-class>org.apache.jackrabbit.j2ee.RepositoryStartupServlet</servlet-class>
-
-        <init-param>
-            <param-name>bootstrap-config</param-name>
-            <param-value>jackrabbit/bootstrap.properties</param-value>
-            <description>
-                Property file that hold the same initialization properties than
-                the init-params below. If a parameter is specified in both
-                places the one in the bootstrap-config wins.
-            </description>
-        </init-param>
- -->
-        <!--
-        <init-param>
-            <param-name>repository-config</param-name>
-            <param-value>/WEB-INF/repository/repository.xml</param-value>
-            <description>the repository config location</description>
-        </init-param>
-
-        <init-param>
-            <param-name>repository-home</param-name>
-            <param-value>jackrabbit/repository</param-value>
-            <description>the repository home</description>
-        </init-param>
-
-        <init-param>
-            <param-name>repository-name</param-name>
-            <param-value>jackrabbit.repository</param-value>
-            <description>Repository Name under which the repository is registered via JNDI/RMI</description>
-        </init-param>
-        -->
-
-        <!--
-            the following 3 parameters deal with registering the repository to
-            a RMI registry. if all parameters are omitted, the repository will
-            not be registered.
-        -->
-        <!--
-        <init-param>
-            <param-name>rmi-port</param-name>
-            <param-value>0</param-value>
-            <description>
-                The RMI port for registering the repository in the RMI Registry.
-                If equals 0, the default port is used.
-            </description>
-        </init-param>
-        <init-param>
-            <param-name>rmi-host</param-name>
-            <param-value>localhost</param-value>
-            <description>
-                The RMI host for registering the repository in the RMI Registry.
-                If equals "" or missing, the default host is used.
-            </description>
-        </init-param>
-        <init-param>
-            <param-name>rmi-uri</param-name>
-            <param-value></param-value>
-            <description>
-                The RMI uri for registering the repository in the RMI Registry.
-                If missing, the uri is composed using the other rmi parameters
-                and will have the format: //{rmi-host}:{rmi-port}/{repository-name}
-            </description>
-        </init-param>
-        -->
-        <!--
-            JNDI environment variables for creating the initial context
-            (all init parameters starting with java.naming.* will be added to the initial context environment).
-        -->
-        <!--
-        <init-param>
-            <param-name>java.naming.provider.url</param-name>
-            <param-value>http://www.apache.org/jackrabbit</param-value>
-        </init-param>
-        <init-param>
-            <param-name>java.naming.factory.initial</param-name>
-            <param-value>org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory</param-value>
-        </init-param>
-        -->
-        
-        <!-- mbaudier
-        <load-on-startup>2</load-on-startup>
-    </servlet>
- -->
-
-    <!-- ====================================================================== -->
-    <!-- R E P O S I T O R Y   S E R V L E T                                    -->
-    <!-- ====================================================================== -->
-    <servlet>
-        <servlet-name>Repository</servlet-name>
-        <description>
-            This servlet provides other servlets and jsps a common way to access
-            the repository. The repository can be accessed via JNDI, RMI or Webdav.
-        </description>
-        <servlet-class>org.apache.jackrabbit.j2ee.RepositoryAccessServlet</servlet-class>
-
-        <init-param>
-            <param-name>bootstrap-config</param-name>
-            <param-value>jackrabbit/bootstrap.properties</param-value>
-            <description>
-                Property file that hold the same initialization properties than
-                the init-params below. If a parameter is specified in both
-                places the one in the bootstrap-config wins.
-            </description>
-        </init-param>
-        <!-- 
-        <init-param>
-          <param-name>repository.context.attribute.name</param-name>
-          <param-value>javax.jcr.Repository</param-value>
-          <description>
-            If this is set, the RepositoryAccessServlet expects a Repository in the ServletContext 
-            attribute having this name. This allows servlets of this module to be used with repositories
-            intialized by the jackrabbit-jcr-servlet module utilities.
-          </description>
-        </init-param>
-         -->
-        <!--
-        <init-param>
-            <param-name>repository-name</param-name>
-            <param-value>jackrabbit.repository</param-value>
-            <description>Repository Name that is used to retrieve it via JNDI</description>
-        </init-param>
-        -->
-        <!--
-            JNDI environment variables for creating the initial context
-            (all init parameters starting with java.naming.* will be added to the initial context environment).
-        -->
-        <!--
-        <init-param>
-            <param-name>java.naming.provider.url</param-name>
-            <param-value>http://www.apache.org/jackrabbit</param-value>
-        </init-param>
-        <init-param>
-            <param-name>java.naming.factory.initial</param-name>
-            <param-value>org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory</param-value>
-        </init-param>
-        -->
-        <!--
-            RMI url, if RMI remoting is needed
-        -->
-        <!--
-        <init-param>
-            <param-name>rmi-uri</param-name>
-            <param-value>///jackrabbit.repository</param-value>
-            <description>The URI for the RMI connection.</description>
-        </init-param>
-        -->
-
-        <load-on-startup>3</load-on-startup>
-    </servlet>
-
-    <!-- ====================================================================== -->
-    <!-- W E B D A V  S E R V L E T                                              -->
-    <!-- ====================================================================== -->
-    <servlet>
-        <servlet-name>Webdav</servlet-name>
-        <description>
-            The webdav servlet that connects HTTP request to the repository.
-        </description>
-        <servlet-class>org.apache.jackrabbit.j2ee.SimpleWebdavServlet</servlet-class>
-
-        <init-param>
-            <param-name>resource-path-prefix</param-name>
-            <param-value>/repository</param-value>
-            <description>
-                defines the prefix for spooling resources out of the repository.
-            </description>
-        </init-param>
-        <!--
-         <init-param>
-             <param-name>missing-auth-mapping</param-name>
-             <param-value>anonymous:anonymous</param-value>
-             <description>
-                 Defines how a missing authorization header should be handled.
-                 1) If this init-param is missing, a 401 response is generated.
-                    This is suiteable for clients (eg. webdav clients) for which
-                    sending a proper authorization header is not possible if the
-                    server never sent a 401.
-                 2) If this init-param is present with an empty value,
-                    null-credentials are returned, thus forcing an null login
-                    on the repository.
-                 3) If this init-param has a 'user:password' value, the respective
-                    simple credentials are generated.
-             </description>
-         </init-param>
-         -->
-        <!--
-            Optional parameter to define the value of the 'WWW-Authenticate' header
-        -->
-        <!--
-        <init-param>
-            <param-name>authenticate-header</param-name>
-            <param-value>Basic realm="Jackrabbit Webdav Server"</param-value>
-            <description>
-                Defines the value of the 'WWW-Authenticate' header.
-            </description>
-        </init-param>
-        -->
-        <!--
-            Parameter used to configure behaviour of webdav resources such as:
-            - destinction between collections and non-collections
-            - resource filtering
-        -->
-        <init-param>
-            <param-name>resource-config</param-name>
-            <param-value>/WEB-INF/config.xml</param-value>
-            <description>
-                Defines various dav-resource configuration parameters.
-            </description>
-        </init-param>
-        <load-on-startup>4</load-on-startup>
-    </servlet>
-
-    <!-- ====================================================================== -->
-    <!-- J C R  R E M O T I N G  S E R V L E T                                  -->
-    <!-- ====================================================================== -->
-    <servlet>
-        <servlet-name>JCRWebdavServer</servlet-name>
-        <description>
-            The servlet used to remote JCR calls over HTTP.
-        </description>
-        <servlet-class>org.apache.jackrabbit.j2ee.JcrRemotingServlet</servlet-class>
-        <init-param>
-            <param-name>missing-auth-mapping</param-name>
-            <param-value></param-value>
-            <description>
-                Defines how a missing authorization header should be handled.
-                1) If this init-param is missing, a 401 response is generated.
-                This is suiteable for clients (eg. webdav clients) for which
-                sending a proper authorization header is not possible if the
-                server never sent a 401.
-                2) If this init-param is present with an empty value,
-                null-credentials are returned, thus forcing an null login
-                on the repository.
-                3) If this init-param has a 'user:password' value, the respective
-                simple credentials are generated.
-            </description>
-        </init-param>
-        <!--
-            Optional parameter to define the value of the 'WWW-Authenticate' header
-        -->
-        <!--
-        <init-param>
-            <param-name>authenticate-header</param-name>
-            <param-value>Basic realm="Jackrabbit Webdav Server"</param-value>
-            <description>
-                Defines the value of the 'WWW-Authenticate' header.
-            </description>
-        </init-param>
-        -->
-        <init-param>
-            <param-name>resource-path-prefix</param-name>
-            <param-value>/server</param-value>
-            <description>
-                defines the prefix for spooling resources out of the repository.
-            </description>
-        </init-param>
-        <!--
-            Init parameters specific for JcrRemotingServlet
-        -->
-        <!--
-        <init-param>
-            <param-name>home</param-name>
-            <param-value></param-value>
-            <description>JcrRemotingServlet: Optional home directory for JcrRemotingServlet temporary files (default: "jackrabbit")</description>
-        </init-param>
-        <init-param>
-            <param-name>temp-directory</param-name>
-            <param-value></param-value>
-            <description>JcrRemotingServlet: Optional temporary directory name (under home, default: "tmp")</description>
-        </init-param>
-        -->
-        <init-param>
-            <param-name>batchread-config</param-name>
-            <param-value>/WEB-INF/batchread.properties</param-value>
-            <description>JcrRemotingServlet: Optional mapping from node type names to default depth.</description>
-        </init-param>        
-        <load-on-startup>5</load-on-startup>
-    </servlet>
-
-    <!-- ====================================================================== -->
-    <!-- R M I   B I N D I N G   S E R V L E T                                  -->
-    <!-- ====================================================================== -->
-    <!-- mbaudier
-    <servlet>
-      <servlet-name>RMI</servlet-name>
-      <servlet-class>org.apache.jackrabbit.servlet.remote.RemoteBindingServlet</servlet-class>
-    </servlet>
- -->
-    <!-- ====================================================================== -->
-    <!-- S E R V L E T   M A P P I N G                                          -->
-    <!-- ====================================================================== -->
-    
-    <!-- mbaudier
-    <servlet-mapping>
-        <servlet-name>RepositoryStartup</servlet-name>
-        <url-pattern>/admin/*</url-pattern>
-    </servlet-mapping>
-     -->
-    <servlet-mapping>
-        <servlet-name>Webdav</servlet-name>
-        <url-pattern>/repository/*</url-pattern>
-    </servlet-mapping>
-    <servlet-mapping>
-        <servlet-name>JCRWebdavServer</servlet-name>
-        <url-pattern>/server/*</url-pattern>
-    </servlet-mapping>
-    <!-- mbaudier
-    <servlet-mapping>
-        <servlet-name>RMI</servlet-name>
-        <url-pattern>/rmi</url-pattern>
-    </servlet-mapping>
- -->
-    <!-- ====================================================================== -->
-    <!-- W E L C O M E   F I L E S                                              -->
-    <!-- ====================================================================== -->
-    <welcome-file-list>
-      <welcome-file>index.jsp</welcome-file>
-    </welcome-file-list>
-
-    <error-page>
-        <exception-type>org.apache.jackrabbit.j2ee.JcrApiNotFoundException</exception-type>
-        <location>/error/classpath.jsp</location>
-    </error-page>
-    <error-page>
-        <exception-type>javax.jcr.RepositoryException</exception-type>
-        <location>/error/repository.jsp</location>
-    </error-page>
-    
-</web-app>
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/web.xml b/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/web.xml
deleted file mode 100644 (file)
index bcc8a1e..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-       version="2.5">
-
-       <display-name>Jackrabbit Webapp</display-name>
-
-       <!-- General -->
-       <context-param>
-               <param-name>contextConfigLocation</param-name>
-               <param-value>/WEB-INF/applicationContext.xml</param-value>
-       </context-param>
-
-       <listener>
-               <display-name>Spring Context</display-name>
-               <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
-       </listener>
-       <context-param>
-               <param-name>contextClass</param-name>
-               <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
-       </context-param>
-
-       <!-- Simple Webdav -->
-       <servlet>
-               <servlet-name>webdav</servlet-name>
-               <servlet-class>org.argeo.server.jackrabbit.webdav.ExtendedDispatcherServlet</servlet-class>
-               <init-param>
-                       <param-name>contextClass</param-name>
-                       <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
-               </init-param>
-               <init-param>
-                       <param-name>dispatchOptionsRequest</param-name>
-                       <param-value>true</param-value>
-               </init-param>
-               <load-on-startup>1</load-on-startup>
-       </servlet>
-
-       <servlet-mapping>
-               <servlet-name>webdav</servlet-name>
-               <url-pattern>/default/*</url-pattern>
-       </servlet-mapping>
-
-</web-app>
diff --git a/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/webdav-servlet.xml b/server/modules/org.argeo.server.jackrabbit.webapp/WEB-INF/webdav-servlet.xml
deleted file mode 100644 (file)
index cfa47ee..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?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">
-
-       <bean id="webdavServlet" class="org.argeo.server.jackrabbit.webdav.SimpleWebDavServlet">
-               <property name="repository" ref="repository" />
-               <property name="resourceConfiguration" value="osgibundle:/WEB-INF/config.xml" />
-       </bean>
-
-       <bean
-               class="org.springframework.web.servlet.handler.SimpleServletPostProcessor" />
-
-       <bean id="servletHandler"
-               class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
-
-       <bean id="urlMapping"
-               class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
-               <property name="mappings">
-                       <props>
-                               <prop key="**">webdavServlet</prop>
-                       </props>
-               </property>
-       </bean>
-
-</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF b/server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..4232d62
--- /dev/null
@@ -0,0 +1,12 @@
+Bundle-SymbolicName: org.argeo.server.jackrabbit.webdav
+Bundle-Version: 0.1.2.SNAPSHOT
+Web-ContextPath: webdav
+Import-Package: javax.jcr,
+ javax.servlet,
+ javax.servlet.http,
+ javax.servlet.resources,
+ org.argeo.server.jackrabbit.webdav,
+ org.springframework.osgi.web.context.support,
+ org.springframework.web.context,
+ org.springframework.web.servlet,
+ org.springframework.web.servlet.handler
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/applicationContext.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/applicationContext.xml
new file mode 100644 (file)
index 0000000..c0a2d6f
--- /dev/null
@@ -0,0 +1,11 @@
+<?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" />
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/config.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/config.xml
new file mode 100644 (file)
index 0000000..f562d76
--- /dev/null
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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.
+  -->
+<!--
+<!DOCTYPE config [
+        <!ELEMENT config (iomanager , propertymanager, (collection | noncollection)? , filter?, mimetypeproperties?) >
+
+        <!ELEMENT iomanager (class, iohandler*) >
+        <!ELEMENT iohandler (class) >
+
+        <!ELEMENT propertymanager (class, propertyhandler*) >
+        <!ELEMENT propertyhandler (class) >
+
+        <!ELEMENT collection (nodetypes) >
+        <!ELEMENT noncollection (nodetypes) >
+
+        <!ELEMENT filter (class, namespaces?, nodetypes?) >
+
+        <!ELEMENT class >
+        <!ATTLIST class
+            name  CDATA #REQUIRED
+        >
+        <!ELEMENT namespaces (prefix | uri)* >
+        <!ELEMENT prefix (CDATA) >
+        <!ELEMENT uri (CDATA) >
+
+        <!ELEMENT nodetypes (nodetype)* >
+        <!ELEMENT nodetype (CDATA) >
+
+        <!ELEMENT mimetypeproperties (mimemapping*, defaultmimetype) >
+
+        <!ELEMENT mimemapping >
+        <!ATTLIST mimemapping
+            extension  CDATA #REQUIRED
+            mimetype  CDATA #REQUIRED
+        >
+
+        <!ELEMENT defaultmimetype (CDATA) >
+]>
+-->
+
+<config>
+    <!--
+     Defines the IOManager implementation that is responsible for passing
+     import/export request to the individual IO-handlers.
+    -->
+    <iomanager>
+        <!-- class element defines the manager to be used. The specified class
+             must implement the IOManager interface.
+             Note, that the handlers are being added and called in the order
+             they appear in the configuration.
+        -->
+        <class name="org.apache.jackrabbit.server.io.IOManagerImpl" />
+        <iohandler>
+            <class name="org.apache.jackrabbit.server.io.VersionHandler" />
+        </iohandler>
+        <iohandler>
+            <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
+        </iohandler>
+        <iohandler>
+            <class name="org.apache.jackrabbit.server.io.ZipHandler" />
+        </iohandler>
+        <iohandler>
+            <class name="org.apache.jackrabbit.server.io.XmlHandler" />
+        </iohandler>
+        <iohandler>
+            <class name="org.apache.jackrabbit.server.io.DirListingExportHandler" />
+        </iohandler>
+        <iohandler>
+            <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
+        </iohandler>
+    </iomanager>
+    <!--
+     Example config for iomanager that populates its list of handlers with
+     default values. Therefore the 'iohandler' elements are omited.
+    -->
+    <!--
+    <iomanager>
+        <class name="org.apache.jackrabbit.server.io.DefaultIOManager" />
+    </iomanager>
+    -->
+    <!--
+     Defines the PropertyManager implementation that is responsible for export
+     and import of resource properties.
+    -->
+    <propertymanager>
+        <!-- class element defines the manager to be used. The specified class
+             must implement the PropertyManager interface.
+             Note, that the handlers are being added and called in the order
+             they appear in the configuration.
+        -->
+        <class name="org.apache.jackrabbit.server.io.PropertyManagerImpl" />
+        <propertyhandler>
+            <class name="org.apache.jackrabbit.server.io.VersionHandler" />
+        </propertyhandler>
+        <propertyhandler>
+            <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
+        </propertyhandler>
+        <propertyhandler>
+            <class name="org.apache.jackrabbit.server.io.ZipHandler" />
+        </propertyhandler>
+        <propertyhandler>
+            <class name="org.apache.jackrabbit.server.io.XmlHandler" />
+        </propertyhandler>
+        <propertyhandler>
+            <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
+        </propertyhandler>
+    </propertymanager>
+    <!--
+     Define nodetypes, that should never by displayed as 'collection'
+    -->
+    <noncollection>
+        <nodetypes>
+            <nodetype>nt:file</nodetype>
+            <nodetype>nt:resource</nodetype>
+        </nodetypes>
+    </noncollection>
+    <!--
+     Example: Defines nodetypes, that should always be displayed as 'collection'.
+    -->
+    <!--
+    <collection>
+        <nodetypes>
+            <nodetype>nt:folder</nodetype>
+            <nodetype>rep:root</nodetype>
+        </nodetypes>
+    </collection>
+    -->
+    <!--
+     Filter that allows to prevent certain items from being displayed.
+     Please note, that this has an effect on PROPFIND calls only and does not
+     provide limited access to those items matching any of the filters.
+
+     However specifying a filter may cause problems with PUT or MKCOL if the
+     resource to be created is being filtered out, thus resulting in inconsistent
+     responses (e.g. PUT followed by PROPFIND on parent).
+     -->
+    <filter>
+        <!-- class element defines the resource filter to be used. The specified class
+             must implement the ItemFilter interface -->
+        <class name="org.apache.jackrabbit.webdav.simple.DefaultItemFilter" />
+        <!--
+         Nodetype names to be used to filter child nodes.
+         A child node can be filtered if the declaring nodetype of its definition
+         is one of the nodetype names specified in the nodetypes Element.
+         E.g. defining 'rep:root' as filtered nodetype whould result in jcr:system
+         being hidden but no other child node of the root node, since those
+         are defined by the nodetype nt:unstructered.
+        -->
+        <!--
+        <nodetypes>
+            <nodetype>rep:root</nodetype>
+        </nodetypes>
+        -->
+        <!--
+         Namespace prefixes or uris. Items having a name that matches any of the
+         entries will be filtered.
+        -->
+        <namespaces>
+            <prefix>rep</prefix>
+            <prefix>jcr</prefix>
+            <!--
+            <uri>internal</uri>
+            <uri>http://www.jcp.org/jcr/1.0</uri>
+            -->
+        </namespaces>
+    </filter>
+    
+    <!--
+     Optional 'mimetypeproperties' element.
+     It defines additional or replaces existing mappings for the MimeResolver
+     instance created by the ResourceConfig.
+     The default mappings are defined in org.apache.jackrabbit.server.io.mimetypes.properties.
+     If the default mime type defined by MimeResolver is 'application/octet-stream'.
+    -->
+    <!--
+    <mimetypeproperties>
+        <mimemapping extension="rtf" mimetype="application/rtf" />
+        <mimemapping extension="ott" mimetype="application/vnd.oasis.opendocument.text-template" />
+        <defaultmimetype>text/html</defaultmimetype>
+    </mimetypeproperties>
+    -->
+</config>
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/osgi.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/osgi.xml
new file mode 100644 (file)
index 0000000..493a6b8
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+       xmlns:security="http://www.springframework.org/schema/security"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+       http://www.springframework.org/schema/beans   \r
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
+       http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd">\r
+\r
+       <reference id="repository" interface="javax.jcr.Repository" />\r
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/web-orig.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/web-orig.xml
new file mode 100644 (file)
index 0000000..a8e5fdd
--- /dev/null
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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.
+  -->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+    <display-name>Jackrabbit JCR Server</display-name>
+
+    <!-- ====================================================================== -->
+    <!-- L O G G I N G   S E R V L E T                                          -->
+    <!-- ====================================================================== -->
+    
+    <!-- mbaudier
+    <servlet>
+        <servlet-name>Logging</servlet-name>
+        <description>The logging servlet configures the Log4J logging facility.</description>
+        <servlet-class>org.apache.jackrabbit.j2ee.LoggingServlet</servlet-class>
+
+        <init-param>
+            <param-name>log4j-config</param-name>
+            <param-value>/WEB-INF/log4j.xml</param-value>
+            <description>initial log4j configuration</description>
+        </init-param>
+
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+ -->
+    <!-- ====================================================================== -->
+    <!-- R E P O S I T O R Y   S T A R T U P  S E R V L E T                     -->
+    <!-- ====================================================================== -->
+    <!-- mbaudier
+    <servlet>
+        <servlet-name>RepositoryStartup</servlet-name>
+        <description>
+            Repository servlet that starts the repository and registers it to JNDI ans RMI.
+            If you already have the repository registered in this appservers JNDI context,
+            or if its accessible via RMI, you do not need to use this servlet.
+        </description>
+        <servlet-class>org.apache.jackrabbit.j2ee.RepositoryStartupServlet</servlet-class>
+
+        <init-param>
+            <param-name>bootstrap-config</param-name>
+            <param-value>jackrabbit/bootstrap.properties</param-value>
+            <description>
+                Property file that hold the same initialization properties than
+                the init-params below. If a parameter is specified in both
+                places the one in the bootstrap-config wins.
+            </description>
+        </init-param>
+ -->
+        <!--
+        <init-param>
+            <param-name>repository-config</param-name>
+            <param-value>/WEB-INF/repository/repository.xml</param-value>
+            <description>the repository config location</description>
+        </init-param>
+
+        <init-param>
+            <param-name>repository-home</param-name>
+            <param-value>jackrabbit/repository</param-value>
+            <description>the repository home</description>
+        </init-param>
+
+        <init-param>
+            <param-name>repository-name</param-name>
+            <param-value>jackrabbit.repository</param-value>
+            <description>Repository Name under which the repository is registered via JNDI/RMI</description>
+        </init-param>
+        -->
+
+        <!--
+            the following 3 parameters deal with registering the repository to
+            a RMI registry. if all parameters are omitted, the repository will
+            not be registered.
+        -->
+        <!--
+        <init-param>
+            <param-name>rmi-port</param-name>
+            <param-value>0</param-value>
+            <description>
+                The RMI port for registering the repository in the RMI Registry.
+                If equals 0, the default port is used.
+            </description>
+        </init-param>
+        <init-param>
+            <param-name>rmi-host</param-name>
+            <param-value>localhost</param-value>
+            <description>
+                The RMI host for registering the repository in the RMI Registry.
+                If equals "" or missing, the default host is used.
+            </description>
+        </init-param>
+        <init-param>
+            <param-name>rmi-uri</param-name>
+            <param-value></param-value>
+            <description>
+                The RMI uri for registering the repository in the RMI Registry.
+                If missing, the uri is composed using the other rmi parameters
+                and will have the format: //{rmi-host}:{rmi-port}/{repository-name}
+            </description>
+        </init-param>
+        -->
+        <!--
+            JNDI environment variables for creating the initial context
+            (all init parameters starting with java.naming.* will be added to the initial context environment).
+        -->
+        <!--
+        <init-param>
+            <param-name>java.naming.provider.url</param-name>
+            <param-value>http://www.apache.org/jackrabbit</param-value>
+        </init-param>
+        <init-param>
+            <param-name>java.naming.factory.initial</param-name>
+            <param-value>org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory</param-value>
+        </init-param>
+        -->
+        
+        <!-- mbaudier
+        <load-on-startup>2</load-on-startup>
+    </servlet>
+ -->
+
+    <!-- ====================================================================== -->
+    <!-- R E P O S I T O R Y   S E R V L E T                                    -->
+    <!-- ====================================================================== -->
+    <servlet>
+        <servlet-name>Repository</servlet-name>
+        <description>
+            This servlet provides other servlets and jsps a common way to access
+            the repository. The repository can be accessed via JNDI, RMI or Webdav.
+        </description>
+        <servlet-class>org.apache.jackrabbit.j2ee.RepositoryAccessServlet</servlet-class>
+
+        <init-param>
+            <param-name>bootstrap-config</param-name>
+            <param-value>jackrabbit/bootstrap.properties</param-value>
+            <description>
+                Property file that hold the same initialization properties than
+                the init-params below. If a parameter is specified in both
+                places the one in the bootstrap-config wins.
+            </description>
+        </init-param>
+        <!-- 
+        <init-param>
+          <param-name>repository.context.attribute.name</param-name>
+          <param-value>javax.jcr.Repository</param-value>
+          <description>
+            If this is set, the RepositoryAccessServlet expects a Repository in the ServletContext 
+            attribute having this name. This allows servlets of this module to be used with repositories
+            intialized by the jackrabbit-jcr-servlet module utilities.
+          </description>
+        </init-param>
+         -->
+        <!--
+        <init-param>
+            <param-name>repository-name</param-name>
+            <param-value>jackrabbit.repository</param-value>
+            <description>Repository Name that is used to retrieve it via JNDI</description>
+        </init-param>
+        -->
+        <!--
+            JNDI environment variables for creating the initial context
+            (all init parameters starting with java.naming.* will be added to the initial context environment).
+        -->
+        <!--
+        <init-param>
+            <param-name>java.naming.provider.url</param-name>
+            <param-value>http://www.apache.org/jackrabbit</param-value>
+        </init-param>
+        <init-param>
+            <param-name>java.naming.factory.initial</param-name>
+            <param-value>org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory</param-value>
+        </init-param>
+        -->
+        <!--
+            RMI url, if RMI remoting is needed
+        -->
+        <!--
+        <init-param>
+            <param-name>rmi-uri</param-name>
+            <param-value>///jackrabbit.repository</param-value>
+            <description>The URI for the RMI connection.</description>
+        </init-param>
+        -->
+
+        <load-on-startup>3</load-on-startup>
+    </servlet>
+
+    <!-- ====================================================================== -->
+    <!-- W E B D A V  S E R V L E T                                              -->
+    <!-- ====================================================================== -->
+    <servlet>
+        <servlet-name>Webdav</servlet-name>
+        <description>
+            The webdav servlet that connects HTTP request to the repository.
+        </description>
+        <servlet-class>org.apache.jackrabbit.j2ee.SimpleWebdavServlet</servlet-class>
+
+        <init-param>
+            <param-name>resource-path-prefix</param-name>
+            <param-value>/repository</param-value>
+            <description>
+                defines the prefix for spooling resources out of the repository.
+            </description>
+        </init-param>
+        <!--
+         <init-param>
+             <param-name>missing-auth-mapping</param-name>
+             <param-value>anonymous:anonymous</param-value>
+             <description>
+                 Defines how a missing authorization header should be handled.
+                 1) If this init-param is missing, a 401 response is generated.
+                    This is suiteable for clients (eg. webdav clients) for which
+                    sending a proper authorization header is not possible if the
+                    server never sent a 401.
+                 2) If this init-param is present with an empty value,
+                    null-credentials are returned, thus forcing an null login
+                    on the repository.
+                 3) If this init-param has a 'user:password' value, the respective
+                    simple credentials are generated.
+             </description>
+         </init-param>
+         -->
+        <!--
+            Optional parameter to define the value of the 'WWW-Authenticate' header
+        -->
+        <!--
+        <init-param>
+            <param-name>authenticate-header</param-name>
+            <param-value>Basic realm="Jackrabbit Webdav Server"</param-value>
+            <description>
+                Defines the value of the 'WWW-Authenticate' header.
+            </description>
+        </init-param>
+        -->
+        <!--
+            Parameter used to configure behaviour of webdav resources such as:
+            - destinction between collections and non-collections
+            - resource filtering
+        -->
+        <init-param>
+            <param-name>resource-config</param-name>
+            <param-value>/WEB-INF/config.xml</param-value>
+            <description>
+                Defines various dav-resource configuration parameters.
+            </description>
+        </init-param>
+        <load-on-startup>4</load-on-startup>
+    </servlet>
+
+    <!-- ====================================================================== -->
+    <!-- J C R  R E M O T I N G  S E R V L E T                                  -->
+    <!-- ====================================================================== -->
+    <servlet>
+        <servlet-name>JCRWebdavServer</servlet-name>
+        <description>
+            The servlet used to remote JCR calls over HTTP.
+        </description>
+        <servlet-class>org.apache.jackrabbit.j2ee.JcrRemotingServlet</servlet-class>
+        <init-param>
+            <param-name>missing-auth-mapping</param-name>
+            <param-value></param-value>
+            <description>
+                Defines how a missing authorization header should be handled.
+                1) If this init-param is missing, a 401 response is generated.
+                This is suiteable for clients (eg. webdav clients) for which
+                sending a proper authorization header is not possible if the
+                server never sent a 401.
+                2) If this init-param is present with an empty value,
+                null-credentials are returned, thus forcing an null login
+                on the repository.
+                3) If this init-param has a 'user:password' value, the respective
+                simple credentials are generated.
+            </description>
+        </init-param>
+        <!--
+            Optional parameter to define the value of the 'WWW-Authenticate' header
+        -->
+        <!--
+        <init-param>
+            <param-name>authenticate-header</param-name>
+            <param-value>Basic realm="Jackrabbit Webdav Server"</param-value>
+            <description>
+                Defines the value of the 'WWW-Authenticate' header.
+            </description>
+        </init-param>
+        -->
+        <init-param>
+            <param-name>resource-path-prefix</param-name>
+            <param-value>/server</param-value>
+            <description>
+                defines the prefix for spooling resources out of the repository.
+            </description>
+        </init-param>
+        <!--
+            Init parameters specific for JcrRemotingServlet
+        -->
+        <!--
+        <init-param>
+            <param-name>home</param-name>
+            <param-value></param-value>
+            <description>JcrRemotingServlet: Optional home directory for JcrRemotingServlet temporary files (default: "jackrabbit")</description>
+        </init-param>
+        <init-param>
+            <param-name>temp-directory</param-name>
+            <param-value></param-value>
+            <description>JcrRemotingServlet: Optional temporary directory name (under home, default: "tmp")</description>
+        </init-param>
+        -->
+        <init-param>
+            <param-name>batchread-config</param-name>
+            <param-value>/WEB-INF/batchread.properties</param-value>
+            <description>JcrRemotingServlet: Optional mapping from node type names to default depth.</description>
+        </init-param>        
+        <load-on-startup>5</load-on-startup>
+    </servlet>
+
+    <!-- ====================================================================== -->
+    <!-- R M I   B I N D I N G   S E R V L E T                                  -->
+    <!-- ====================================================================== -->
+    <!-- mbaudier
+    <servlet>
+      <servlet-name>RMI</servlet-name>
+      <servlet-class>org.apache.jackrabbit.servlet.remote.RemoteBindingServlet</servlet-class>
+    </servlet>
+ -->
+    <!-- ====================================================================== -->
+    <!-- S E R V L E T   M A P P I N G                                          -->
+    <!-- ====================================================================== -->
+    
+    <!-- mbaudier
+    <servlet-mapping>
+        <servlet-name>RepositoryStartup</servlet-name>
+        <url-pattern>/admin/*</url-pattern>
+    </servlet-mapping>
+     -->
+    <servlet-mapping>
+        <servlet-name>Webdav</servlet-name>
+        <url-pattern>/repository/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>JCRWebdavServer</servlet-name>
+        <url-pattern>/server/*</url-pattern>
+    </servlet-mapping>
+    <!-- mbaudier
+    <servlet-mapping>
+        <servlet-name>RMI</servlet-name>
+        <url-pattern>/rmi</url-pattern>
+    </servlet-mapping>
+ -->
+    <!-- ====================================================================== -->
+    <!-- W E L C O M E   F I L E S                                              -->
+    <!-- ====================================================================== -->
+    <welcome-file-list>
+      <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+
+    <error-page>
+        <exception-type>org.apache.jackrabbit.j2ee.JcrApiNotFoundException</exception-type>
+        <location>/error/classpath.jsp</location>
+    </error-page>
+    <error-page>
+        <exception-type>javax.jcr.RepositoryException</exception-type>
+        <location>/error/repository.jsp</location>
+    </error-page>
+    
+</web-app>
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/web.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/web.xml
new file mode 100644 (file)
index 0000000..1a7a923
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+       version="2.5">
+
+       <display-name>Jackrabbit Webdav Standard</display-name>
+
+       <!-- General -->
+       <context-param>
+               <param-name>contextConfigLocation</param-name>
+               <param-value>/WEB-INF/applicationContext.xml</param-value>
+       </context-param>
+
+       <listener>
+               <display-name>Spring Context</display-name>
+               <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+       </listener>
+       <context-param>
+               <param-name>contextClass</param-name>
+               <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+       </context-param>
+
+       <!-- Simple Webdav -->
+       <servlet>
+               <servlet-name>webdav</servlet-name>
+               <servlet-class>org.argeo.server.jackrabbit.webdav.ExtendedDispatcherServlet</servlet-class>
+               <init-param>
+                       <param-name>contextClass</param-name>
+                       <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+               </init-param>
+               <init-param>
+                       <param-name>dispatchOptionsRequest</param-name>
+                       <param-value>true</param-value>
+               </init-param>
+               <load-on-startup>1</load-on-startup>
+       </servlet>
+
+       <servlet-mapping>
+               <servlet-name>webdav</servlet-name>
+               <url-pattern>/default/*</url-pattern>
+       </servlet-mapping>
+
+</web-app>
diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/webdav-servlet.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/webdav-servlet.xml
new file mode 100644 (file)
index 0000000..cfa47ee
--- /dev/null
@@ -0,0 +1,30 @@
+<?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">
+
+       <bean id="webdavServlet" class="org.argeo.server.jackrabbit.webdav.SimpleWebDavServlet">
+               <property name="repository" ref="repository" />
+               <property name="resourceConfiguration" value="osgibundle:/WEB-INF/config.xml" />
+       </bean>
+
+       <bean
+               class="org.springframework.web.servlet.handler.SimpleServletPostProcessor" />
+
+       <bean id="servletHandler"
+               class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
+
+       <bean id="urlMapping"
+               class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
+               <property name="mappings">
+                       <props>
+                               <prop key="**">webdavServlet</prop>
+                       </props>
+               </property>
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavController.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavController.java
deleted file mode 100644 (file)
index ec611c5..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.argeo.server.jackrabbit.webdav;
-
-import org.springframework.core.io.Resource;
-import org.springframework.web.servlet.mvc.ServletWrappingController;
-
-public class WebDavController extends ServletWrappingController {
-       private Resource resourceConfiguration;
-
-       
-}