Improve JCR tests
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 16 Aug 2015 12:58:14 +0000 (12:58 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 16 Aug 2015 12:58:14 +0000 (12:58 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8326 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.server.jcr/build.properties
org.argeo.server.jcr/ext/test/log4j.properties
org.argeo.server.jcr/src/org/argeo/jackrabbit/unit/AbstractJackrabbitTestCase.java
org.argeo.server.jcr/src/org/argeo/jackrabbit/unit/repository-h2.xml
org.argeo.server.jcr/src/org/argeo/jcr/unit/AbstractJcrTestCase.java

index fa96ec909dd881d6e1102788f9eab8bd83c8396b..f132db9f97e0cdd05792ee700200a31e1f55bf94 100644 (file)
@@ -20,4 +20,6 @@ additional.bundles = org.junit,\
                      org.apache.lucene,\
                      org.apache.tika.core,\
                      org.apache.tika.parsers,\
-                     org.argeo.security.jackrabbit
+                     org.argeo.security.jackrabbit,\
+                     org.apache.commons.dbcp,\
+                     org.apache.commons.pool
index ca995af8e148d42b34289a2e63e4e9dfe5761f7d..3d7528963f1b94ca895e95f2212d4cba3fda8323 100644 (file)
@@ -10,4 +10,5 @@ log4j.appender.console=org.apache.log4j.ConsoleAppender
 
 # console uses PatternLayout.
 log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n
+#log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n
+log4j.appender.console.layout.ConversionPattern=%m%n
index e8fed98cb3c541078abdd693eb209a51f0480e23..f1e55230869b1bad8dd9c673d90330044c6719c8 100644 (file)
  */
 package org.argeo.jackrabbit.unit;
 
-import java.io.File;
-
 import javax.jcr.Repository;
 
-import org.apache.jackrabbit.core.TransientRepository;
+import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.core.RepositoryImpl;
+import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.argeo.jcr.unit.AbstractJcrTestCase;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
 
 /** Factorizes configuration of an in memory transient repository */
-public abstract class AbstractJackrabbitTestCase extends
-               AbstractJcrTestCase {
-       protected File getRepositoryFile() throws Exception {
-               Resource res = new ClassPathResource(
-                               "org/argeo/jackrabbit/unit/repository-memory.xml");
-               return res.getFile();
-       }
+public abstract class AbstractJackrabbitTestCase extends AbstractJcrTestCase {
+       protected RepositoryImpl repositoryImpl;
+
+       // protected File getRepositoryFile() throws Exception {
+       // Resource res = new ClassPathResource(
+       // "org/argeo/jackrabbit/unit/repository-memory.xml");
+       // return res.getFile();
+       // }
 
        protected Repository createRepository() throws Exception {
-               Repository repository = new TransientRepository(getRepositoryFile(),
-                               getHomeDir());
-               return repository;
+               // Repository repository = new TransientRepository(getRepositoryFile(),
+               // getHomeDir());
+               RepositoryConfig repositoryConfig = RepositoryConfig.create(
+                               AbstractJackrabbitTestCase.class
+                                               .getResourceAsStream("repository-memory.xml"),
+                               getHomeDir().getAbsolutePath());
+               RepositoryImpl repositoryImpl = RepositoryImpl.create(repositoryConfig);
+               return repositoryImpl;
+       }
+
+       @Override
+       protected void clearRepository(Repository repository) throws Exception {
+               RepositoryImpl repositoryImpl = (RepositoryImpl) repository;
+               if (repositoryImpl != null)
+                       repositoryImpl.shutdown();
+               FileUtils.deleteDirectory(getHomeDir());
        }
 
 }
index ef3f0c426a6d224cc9dbbec43cb144b6d294f4fd..348dc288b9703385e893cf0ae73f22cefb3d7215 100644 (file)
@@ -1,21 +1,4 @@
 <?xml version="1.0"?>
-<!--
-
-    Copyright (C) 2007-2012 Argeo GmbH
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-            http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
 <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
                             "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
 <Repository>
index 530605eac6d4a62c4a8a366ac833d2a3576755d7..ca32f7df0b359fdc8a0f4ed72581348b1c03389c 100644 (file)
@@ -34,10 +34,13 @@ public abstract class AbstractJcrTestCase extends TestCase {
        private Repository repository;
        private Session session = null;
 
-       protected abstract File getRepositoryFile() throws Exception;
+//     protected abstract File getRepositoryFile() throws Exception;
 
        protected abstract Repository createRepository() throws Exception;
 
+       protected abstract void clearRepository(Repository repository)
+                       throws Exception;
+
        @Override
        protected void setUp() throws Exception {
                File homeDir = getHomeDir();
@@ -45,27 +48,21 @@ public abstract class AbstractJcrTestCase extends TestCase {
                repository = createRepository();
        }
 
-       protected File getHomeDir() {
-               File homeDir = new File(System.getProperty("java.io.tmpdir"),
-                               AbstractJcrTestCase.class.getSimpleName() + "-"
-                                               + System.getProperty("user.name"));
-               return homeDir;
-       }
-
        @Override
        protected void tearDown() throws Exception {
                if (session != null) {
                        session.logout();
-                       if (log.isDebugEnabled())
-                               log.debug("Logout session");
+                       if (log.isTraceEnabled())
+                               log.trace("Logout session");
                }
+               clearRepository(repository);
        }
 
        protected Session session() {
-               if (session == null) {
+               if (session == null || !session.isLive()) {
                        try {
-                               if (log.isDebugEnabled())
-                                       log.debug("Login session");
+                               if (log.isTraceEnabled())
+                                       log.trace("Login session");
                                session = getRepository().login(
                                                new SimpleCredentials("demo", "demo".toCharArray()));
                        } catch (Exception e) {
@@ -83,7 +80,39 @@ public abstract class AbstractJcrTestCase extends TestCase {
         * enables children class to set an existing repository in case it is not
         * deleted on startup, to test migration by instance
         */
-       protected void setRepository(Repository repository) {
+       public void setRepository(Repository repository) {
                this.repository = repository;
        }
+
+       // public void logout() {
+       // if (session != null && session.isLive())
+       // JcrUtils.logoutQuietly(session);
+       // }
+       //
+       // protected static TestSuite defaultTestSuite(Class<? extends TestCase>
+       // clss) {
+       // String testSuiteClassName =
+       // "org.argeo.jackrabbit.unit.JackrabbitTestSuite";
+       // try {
+       // Class<?> testSuiteClass = AbstractJcrTestCase.class
+       // .getClassLoader().loadClass(testSuiteClassName);
+       // if (clss == null) {
+       // return (TestSuite) testSuiteClass.newInstance();
+       // } else {
+       // return (TestSuite) testSuiteClass.getConstructor(Class.class)
+       // .newInstance(clss);
+       // }
+       // } catch (Exception e) {
+       // throw new ArgeoException("Cannot find default test suite "
+       // + testSuiteClassName, e);
+       // }
+       // }
+
+       protected File getHomeDir() {
+               File homeDir = new File(System.getProperty("java.io.tmpdir"),
+                               AbstractJcrTestCase.class.getSimpleName() + "-"
+                                               + System.getProperty("user.name"));
+               return homeDir;
+       }
+
 }