From 491959cfccdf9a29fe359206757dd37f97056993 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 12 Nov 2012 08:56:49 +0000 Subject: [PATCH] Improve WebDav git-svn-id: https://svn.argeo.org/commons/trunk@5767 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- demo/argeo_node_web.properties | 6 ++++- demo/log4j.properties | 5 ++-- .../WEB-INF/applicationContext.xml | 9 +++---- .../WEB-INF/webdav-servlet.xml | 2 +- .../remote/OpenInViewSessionProvider.java | 8 +++---- .../remote/SimpleWebdavServlet.java | 22 +++++++++++++++++ .../mvc/MultipleRepositoryHandlerMapping.java | 24 +++++++++---------- 7 files changed, 52 insertions(+), 24 deletions(-) diff --git a/demo/argeo_node_web.properties b/demo/argeo_node_web.properties index 24da87e86..69a4fddba 100644 --- a/demo/argeo_node_web.properties +++ b/demo/argeo_node_web.properties @@ -1,8 +1,12 @@ -argeo.osgi.start=\ +argeo.osgi.start.1.node=\ org.springframework.osgi.extender,\ org.argeo.server.ads.server,\ + +argeo.osgi.start.3.node=\ org.argeo.node.repo.jackrabbit,\ org.argeo.security.dao.ldap,\ + +argeo.osgi.start.4.node=\ org.argeo.jackrabbit.webapp,\ org.argeo.server.rap.webapp,\ org.argeo.dep.osgi.catalina.start,\ diff --git a/demo/log4j.properties b/demo/log4j.properties index c4784b91a..21c1ca862 100644 --- a/demo/log4j.properties +++ b/demo/log4j.properties @@ -3,11 +3,12 @@ log4j.rootLogger=WARN, development ## Levels log4j.logger.org.argeo=DEBUG log4j.logger.org.argeo.jackrabbit.remote.ExtendedDispatcherServlet=WARN -log4j.logger.org.argeo.server.webextender.TomcatDeployer=WARN +log4j.logger.org.argeo.server.webextender.TomcatDeployer=INFO #log4j.logger.org.springframework.security=DEBUG #log4j.logger.org.apache.commons.exec=DEBUG -#log4j.logger.org.apache.jackrabbit.server.jcr=DEBUG +#log4j.logger.org.apache.jackrabbit.webdav=DEBUG +#log4j.logger.org.apache.jackrabbit.remote=DEBUG log4j.logger.org.apache.catalina=INFO log4j.logger.org.apache.coyote=INFO diff --git a/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/applicationContext.xml b/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/applicationContext.xml index 736ed8aeb..723e6c70f 100644 --- a/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/applicationContext.xml +++ b/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/applicationContext.xml @@ -24,10 +24,11 @@ - - - + + - + \ No newline at end of file diff --git a/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/webdav-servlet.xml b/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/webdav-servlet.xml index 50a3d5cea..561d20c03 100644 --- a/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/webdav-servlet.xml +++ b/server/modules/org.argeo.jackrabbit.webapp/WEB-INF/webdav-servlet.xml @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/OpenInViewSessionProvider.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/OpenInViewSessionProvider.java index eb83f6d2e..9b3e31f0c 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/OpenInViewSessionProvider.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/OpenInViewSessionProvider.java @@ -47,8 +47,8 @@ public class OpenInViewSessionProvider implements SessionProvider, Serializable protected Session login(HttpServletRequest request, Repository repository, String workspace) throws RepositoryException { - if (log.isDebugEnabled()) - log.debug("Login to workspace " + if (log.isTraceEnabled()) + log.trace("Login to workspace " + (workspace == null ? "" : workspace) + " in web session " + request.getSession().getId()); return repository.login(workspace); @@ -56,8 +56,8 @@ public class OpenInViewSessionProvider implements SessionProvider, Serializable public void releaseSession(Session session) { JcrUtils.logoutQuietly(session); - if (log.isDebugEnabled()) - log.debug("Logged out remote JCR session " + session); + if (log.isTraceEnabled()) + log.trace("Logged out remote JCR session " + session); } public void init() { 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 index f67325a0e..12de420a9 100644 --- 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 @@ -15,14 +15,26 @@ */ package org.argeo.jackrabbit.remote; +import java.io.IOException; + import javax.jcr.Repository; +import javax.servlet.ServletException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.jackrabbit.server.SessionProvider; +import org.apache.jackrabbit.webdav.DavException; +import org.apache.jackrabbit.webdav.DavResource; +import org.apache.jackrabbit.webdav.WebdavRequest; +import org.apache.jackrabbit.webdav.WebdavResponse; /** WebDav servlet whose repository is injected */ public class SimpleWebdavServlet extends org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet { private static final long serialVersionUID = -369787931175177080L; + + private final static Log log = LogFactory.getLog(SimpleWebdavServlet.class); + private final Repository repository; public SimpleWebdavServlet(Repository repository, @@ -35,4 +47,14 @@ public class SimpleWebdavServlet extends return repository; } + @Override + protected boolean execute(WebdavRequest request, WebdavResponse response, + int method, DavResource resource) throws ServletException, + IOException, DavException { + if (log.isTraceEnabled()) + log.trace(request.getMethod() + "\t" + request.getPathInfo()); + boolean res = super.execute(request, response, method, resource); + return res; + } + } diff --git a/server/runtime/org.argeo.server.jcr.mvc/src/main/java/org/argeo/jcr/mvc/MultipleRepositoryHandlerMapping.java b/server/runtime/org.argeo.server.jcr.mvc/src/main/java/org/argeo/jcr/mvc/MultipleRepositoryHandlerMapping.java index 5c6e258e1..e07d77f13 100644 --- a/server/runtime/org.argeo.server.jcr.mvc/src/main/java/org/argeo/jcr/mvc/MultipleRepositoryHandlerMapping.java +++ b/server/runtime/org.argeo.server.jcr.mvc/src/main/java/org/argeo/jcr/mvc/MultipleRepositoryHandlerMapping.java @@ -128,18 +128,18 @@ public abstract class MultipleRepositoryHandlerMapping implements } /** The repository name is the first part of the path info */ - // protected String extractRepositoryName(List pathTokens) { - // StringBuffer currName = new StringBuffer(""); - // for (String token : pathTokens) { - // currName.append(token); - // if (repositoryRegister.getRepositories().containsKey( - // currName.toString())) - // return currName.toString(); - // currName.append('/'); - // } - // throw new ArgeoException("No repository can be found for request " - // + pathTokens); - // } +// protected String extractRepositoryName(List pathTokens) { +// StringBuffer currName = new StringBuffer(""); +// for (String token : pathTokens) { +// currName.append(token); +// if (repositoryRegister.getRepositories().containsKey( +// currName.toString())) +// return currName.toString(); +// currName.append('/'); +// } +// throw new ArgeoException("No repository can be found for request " +// + pathTokens); +// } public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { -- 2.30.2