From 28927a3628408ee59b5cde803975facea5df08ec Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 30 Apr 2010 14:35:31 +0000 Subject: [PATCH] Improve webdav git-svn-id: https://svn.argeo.org/commons/trunk@3550 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../WEB-INF/osgi.xml | 2 +- .../webdav/ExtendedDispatcherServlet.java | 10 +++++----- .../jackrabbit/webdav/WebDavServlet.java | 5 ++--- .../org/argeo/jcr/JcrResourceAdapter.java | 10 ++++++++-- .../server/jcr/mvc/JcrManagerController.java | 20 ++++++++++--------- server/runtime/pom.xml | 1 + 6 files changed, 28 insertions(+), 20 deletions(-) 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 index 493a6b81e..b6793cd8b 100644 --- a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/osgi.xml +++ b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/osgi.xml @@ -8,5 +8,5 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd"> - + \ No newline at end of file diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/ExtendedDispatcherServlet.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/ExtendedDispatcherServlet.java index 3b71b5fce..d61981f7d 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/ExtendedDispatcherServlet.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/ExtendedDispatcherServlet.java @@ -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); } diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java index a2683a1fa..88034aaff 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java @@ -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. } } diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java index 3c69e0b1e..c5225204b 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java @@ -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; } - - + } diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java index 7edd5378b..d9fb60437 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java @@ -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 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; - } - } diff --git a/server/runtime/pom.xml b/server/runtime/pom.xml index 455ae5787..4b8cbf24b 100644 --- a/server/runtime/pom.xml +++ b/server/runtime/pom.xml @@ -19,6 +19,7 @@ org.argeo.server.hibernate org.argeo.server.ads org.argeo.server.jackrabbit + org.argeo.server.jcr -- 2.30.2