Improve webdav
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 30 Apr 2010 14:35:31 +0000 (14:35 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 30 Apr 2010 14:35:31 +0000 (14:35 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@3550 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/osgi.xml
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/ExtendedDispatcherServlet.java
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java
server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java
server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java
server/runtime/pom.xml

index 493a6b81e536ca2bae34d9f8efd8dff53735989f..b6793cd8bfd7439a39564767a421375dd9c712c5 100644 (file)
@@ -8,5 +8,5 @@
        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
+       <reference id="jcrRepository" interface="javax.jcr.Repository" />\r
 </beans:beans>
\ No newline at end of file
index 3b71b5fce92d6c802e4c15480a05fa72be6bfa82..d61981f7d48f499df4223c51420bda2c21bce3a0 100644 (file)
@@ -15,14 +15,14 @@ public class ExtendedDispatcherServlet extends DispatcherServlet {
        private final static Log log = LogFactory
                        .getLog(ExtendedDispatcherServlet.class);
 
-       protected void service(HttpServletRequest req, HttpServletResponse resp)
-                       throws ServletException, java.io.IOException {
+       protected void service(HttpServletRequest request,
+                       HttpServletResponse response) throws ServletException,
+                       java.io.IOException {
                // see http://forum.springsource.org/showthread.php?t=53472
                try {
                        if (log.isTraceEnabled())
-                               log.debug("Received request with method '" + req.getMethod()
-                                               + "'");
-                       doService(req, resp);
+                               log.trace("Received request " + request);
+                       doService(request, response);
                } catch (Exception e) {
                        throw new ArgeoException("Cannot process request", e);
                }
index a2683a1fa9dac07015ff577e485dc0d078aa26db..88034aaff6d88f600af936f5a194813f18b35992 100644 (file)
@@ -46,12 +46,11 @@ public class WebDavServlet extends SimpleWebdavServlet {
        protected void service(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException, IOException {
                if (log.isTraceEnabled())
-                       log.debug("Received request with method '" + request.getMethod()
-                                       + "'");
+                       log.trace("Received request " + request);
                super.service(request, response);
 
                if (log.isTraceEnabled()) {
-                       log.debug("Webdav response: " + response);
+                       log.trace("Webdav response: " + response);
                        // response.
                }
        }
index 3c69e0b1efc043f5a6cef71a75b9f86183769564..c5225204b6ab03a6de81f529f3b0580c3aaf2d3a 100644 (file)
@@ -31,6 +31,13 @@ public class JcrResourceAdapter {
 
        // private String restoreBase = "/.restore";
 
+       public JcrResourceAdapter() {
+       }
+
+       public JcrResourceAdapter(Session session) {
+               this.session = session;
+       }
+
        public void mkdirs(String path) {
                JcrUtils.mkdirs(session(), path, "nt:folder", versioning);
        }
@@ -216,6 +223,5 @@ public class JcrResourceAdapter {
        public void setSession(Session session) {
                this.session = session;
        }
-       
-       
+
 }
index 7edd5378b760e41d0eb60a66fd975a90037b2f38..d9fb604376845665489e9aa679acba3271ce2a50 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.server.jcr.mvc;
 import java.util.List;
 import java.util.StringTokenizer;
 
+import javax.jcr.Session;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -19,14 +20,14 @@ import org.springframework.core.io.ByteArrayResource;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.WebRequest;
 
 @Controller
-public class JcrManagerController implements MvcConstants {
+public class JcrManagerController implements MvcConstants, JcrMvcConstants {
        private final static Log log = LogFactory
                        .getLog(JcrManagerController.class);
 
-       private JcrResourceAdapter resourceAdapter;
-
        // Create a factory for disk-based file items
        private FileItemFactory factory = new DiskFileItemFactory();
 
@@ -36,8 +37,13 @@ public class JcrManagerController implements MvcConstants {
        @SuppressWarnings("unchecked")
        @RequestMapping("/upload/**")
        @ModelAttribute(ANSWER_MODEL_KEY_AS_HTML)
-       public ServerAnswer upload(HttpServletRequest request,
-                       HttpServletResponse response) throws Exception {
+       public ServerAnswer upload(WebRequest webRequest,
+                       HttpServletRequest request, HttpServletResponse response)
+                       throws Exception {
+
+               Session session = ((Session) webRequest.getAttribute(
+                               REQUEST_ATTR_SESSION, RequestAttributes.SCOPE_REQUEST));
+               JcrResourceAdapter resourceAdapter = new JcrResourceAdapter(session);
                // Parse the request
                List<FileItem> items = upload.parseRequest(request);
 
@@ -72,8 +78,4 @@ public class JcrManagerController implements MvcConstants {
                return ServerAnswer.ok("File " + path + " imported");
        }
 
-       public void setResourceAdapter(JcrResourceAdapter resourceAdapter) {
-               this.resourceAdapter = resourceAdapter;
-       }
-
 }
index 455ae5787b4b87c19316965defae420449f37917..4b8cbf24beecd3abff388d99cab2ed644c58a49f 100644 (file)
@@ -19,6 +19,7 @@
                <module>org.argeo.server.hibernate</module>
                <module>org.argeo.server.ads</module>
                <module>org.argeo.server.jackrabbit</module>
+               <module>org.argeo.server.jcr</module>
        </modules>
        <build>
                <resources>