/**
* @return a <code>Test</code> suite that executes all tests inside this
* package, except the multi-threading related ones.
*/
public static Test suite() {
TestSuite suite = new ConcurrentTestSuite("Core tests");
suite.addTestSuite(CachingHierarchyManagerTest.class);
suite.addTestSuite(ShareableNodeTest.class);
suite.addTestSuite(MultiWorkspaceShareableNodeTest.class);
suite.addTestSuite(TransientRepositoryTest.class);
suite.addTestSuite(XATest.class);
suite.addTestSuite(RestoreAndCheckoutTest.class);
suite.addTestSuite(NodeImplTest.class);
suite.addTestSuite(RetentionRegistryImplTest.class);
suite.addTestSuite(InvalidDateTest.class);
suite.addTestSuite(SessionGarbageCollectedTest.class);
suite.addTestSuite(ReferencesTest.class);
suite.addTestSuite(ReplaceTest.class);
// test related to NodeStateMerger
// temporarily disabled see JCR-2272 and JCR-2295
// suite.addTestSuite(ConcurrentImportTest.class);
suite.addTestSuite(ConcurrentAddRemoveMoveTest.class);
suite.addTestSuite(ConcurrentAddRemovePropertyTest.class);
suite.addTestSuite(ConcurrentMixinModificationTest.class);
suite.addTestSuite(ConcurrentModificationWithSNSTest.class);
suite.addTestSuite(ConcurrentMoveTest.class);
suite.addTestSuite(ConcurrentReorderTest.class);
suite.addTestSuite(ConcurrentAddRemoveNodeTest.class);
// TODO: These tests pass, but they cause some instability in other
// parts of the test suite, most likely due to uncleaned test data
// if (Boolean.getBoolean("org.apache.jackrabbit.test.integration")) {
// suite.addTestSuite(ConcurrencyTest.class);
// // suite.addTestSuite(ConcurrencyTest3.class);
// suite.addTestSuite(ConcurrentVersioningTest.class);
// // suite.addTestSuite(ConcurrentVersioningWithTransactionsTest.class);
// suite.addTestSuite(ConcurrentCheckinMixedTransactionTest.class);
// suite.addTestSuite(ConcurrentLoginTest.class);
// suite.addTestSuite(ConcurrentNodeModificationTest.class);
// suite.addTestSuite(ConcurrentReadWriteTest.class);
// suite.addTestSuite(ConcurrentRenameTest.class);
// suite.addTestSuite(ConcurrentSaveTest.class);
// suite.addTestSuite(ConcurrentWorkspaceCopyTest.class);
// }
suite.addTestSuite(UserPerWorkspaceSecurityManagerTest.class);
suite.addTestSuite(PersistenceManagerTest.class);
return suite;
}