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
# 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
*/
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());
}
}
<?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>
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();
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) {
* 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;
+ }
+
}