Improve JCR
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 26 Apr 2010 21:53:40 +0000 (21:53 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 26 Apr 2010 21:53:40 +0000 (21:53 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3499 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

modules/server/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF
modules/server/org.argeo.slc.webapp.war/WEB-INF/jcr-servlet.xml [new file with mode: 0644]
modules/server/org.argeo.slc.webapp.war/WEB-INF/web.xml
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/AbstractSlcJcrDao.java
runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/mvc/OpenSessionInViewJcrInterceptor.java [deleted file]
runtime/org.argeo.slc.support.jcr/src/test/java/org/argeo/slc/jcr/dao/SlcAgentDescriptorDaoJcrTest.java
runtime/org.argeo.slc.support.jcr/src/test/java/org/argeo/slc/jcr/dao/TreeTestResultDaoJcrTest.java
runtime/org.argeo.slc.support.jcr/src/test/resources/log4j.properties

index 721d073f5efe8e33c6927119115315a72cf58f0f..6f5cf72486031e2e8de20adfc7cdd5195b4545ce 100644 (file)
@@ -10,6 +10,7 @@ Import-Package: net.sf.cglib.core,
  org.aopalliance.aop,
  org.argeo.security.mvc;specification-version="0.1.3.SNAPSHOT-r3402",
  org.argeo.server,
+ org.argeo.server.jcr.mvc;specification-version="0.1.3.SNAPSHOT-r3478",
  org.argeo.server.mvc,
  org.argeo.slc.build,
  org.argeo.slc.core.attachment,
diff --git a/modules/server/org.argeo.slc.webapp.war/WEB-INF/jcr-servlet.xml b/modules/server/org.argeo.slc.webapp.war/WEB-INF/jcr-servlet.xml
new file mode 100644 (file)
index 0000000..b3c51bc
--- /dev/null
@@ -0,0 +1,31 @@
+<?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:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="
+               http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
+               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+               http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+
+       <context:component-scan base-package="org.argeo.server.jcr.mvc" />
+
+       <bean name="/*.jcr" class="org.argeo.server.jcr.mvc.JcrBrowserController">
+       </bean>
+
+
+       <!-- MVC -->
+       <bean id="handlerMapping"
+               class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref bean="osivInterceptor" />
+                       </list>
+               </property>
+       </bean>
+
+       <bean id="viewResolver" class="org.argeo.server.mvc.SerializingViewResolver">
+               <property name="serializer">
+                       <bean class="org.argeo.server.jcr.mvc.JcrXmlServerSerializer" />
+               </property>
+       </bean>
+</beans>
\ No newline at end of file
index ff217d5a522a419803eb610d58155eaae23a8170..bf49c0964472eaa8656274014d1a4b317a22db54 100644 (file)
                <url-pattern>/dist/*</url-pattern>
        </servlet-mapping>
 
+       <!-- JCR servlet -->
+       <servlet>
+               <servlet-name>jcr</servlet-name>
+               <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+               <init-param>
+                       <param-name>contextClass</param-name>
+                       <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+               </init-param>
+               <load-on-startup>1</load-on-startup>
+       </servlet>
+       <servlet-mapping>
+               <servlet-name>jcr</servlet-name>
+               <url-pattern>*.jcr</url-pattern>
+       </servlet-mapping>
+
        <!-- General -->
        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-name>argeo.security.systemKey</param-name>
                <param-value>argeo</param-value>
        </context-param>
-       
+
        <!--
                Log4j configContext loader config <listener>
                <display-name>Log4j</display-name>
index 368ef9e3c27d07ae39e634a83efc6ba042ace56c..bf417b6130da221961fbd345772ce3287e7dd407 100644 (file)
@@ -4,6 +4,7 @@ import java.util.Calendar;
 import java.util.Date;\r
 import java.util.GregorianCalendar;\r
 \r
+import javax.jcr.NamespaceRegistry;\r
 import javax.jcr.RepositoryException;\r
 import javax.jcr.Session;\r
 import javax.jcr.query.Query;\r
@@ -30,6 +31,9 @@ public abstract class AbstractSlcJcrDao {
 \r
        public void init() {\r
                nodeMapper = getNodeMapperProvider().findNodeMapper(null);\r
+               // JcrUtils.registerNamespaceSafely(session, "slc",\r
+               // "http://www.argeo.org/slc/0.12");\r
+\r
        }\r
 \r
        public void setSession(Session session) {\r
diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/mvc/OpenSessionInViewJcrInterceptor.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/mvc/OpenSessionInViewJcrInterceptor.java
deleted file mode 100644 (file)
index 0076f5f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.argeo.slc.jcr.mvc;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.context.request.WebRequest;
-import org.springframework.web.context.request.WebRequestInterceptor;
-
-public class OpenSessionInViewJcrInterceptor implements WebRequestInterceptor {
-       private final static Log log = LogFactory
-                       .getLog(OpenSessionInViewJcrInterceptor.class);
-
-       public void preHandle(WebRequest request) throws Exception {
-               if (log.isDebugEnabled())
-                       log.debug("preHandle: " + request);
-       }
-
-       public void postHandle(WebRequest request, ModelMap model) throws Exception {
-               if (log.isDebugEnabled())
-                       log.debug("postHandle: " + request);
-       }
-
-       public void afterCompletion(WebRequest request, Exception ex)
-                       throws Exception {
-               if (log.isDebugEnabled())
-                       log.debug("afterCompletion: " + request);
-
-       }
-
-}
index d425c7a2a9c00c971c4728a4eda5fd1ea667ae09..87297fe32150c54633e1d7b0bd6724503c7292d6 100644 (file)
@@ -1,8 +1,11 @@
 package org.argeo.slc.jcr.dao;
 
+import java.io.ByteArrayOutputStream;
 import java.net.InetAddress;
 import java.util.UUID;
 
+import javax.jcr.Session;
+
 import org.argeo.slc.dao.runtime.SlcAgentDescriptorDao;
 import org.argeo.slc.runtime.SlcAgentDescriptor;
 import org.argeo.slc.unit.AbstractSpringTestCase;
@@ -13,7 +16,6 @@ public class SlcAgentDescriptorDaoJcrTest extends AbstractSpringTestCase {
 
        private SlcAgentDescriptorDao slcAgentDescriptorDao;
        private String host;
-       
 
        @Override
        protected void setUp() throws Exception {
@@ -28,6 +30,21 @@ public class SlcAgentDescriptorDaoJcrTest extends AbstractSpringTestCase {
                slcAgentDescriptor0.setUuid(UUID.randomUUID().toString());
        }
 
+       public void testExportXml() throws Exception {
+               SlcAgentDescriptor slcAgentDescriptor0 = new SlcAgentDescriptor();
+               slcAgentDescriptor0.setHost(host);
+
+               String agentID = UUID.randomUUID().toString();
+               slcAgentDescriptor0.setUuid(agentID);
+               slcAgentDescriptorDao.create(slcAgentDescriptor0);
+
+               Session session = getBean(Session.class);
+               ByteArrayOutputStream out = new ByteArrayOutputStream();
+               session.exportDocumentView("/slc", out, true, false);
+               log.debug("\n\n"+new String(out.toByteArray())+"\n\n");
+
+       }
+
        public void testCreate() throws Exception {
                SlcAgentDescriptor slcAgentDescriptor0 = new SlcAgentDescriptor();
                slcAgentDescriptor0.setHost(host);
@@ -36,22 +53,24 @@ public class SlcAgentDescriptorDaoJcrTest extends AbstractSpringTestCase {
                slcAgentDescriptor0.setUuid(agentID);
                slcAgentDescriptorDao.create(slcAgentDescriptor0);
 
-               //JcrUtils.debug(session.getRootNode());
-               
-               SlcAgentDescriptor slcAgentDescriptor1 = slcAgentDescriptorDao.getAgentDescriptor(agentID);
-               //log.debug("expected agentID :"+agentID+ " . Retrieved one : "+slcAgentDescriptor1.getUuid());
-               //TODO : compare retrieved AgentDescriptor with expected one.
+               // JcrUtils.debug(session.getRootNode());
+
+               SlcAgentDescriptor slcAgentDescriptor1 = slcAgentDescriptorDao
+                               .getAgentDescriptor(agentID);
+               // log.debug("expected agentID :"+agentID+
+               // " . Retrieved one : "+slcAgentDescriptor1.getUuid());
+               // TODO : compare retrieved AgentDescriptor with expected one.
                assertEquals(agentID, slcAgentDescriptor1.getUuid());
 
                slcAgentDescriptorDao.delete(agentID);
-               
+
        }
 
        public void testList() throws Exception {
                SlcAgentDescriptor slcAgentDescriptor0 = new SlcAgentDescriptor();
                SlcAgentDescriptor slcAgentDescriptor1 = new SlcAgentDescriptor();
                SlcAgentDescriptor slcAgentDescriptor2 = new SlcAgentDescriptor();
-               
+
                slcAgentDescriptor0.setHost(host);
                slcAgentDescriptor1.setHost(host);
                slcAgentDescriptor2.setHost(host);
@@ -59,7 +78,7 @@ public class SlcAgentDescriptorDaoJcrTest extends AbstractSpringTestCase {
                String agentID = UUID.randomUUID().toString();
                String agentID1 = UUID.randomUUID().toString();
                String agentID2 = UUID.randomUUID().toString();
-               
+
                slcAgentDescriptor0.setUuid(agentID);
                slcAgentDescriptor1.setUuid(agentID1);
                slcAgentDescriptor2.setUuid(agentID2);
@@ -68,7 +87,8 @@ public class SlcAgentDescriptorDaoJcrTest extends AbstractSpringTestCase {
                slcAgentDescriptorDao.create(slcAgentDescriptor1);
                slcAgentDescriptorDao.create(slcAgentDescriptor2);
 
-               //List<SlcAgentDescriptor> list = slcAgentDescriptorDao.listSlcAgentDescriptors();
+               // List<SlcAgentDescriptor> list =
+               // slcAgentDescriptorDao.listSlcAgentDescriptors();
        }
 
 }
index 07f798b3f145342b2a6f675e484ab4c24b5ab6bb..044c67e9ef85734d4e11a6cf3eaabcf2232da3ac 100644 (file)
@@ -1,9 +1,12 @@
 package org.argeo.slc.jcr.dao;\r
 \r
+import java.io.ByteArrayOutputStream;\r
 import java.util.Map;\r
 import java.util.TreeMap;\r
 import java.util.UUID;\r
 \r
+import javax.jcr.Session;\r
+\r
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
 import org.argeo.slc.core.attachment.SimpleAttachment;\r
@@ -28,7 +31,17 @@ public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {
                log.debug("Context Initialized");\r
        }\r
 \r
-       @SuppressWarnings("restriction")\r
+       public void testExportXml() throws Exception {\r
+               TreeTestResult ttr = TreeTestResultTestUtils\r
+                               .createComplexeTreeTestResult();\r
+               ttrDao.create(ttr);\r
+\r
+               Session session = getBean(Session.class);\r
+               ByteArrayOutputStream out = new ByteArrayOutputStream();\r
+               session.exportDocumentView("/slc", out, true, false);\r
+               log.debug("\n\n"+new String(out.toByteArray())+"\n\n");\r
+       }\r
+\r
        public void testCreate() {\r
                TreeTestResult ttr = TreeTestResultTestUtils\r
                                .createComplexeTreeTestResult();\r
@@ -38,7 +51,6 @@ public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {
                UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersisted);\r
        }\r
 \r
-       @SuppressWarnings("restriction")\r
        public void testUpdate() {\r
                TreeTestResult ttr = TreeTestResultTestUtils\r
                                .createCompleteTreeTestResult();\r
@@ -78,20 +90,19 @@ public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {
                                .size());\r
 \r
        }\r
-       @SuppressWarnings("restriction")\r
+\r
        public void testResultPartOnly() {\r
-               \r
+\r
                TreeTestResult ttr = TreeTestResultTestUtils\r
                                .createComplexeTreeTestResult();\r
 \r
                SimpleResultPart resultPart = TreeTestResultTestUtils\r
-               .createSimpleResultPartPassed();\r
+                               .createSimpleResultPartPassed();\r
                ttr.addResultPart(resultPart);\r
                ttrDao.create(ttr);\r
                TreeTestResult ttr2;\r
                ttr2 = ttrDao.getTestResult(ttr.getUuid());\r
-               assertEquals(ttr.getResultParts().size(), ttr2.getResultParts()\r
-                               .size());\r
+               assertEquals(ttr.getResultParts().size(), ttr2.getResultParts().size());\r
        }\r
 \r
        public static void compareTestResult(final TreeTestResult t1,\r
@@ -102,10 +113,9 @@ public class TreeTestResultDaoJcrTest extends AbstractSpringTestCase {
                assertEquals(t1.getAttachments().size(), t2.getAttachments().size());\r
                assertEquals(t1.getAttributes().size(), t2.getAttributes().size());\r
                assertEquals(t1.getElements().size(), t2.getElements().size());\r
-               // resultParts \r
+               // resultParts\r
                assertEquals(t1.getResultParts().size(), t2.getResultParts().size());\r
-               \r
-               \r
+\r
                // TODO Add more check.\r
        }\r
 \r
index ac564f99b8ce876c85389ad6b4aaa5f15831bbd7..6acd879f9148e559cd0bf84e3201a538f949c795 100644 (file)
@@ -1,5 +1,5 @@
 # Set root logger level to DEBUG and its only appender to A1.\r
-log4j.rootLogger=INFO, console\r
+log4j.rootLogger=WARN, console\r
 \r
 ## Levels\r
 # Slc\r
@@ -9,7 +9,7 @@ log4j.logger.org.argeo=DEBUG
 log4j.logger.org.exolab.castor=WARN\r
 \r
 # Spring\r
-log4j.logger.org.springframework=INFO\r
+#log4j.logger.org.springframework=INFO\r
 \r
 ## Appenders\r
 # A1 is set to be a ConsoleAppender.\r