Improve WebDav
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 12 Nov 2012 08:56:49 +0000 (08:56 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 12 Nov 2012 08:56:49 +0000 (08:56 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@5767 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

demo/argeo_node_web.properties
demo/log4j.properties
server/modules/org.argeo.jackrabbit.webapp/WEB-INF/applicationContext.xml
server/modules/org.argeo.jackrabbit.webapp/WEB-INF/webdav-servlet.xml
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/OpenInViewSessionProvider.java
server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleWebdavServlet.java
server/runtime/org.argeo.server.jcr.mvc/src/main/java/org/argeo/jcr/mvc/MultipleRepositoryHandlerMapping.java

index 24da87e86a4d6b67d7ce6344acb2280fb6c81c3e..69a4fddba44aff2b53b1564ccd51cc720196f6ae 100644 (file)
@@ -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,\
index c4784b91aa0ee6a1f2a5acf9342d9356fafd2df5..21c1ca86239d949e8014a1cdd3daa9edf4a68718 100644 (file)
@@ -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
index 736ed8aebf8bca4e836c15ab2c29026c05e22f2b..723e6c70ff209204c5a79c13d8d328b3e6fcd61c 100644 (file)
        </bean>
 
        <!-- The JCR sessions, one login per request. -->
-<!--   <bean id="openInViewSessionProvider" init-method="init" -->
-<!--           destroy-method="destroy" class="org.argeo.jackrabbit.remote.OpenInViewSessionProvider"> -->
-<!--   </bean> -->
+       <bean id="openInViewSessionProvider" init-method="init"
+               destroy-method="destroy" class="org.argeo.jackrabbit.remote.OpenInViewSessionProvider">
+       </bean>
 
-<!--   <bean id="repositoryRegister" class="org.argeo.jcr.DefaultRepositoryRegister" /> -->
+       <!-- <bean id="repositoryRegister" class="org.argeo.jcr.DefaultRepositoryRegister" 
+               /> -->
 
 </beans>
\ No newline at end of file
index 50a3d5cea9765f8c0d2e3ce7348f755dec47ad0e..561d20c03b9cc2d8fad53f5e8160112ff821ad96 100644 (file)
@@ -15,7 +15,7 @@
        <bean id="urlMapping" class="org.argeo.jackrabbit.remote.SimpleWebdavHandlerMapping">
                <property name="configuration" value="/WEB-INF/webdav-config.xml" />
                <property name="repositoryFactory" ref="repositoryFactory" />
-               <property name="sessionProvider" ref="scopedSessionProvider" />
+               <property name="sessionProvider" ref="openInViewSessionProvider" />
        </bean>
 
 </beans>
\ No newline at end of file
index eb83f6d2e36a5007e1446a0462fe4970d4ddad3b..9b3e31f0cf57c290f1efa8e58324891318831e7d 100644 (file)
@@ -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 ? "<default>" : 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() {
index f67325a0e691c610e605bedab869e17f1098d023..12de420a99c7ab75ad4cd94dce7823c82ce07dd9 100644 (file)
  */
 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;
+       }
+
 }
index 5c6e258e1b80b3f2d70245fa6caa00e52f335096..e07d77f13385f35fe6ce76f6586365c2a430a853 100644 (file)
@@ -128,18 +128,18 @@ public abstract class MultipleRepositoryHandlerMapping implements
        }
 
        /** The repository name is the first part of the path info */
-       // protected String extractRepositoryName(List<String> 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<String> 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 {