Improve JCR tests
[lgpl/argeo-commons.git] / org.argeo.server.jcr / src / org / argeo / jackrabbit / unit / AbstractJackrabbitTestCase.java
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());
        }
 
 }