You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2013/08/21 15:24:08 UTC

svn commit: r1516156 - in /jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr: OakMongoMKRepositoryStub.java OakSegmentMKRepositoryStub.java tck/TCKBase.java

Author: mreutegg
Date: Wed Aug 21 13:24:08 2013
New Revision: 1516156

URL: http://svn.apache.org/r1516156
Log:
OAK-968: TCK tests run OOM when MongoDB is available

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoMKRepositoryStub.java
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakSegmentMKRepositoryStub.java
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoMKRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoMKRepositoryStub.java?rev=1516156&r1=1516155&r2=1516156&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoMKRepositoryStub.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoMKRepositoryStub.java Wed Aug 21 13:24:08 2013
@@ -71,6 +71,7 @@ public class OakMongoMKRepositoryStub ex
         try {
             this.connection = new MongoConnection(HOST, PORT, DB);
             MongoMK m = new MongoMK.Builder().setClusterId(1).
+                    memoryCacheSize(64 * 1024 * 1024).
                     setMongoDB(connection.getDB()).open();
             Jcr jcr = new Jcr(m);
             this.repository = jcr.createRepository();

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakSegmentMKRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakSegmentMKRepositoryStub.java?rev=1516156&r1=1516155&r2=1516156&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakSegmentMKRepositoryStub.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakSegmentMKRepositoryStub.java Wed Aug 21 13:24:08 2013
@@ -67,7 +67,7 @@ public class OakSegmentMKRepositoryStub 
         try {
             this.connection = new Mongo(HOST, PORT);
             Jcr jcr = new Jcr(new Oak(new SegmentNodeStore(
-                    new MongoStore(connection.getDB(DB), 100 * 1024 * 1024))));
+                    new MongoStore(connection.getDB(DB), 4 * 1024 * 1024))));
             this.repository = jcr.createRepository();
 
             session = getRepository().login(superuser);

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java?rev=1516156&r1=1516155&r2=1516156&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java Wed Aug 21 13:24:08 2013
@@ -18,7 +18,9 @@ package org.apache.jackrabbit.oak.jcr.tc
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.apache.jackrabbit.oak.jcr.OakMongoMKRepositoryStub;
@@ -62,9 +64,11 @@ public abstract class TCKBase extends Te
      */
     public static class Setup extends TestCase {
 
+        private static Map<String, RepositoryHelper> HELPERS = new HashMap<String, RepositoryHelper>();
+
         private final String stubClass;
 
-        private List<RepositoryHelper> helpers = new ArrayList<RepositoryHelper>();
+        private List<RepositoryHelper> previous = new ArrayList<RepositoryHelper>();
 
         public static void wrap(TCKBase test, String stubClass) {
             Setup setup = new Setup(stubClass);
@@ -82,16 +86,25 @@ public abstract class TCKBase extends Te
             // replace the existing helper with our parametrized version
             RepositoryHelperPool helperPool = RepositoryHelperPoolImpl.getInstance();
             // drain helpers
-            helpers.addAll(Arrays.asList(helperPool.borrowHelpers()));
+            previous.addAll(Arrays.asList(helperPool.borrowHelpers()));
             // replace with our own stub
-            Properties props = new Properties();
-            props.load(getClass().getClassLoader().getResourceAsStream(RepositoryStub.STUB_IMPL_PROPS));
-            props.put(RepositoryStub.PROP_STUB_IMPL_CLASS, stubClass);
-            helperPool.returnHelper(new RepositoryHelper(props));
+            helperPool.returnHelper(getRepositoryHelper());
+        }
+
+        private RepositoryHelper getRepositoryHelper() throws Exception {
+            RepositoryHelper helper = HELPERS.get(stubClass);
+            if (helper == null) {
+                Properties props = new Properties();
+                props.load(getClass().getClassLoader().getResourceAsStream(RepositoryStub.STUB_IMPL_PROPS));
+                props.put(RepositoryStub.PROP_STUB_IMPL_CLASS, stubClass);
+                helper = new RepositoryHelper(props);
+                HELPERS.put(stubClass, helper);
+            }
+            return helper;
         }
 
         TestCase getTearDown() {
-            return new TearDown(helpers);
+            return new TearDown(previous);
         }
     }