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 2017/12/07 09:17:24 UTC

svn commit: r1817340 - in /jackrabbit/oak/trunk: oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/ oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/ oak-run...

Author: mreutegg
Date: Thu Dec  7 09:17:23 2017
New Revision: 1817340

URL: http://svn.apache.org/viewvc?rev=1817340&view=rev
Log:
OAK-7023: Replacement for DocumentMK.Builder

Use parameterized DocumentNodeStoreBuilder
Removed type parameter from MongoDocumentNodeStoreBuilder and RDBDocumentNodeStoreBuilder

Added:
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
      - copied, changed from r1817310, jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java
Modified:
    jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/PersistentCacheTest.java
    jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
    jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentBuilderCustomizer.java
    jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentFixtureProvider.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDocumentBuilderCustomizer.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java
    jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java
    jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/RevisionsCommandTest.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/DocumentFactory.java

Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/PersistentCacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/PersistentCacheTest.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/PersistentCacheTest.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/PersistentCacheTest.java Thu Dec  7 09:17:23 2017
@@ -58,7 +58,7 @@ public class PersistentCacheTest extends
             OakFixture oakFixture = ((OakRepositoryFixture) fixture).getOakFixture();
             if (oakFixture instanceof OakFixture.MongoFixture) {
                 OakFixture.MongoFixture mongoFixture = (OakFixture.MongoFixture) oakFixture;
-                DocumentNodeStoreBuilder builder = mongoFixture.getBuilder(1);
+                DocumentNodeStoreBuilder<?> builder = mongoFixture.getBuilder(1);
                 builder.setStatisticsProvider(statsProvider);
                 builder.setPersistentCache("target/persistentCache,time," + CACHE_OPTIONS);
                 dns = builder.build();

Modified: jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java (original)
+++ jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java Thu Dec  7 09:17:23 2017
@@ -210,7 +210,7 @@ public abstract class OakFixture {
             @Override
             public Oak getOak(int clusterId) throws Exception {
                 DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcuri, jdbcuser, jdbcpasswd);
-                DocumentNodeStoreBuilder builder = newRDBDocumentNodeStoreBuilder()
+                DocumentNodeStoreBuilder<?> builder = newRDBDocumentNodeStoreBuilder()
                         .setRDBConnection(ds, getOptions(dropDBAfterTest, tablePrefix)).memoryCacheSize(cacheSize)
                         .setClusterId(clusterId).setLogging(false);
                 BlobStore blobStore = getBlobStore(StatisticsProvider.NOOP);
@@ -227,7 +227,7 @@ public abstract class OakFixture {
                 for (int i = 0; i < cluster.length; i++) {
                     BlobStore blobStore = getBlobStore(statsProvider);
                     DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcuri, jdbcuser, jdbcpasswd);
-                    DocumentNodeStoreBuilder builder = newRDBDocumentNodeStoreBuilder()
+                    DocumentNodeStoreBuilder<?> builder = newRDBDocumentNodeStoreBuilder()
                             .setRDBConnection(ds, getOptions(dropDBAfterTest, tablePrefix)).memoryCacheSize(cacheSize)
                             .setStatisticsProvider(statsProvider)
                             // FIXME: OAK-3389
@@ -388,9 +388,9 @@ public abstract class OakFixture {
             this.dsCacheInMB = dsCacheInMB;
         }
 
-        public DocumentNodeStoreBuilder getBuilder(int clusterId) throws UnknownHostException {
+        public DocumentNodeStoreBuilder<?> getBuilder(int clusterId) throws UnknownHostException {
             MongoConnection mongo = new MongoConnection(uri);
-            DocumentNodeStoreBuilder builder = new MongoDocumentNodeStoreBuilder() {
+            DocumentNodeStoreBuilder<?> builder = new MongoDocumentNodeStoreBuilder() {
                 @Override
                 public DocumentNodeStore build() {
                     DocumentNodeStore ns = super.build();
@@ -412,7 +412,7 @@ public abstract class OakFixture {
             return newOak(getBuilder(clusterId).build());
         }
 
-        public Oak[] setUpCluster(DocumentNodeStoreBuilder[] builders, StatisticsProvider statsProvider) throws Exception {
+        public Oak[] setUpCluster(DocumentNodeStoreBuilder<?>[] builders, StatisticsProvider statsProvider) throws Exception {
             Oak[] cluster = new Oak[builders.length];
             for (int i = 0; i < cluster.length; i++) {
                 cluster[i] = newOak(builders[i].build());
@@ -422,7 +422,7 @@ public abstract class OakFixture {
 
         @Override
         public Oak[] setUpCluster(int n, StatisticsProvider statsProvider) throws Exception {
-            DocumentNodeStoreBuilder[] builders = new DocumentNodeStoreBuilder[n];
+            DocumentNodeStoreBuilder<?>[] builders = new DocumentNodeStoreBuilder[n];
             for (int i = 0; i < n; i++) {
                 builders[i] = getBuilder(i + 1);
             }
@@ -450,7 +450,7 @@ public abstract class OakFixture {
             }
         }
 
-        private void setupBlobStore(DocumentNodeStoreBuilder builder, StatisticsProvider statsProvider) {
+        private void setupBlobStore(DocumentNodeStoreBuilder<?> builder, StatisticsProvider statsProvider) {
             initializeBlobStoreFixture(statsProvider);
             if (blobStoreFixture != null) {
                 builder.setBlobStore(blobStoreFixture.setUp());
@@ -468,7 +468,7 @@ public abstract class OakFixture {
             }
         }
 
-        private void configurePersistentCache(DocumentNodeStoreBuilder builder) {
+        private void configurePersistentCache(DocumentNodeStoreBuilder<?> builder) {
             //TODO Persistent cache should be removed in teardown
             builder.setPersistentCache("target/persistentCache,time");
 

Modified: jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentBuilderCustomizer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentBuilderCustomizer.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentBuilderCustomizer.java (original)
+++ jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentBuilderCustomizer.java Thu Dec  7 09:17:23 2017
@@ -29,5 +29,5 @@ import org.apache.jackrabbit.oak.plugins
  */
 public interface DocumentBuilderCustomizer {
 
-    void customize(DocumentNodeStoreBuilder builder) throws IOException;
+    void customize(DocumentNodeStoreBuilder<?> builder) throws IOException;
 }

Modified: jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentFixtureProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentFixtureProvider.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentFixtureProvider.java (original)
+++ jackrabbit/oak/trunk/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentFixtureProvider.java Thu Dec  7 09:17:23 2017
@@ -53,7 +53,7 @@ class DocumentFixtureProvider {
                                          boolean readOnly) throws IOException {
         CommonOptions commonOpts = options.getOptionBean(CommonOptions.class);
 
-        DocumentNodeStoreBuilder builder;
+        DocumentNodeStoreBuilder<?> builder;
         if (commonOpts.isMongo()) {
             builder = newMongoDocumentNodeStoreBuilder();
         } else if (commonOpts.isRDB()) {

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDocumentBuilderCustomizer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDocumentBuilderCustomizer.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDocumentBuilderCustomizer.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDocumentBuilderCustomizer.java Thu Dec  7 09:17:23 2017
@@ -46,7 +46,7 @@ class IndexDocumentBuilderCustomizer imp
     }
 
     @Override
-    public void customize(DocumentNodeStoreBuilder builder) throws IOException {
+    public void customize(DocumentNodeStoreBuilder<?> builder) throws IOException {
         configurePersistentCache(builder);
         configureCacheSize(builder);
 
@@ -55,7 +55,7 @@ class IndexDocumentBuilderCustomizer imp
         }
     }
 
-    private void configurePersistentCache(DocumentNodeStoreBuilder builder) throws IOException {
+    private void configurePersistentCache(DocumentNodeStoreBuilder<?> builder) throws IOException {
         if (System.getProperty(PERSISTENT_CACHE_PROP) == null) {
             File temp = opts.getOptionBean(IndexOptions.class).getWorkDir();
             File cache = new File(temp, "cache");
@@ -65,7 +65,7 @@ class IndexDocumentBuilderCustomizer imp
         }
     }
 
-    private void configureCacheForReadOnlyMode(DocumentNodeStoreBuilder builder) {
+    private void configureCacheForReadOnlyMode(DocumentNodeStoreBuilder<?> builder) {
         if (!docStoreOpts.isCacheDistributionDefined()) {
             builder.memoryCacheDistribution(
                     35,
@@ -83,7 +83,7 @@ class IndexDocumentBuilderCustomizer imp
         log.info("Configuring cache for single threaded access");
     }
 
-    private void configureCacheSize(DocumentNodeStoreBuilder builder) {
+    private void configureCacheSize(DocumentNodeStoreBuilder<?> builder) {
         //Set cache size to max 4GB or half of min memory
         if (docStoreOpts.getCacheSize() == 0) {
             long maxMem = Runtime.getRuntime().maxMemory();

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java Thu Dec  7 09:17:23 2017
@@ -203,7 +203,7 @@ public class RevisionsCommand implements
     private VersionGarbageCollector bootstrapVGC(RevisionsOptions options,
                                                  Closer closer)
             throws IOException {
-        DocumentNodeStoreBuilder builder = createDocumentMKBuilder(options, closer);
+        DocumentNodeStoreBuilder<?> builder = createDocumentMKBuilder(options, closer);
         if (builder == null) {
             System.err.println("revisions mode only available for DocumentNodeStore");
             System.exit(1);
@@ -360,7 +360,7 @@ public class RevisionsCommand implements
                     RevisionsOptions.CMD_SWEEP + " command");
             return;
         }
-        DocumentNodeStoreBuilder builder = createDocumentMKBuilder(options, closer);
+        DocumentNodeStoreBuilder<?> builder = createDocumentMKBuilder(options, closer);
         if (builder == null) {
             System.err.println("revisions mode only available for DocumentNodeStore");
             return;

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java Thu Dec  7 09:17:23 2017
@@ -161,7 +161,7 @@ class Utils {
         }
 
         if (src.startsWith(MongoURI.MONGODB_PREFIX) || src.startsWith("jdbc")) {
-            DocumentNodeStoreBuilder builder = createDocumentMKBuilder(options, closer);
+            DocumentNodeStoreBuilder<?> builder = createDocumentMKBuilder(options, closer);
             if (builder != null) {
                 DocumentNodeStore store = builder.build();
                 closer.register(asCloseable(store));
@@ -173,15 +173,15 @@ class Utils {
     }
 
     @CheckForNull
-    static DocumentNodeStoreBuilder createDocumentMKBuilder(NodeStoreOptions options,
-                                                      Closer closer)
+    static DocumentNodeStoreBuilder<?> createDocumentMKBuilder(NodeStoreOptions options,
+                                                               Closer closer)
             throws IOException {
         String src = options.getStoreArg();
         if (src == null || src.length() == 0) {
             options.printHelpOn(System.err);
             System.exit(1);
         }
-        DocumentNodeStoreBuilder builder;
+        DocumentNodeStoreBuilder<?> builder;
         if (src.startsWith(MongoURI.MONGODB_PREFIX)) {
             MongoClientURI uri = new MongoClientURI(src);
             if (uri.getDatabase() == null) {

Modified: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java Thu Dec  7 09:17:23 2017
@@ -126,7 +126,7 @@ public class DocumentStoreIndexerIT exte
 
     @Test
     public void bundling() throws Exception{
-        DocumentNodeStoreBuilder docBuilder = builderProvider.newBuilder().setMongoDB(getConnection().getDB());
+        DocumentNodeStoreBuilder<?> docBuilder = builderProvider.newBuilder().setMongoDB(getConnection().getDB());
         DocumentNodeStore store = docBuilder.build();
 
         Whiteboard wb = new DefaultWhiteboard();

Modified: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/RevisionsCommandTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/RevisionsCommandTest.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/RevisionsCommandTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/RevisionsCommandTest.java Thu Dec  7 09:17:23 2017
@@ -121,7 +121,7 @@ public class RevisionsCommandTest {
 
         // remove the sweep revision to force a sweep run
         MongoConnection c = connectionFactory.getConnection();
-        DocumentNodeStoreBuilder builder = builderProvider.newBuilder().setMongoDB(c.getDB());
+        DocumentNodeStoreBuilder<?> builder = builderProvider.newBuilder().setMongoDB(c.getDB());
         DocumentStore store = builder.getDocumentStore();
         UpdateOp op = new UpdateOp(getIdFromPath("/"), false);
         op.removeMapEntry("_sweepRev", new Revision(0, 0, clusterId));

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java Thu Dec  7 09:17:23 2017
@@ -40,6 +40,7 @@ import org.apache.jackrabbit.oak.json.Js
 import org.apache.jackrabbit.oak.plugins.blob.ReferencedBlob;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.Children;
 import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentNodeStoreBuilder;
+import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentNodeStoreBuilderBase;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBBlobReferenceIterator;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBBlobStore;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentNodeStoreBuilder;
@@ -482,7 +483,7 @@ public class DocumentMK {
      *
      */
     @Deprecated
-    public static class Builder extends MongoDocumentNodeStoreBuilder<DocumentMK.Builder> {
+    public static class Builder extends MongoDocumentNodeStoreBuilderBase<Builder> {
         public static final long DEFAULT_MEMORY_CACHE_SIZE = DocumentNodeStoreBuilder.DEFAULT_MEMORY_CACHE_SIZE;
         public static final int DEFAULT_NODE_CACHE_PERCENTAGE = DocumentNodeStoreBuilder.DEFAULT_NODE_CACHE_PERCENTAGE;
         public static final int DEFAULT_PREV_DOC_CACHE_PERCENTAGE = DocumentNodeStoreBuilder.DEFAULT_PREV_DOC_CACHE_PERCENTAGE;

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Thu Dec  7 09:17:23 2017
@@ -512,7 +512,7 @@ public final class DocumentNodeStore
 
     private final Predicate<String> nodeCachePredicate;
 
-    public <T extends DocumentNodeStoreBuilder<T>> DocumentNodeStore(DocumentNodeStoreBuilder<T> builder) {
+    public DocumentNodeStore(DocumentNodeStoreBuilder<?> builder) {
         this.nodeCachePredicate = builder.getNodeCachePredicate();
         this.updateLimit = builder.getUpdateLimit();
         this.commitValueResolver = new CommitValueResolver(builder.getCommitValueCacheSize(),
@@ -3000,7 +3000,7 @@ public final class DocumentNodeStore
         return mbean;
     }
 
-    private DocumentNodeStoreMBean createMBean(DocumentNodeStoreBuilder builder) {
+    private DocumentNodeStoreMBean createMBean(DocumentNodeStoreBuilder<?> builder) {
         try {
             return new DocumentNodeStoreMBeanImpl(this,
                     builder.getStatisticsProvider().getStats(),

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java Thu Dec  7 09:17:23 2017
@@ -167,7 +167,7 @@ public class DocumentNodeStoreBuilder<T
     /**
      * @return a new {@link DocumentNodeStoreBuilder}.
      */
-    public static DocumentNodeStoreBuilder newDocumentNodeStoreBuilder() {
+    public static DocumentNodeStoreBuilder<?> newDocumentNodeStoreBuilder() {
         return new DocumentNodeStoreBuilder();
     }
 
@@ -176,7 +176,7 @@ public class DocumentNodeStoreBuilder<T
     }
 
     @SuppressWarnings("unchecked")
-    protected T thisBuilder() {
+    protected final T thisBuilder() {
         return (T) this;
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java Thu Dec  7 09:17:23 2017
@@ -254,7 +254,7 @@ public class DocumentNodeStoreService {
     }
 
     private void registerNodeStore() throws IOException {
-        DocumentNodeStoreBuilder mkBuilder;
+        DocumentNodeStoreBuilder<?> mkBuilder;
         if (documentStoreType == DocumentStoreType.RDB) {
             RDBDocumentNodeStoreBuilder builder = newRDBDocumentNodeStoreBuilder();
             configureBuilder(builder);
@@ -419,7 +419,7 @@ public class DocumentNodeStoreService {
             nodeStore, props);
     }
 
-    private void configureBuilder(DocumentNodeStoreBuilder builder) {
+    private void configureBuilder(DocumentNodeStoreBuilder<?> builder) {
         String persistentCache = resolvePath(config.persistentCache(), DEFAULT_PERSISTENT_CACHE);
         String journalCache = resolvePath(config.journalCache(), DEFAULT_JOURNAL_CACHE);
         builder.setStatisticsProvider(statisticsProvider).
@@ -688,7 +688,7 @@ public class DocumentNodeStoreService {
         }
     }
 
-    private void registerJMXBeans(final DocumentNodeStore store, DocumentNodeStoreBuilder mkBuilder) throws
+    private void registerJMXBeans(final DocumentNodeStore store, DocumentNodeStoreBuilder<?> mkBuilder) throws
             IOException {
         registerCacheStatsMBean(store.getNodeCacheStats());
         registerCacheStatsMBean(store.getNodeChildrenCacheStats());

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java Thu Dec  7 09:17:23 2017
@@ -49,7 +49,7 @@ public class LocalDiffCache extends Diff
     private final Cache<RevisionsKey, Diff> diffCache;
     private final CacheStats diffCacheStats;
 
-    LocalDiffCache(DocumentNodeStoreBuilder builder) {
+    LocalDiffCache(DocumentNodeStoreBuilder<?> builder) {
         this.diffCache = builder.buildLocalDiffCache();
         this.diffCacheStats = new CacheStats(diffCache,
                 "Document-LocalDiff",

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java Thu Dec  7 09:17:23 2017
@@ -59,7 +59,7 @@ public class MemoryDiffCache extends Dif
     protected final CacheStats diffCacheStats;
 
 
-    protected MemoryDiffCache(DocumentNodeStoreBuilder builder) {
+    protected MemoryDiffCache(DocumentNodeStoreBuilder<?> builder) {
         diffCache = builder.buildMemoryDiffCache();
         diffCacheStats = new CacheStats(diffCache, "Document-MemoryDiff",
                 builder.getWeigher(), builder.getMemoryDiffCacheSize());

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java Thu Dec  7 09:17:23 2017
@@ -32,7 +32,7 @@ class TieredDiffCache extends DiffCache
     private final DiffCache localCache;
     private final DiffCache memoryCache;
 
-    TieredDiffCache(DocumentNodeStoreBuilder builder) {
+    TieredDiffCache(DocumentNodeStoreBuilder<?> builder) {
         this.localCache = new LocalDiffCache(builder);
         this.memoryCache = new MemoryDiffCache(builder);
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java Thu Dec  7 09:17:23 2017
@@ -16,41 +16,13 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
-import java.net.UnknownHostException;
-import java.util.concurrent.TimeUnit;
-
-import javax.annotation.Nonnull;
-
-import com.mongodb.DB;
-import com.mongodb.MongoClientOptions;
-import com.mongodb.ReadConcernLevel;
-
-import org.apache.jackrabbit.oak.plugins.blob.ReferencedBlob;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
-import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBuilder;
-import org.apache.jackrabbit.oak.plugins.document.DocumentStore;
-import org.apache.jackrabbit.oak.plugins.document.MissingLastRevSeeker;
-import org.apache.jackrabbit.oak.plugins.document.VersionGCSupport;
-import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
-import org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static com.google.common.base.Suppliers.memoize;
-import static org.apache.jackrabbit.oak.plugins.document.util.MongoConnection.readConcernLevel;
 
 /**
  * A builder for a {@link DocumentNodeStore} backed by MongoDB.
  */
-public class MongoDocumentNodeStoreBuilder<T extends MongoDocumentNodeStoreBuilder<T>>
-        extends DocumentNodeStoreBuilder<T> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(MongoDocumentNodeStoreBuilder.class);
-
-    private String mongoUri;
-    private boolean socketKeepAlive;
-    private MongoStatus mongoStatus;
-    private long maxReplicationLagMillis = TimeUnit.HOURS.toMillis(6);
+public class MongoDocumentNodeStoreBuilder
+        extends MongoDocumentNodeStoreBuilderBase<MongoDocumentNodeStoreBuilder> {
 
     /**
      * @return a new {@link MongoDocumentNodeStoreBuilder}.
@@ -58,165 +30,4 @@ public class MongoDocumentNodeStoreBuild
     public static MongoDocumentNodeStoreBuilder newMongoDocumentNodeStoreBuilder() {
         return new MongoDocumentNodeStoreBuilder();
     }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected T thisBuilder() {
-        return (T) this;
-    }
-
-    /**
-     * Uses the given information to connect to to MongoDB as backend
-     * storage for the DocumentNodeStore. The write concern is either
-     * taken from the URI or determined automatically based on the MongoDB
-     * setup. When running on a replica set without explicit write concern
-     * in the URI, the write concern will be {@code MAJORITY}, otherwise
-     * {@code ACKNOWLEDGED}.
-     *
-     * @param uri a MongoDB URI.
-     * @param name the name of the database to connect to. This overrides
-     *             any database name given in the {@code uri}.
-     * @param blobCacheSizeMB the blob cache size in MB.
-     * @return this
-     * @throws UnknownHostException if one of the hosts given in the URI
-     *          is unknown.
-     */
-    public T setMongoDB(@Nonnull String uri,
-                        @Nonnull String name,
-                        int blobCacheSizeMB)
-            throws UnknownHostException {
-        this.mongoUri = uri;
-
-        MongoClientOptions.Builder options = MongoConnection.getDefaultBuilder();
-        options.socketKeepAlive(socketKeepAlive);
-        DB db = new MongoConnection(uri, options).getDB(name);
-        MongoStatus status = new MongoStatus(db);
-        if (!MongoConnection.hasWriteConcern(uri)) {
-            db.setWriteConcern(MongoConnection.getDefaultWriteConcern(db));
-        }
-        if (status.isMajorityReadConcernSupported() && status.isMajorityReadConcernEnabled() && !MongoConnection.hasReadConcern(uri)) {
-            db.setReadConcern(MongoConnection.getDefaultReadConcern(db));
-        }
-        setMongoDB(db, status, blobCacheSizeMB);
-        return thisBuilder();
-    }
-
-    /**
-     * Use the given MongoDB as backend storage for the DocumentNodeStore.
-     *
-     * @param db the MongoDB connection
-     * @return this
-     */
-    public T setMongoDB(@Nonnull DB db,
-                        int blobCacheSizeMB) {
-        return setMongoDB(db, new MongoStatus(db), blobCacheSizeMB);
-    }
-
-    /**
-     * Use the given MongoDB as backend storage for the DocumentNodeStore.
-     *
-     * @param db the MongoDB connection
-     * @return this
-     */
-    public T setMongoDB(@Nonnull DB db) {
-        return setMongoDB(db, 16);
-    }
-
-    /**
-     * Enables the socket keep-alive option for MongoDB. The default is
-     * disabled.
-     *
-     * @param enable whether to enable it.
-     * @return this
-     */
-    public T setSocketKeepAlive(boolean enable) {
-        this.socketKeepAlive = enable;
-        return thisBuilder();
-    }
-
-    public T setMaxReplicationLag(long duration, TimeUnit unit){
-        maxReplicationLagMillis = unit.toMillis(duration);
-        return thisBuilder();
-    }
-
-    public VersionGCSupport createVersionGCSupport() {
-        DocumentStore store = getDocumentStore();
-        if (store instanceof MongoDocumentStore) {
-            return new MongoVersionGCSupport((MongoDocumentStore) store);
-        } else {
-            return super.createVersionGCSupport();
-        }
-    }
-
-    public Iterable<ReferencedBlob> createReferencedBlobs(DocumentNodeStore ns) {
-        final DocumentStore store = getDocumentStore();
-        if (store instanceof MongoDocumentStore) {
-            return () -> new MongoBlobReferenceIterator(ns, (MongoDocumentStore) store);
-        } else {
-            return super.createReferencedBlobs(ns);
-        }
-    }
-
-    public MissingLastRevSeeker createMissingLastRevSeeker() {
-        final DocumentStore store = getDocumentStore();
-        if (store instanceof MongoDocumentStore) {
-            return new MongoMissingLastRevSeeker((MongoDocumentStore) store, getClock());
-        } else {
-            return super.createMissingLastRevSeeker();
-        }
-    }
-
-    /**
-     * Returns the Mongo URI used in the {@link #setMongoDB(String, String, int)} method.
-     *
-     * @return the Mongo URI or null if the {@link #setMongoDB(String, String, int)} method hasn't
-     * been called.
-     */
-    String getMongoUri() {
-        return mongoUri;
-    }
-
-    /**
-     * Returns the status of the Mongo server configured in the {@link #setMongoDB(String, String, int)} method.
-     *
-     * @return the status or null if the {@link #setMongoDB(String, String, int)} method hasn't
-     * been called.
-     */
-    MongoStatus getMongoStatus() {
-        return mongoStatus;
-    }
-
-    long getMaxReplicationLagMillis() {
-        return maxReplicationLagMillis;
-    }
-
-    private T setMongoDB(@Nonnull DB db,
-                         MongoStatus status,
-                         int blobCacheSizeMB) {
-        if (!MongoConnection.hasSufficientWriteConcern(db)) {
-            LOG.warn("Insufficient write concern: " + db.getWriteConcern()
-                    + " At least " + MongoConnection.getDefaultWriteConcern(db) + " is recommended.");
-        }
-        if (status.isMajorityReadConcernSupported() && !status.isMajorityReadConcernEnabled()) {
-            LOG.warn("The read concern should be enabled on mongod using --enableMajorityReadConcern");
-        } else if (status.isMajorityReadConcernSupported() && !MongoConnection.hasSufficientReadConcern(db)) {
-            ReadConcernLevel currentLevel = readConcernLevel(db.getReadConcern());
-            ReadConcernLevel recommendedLevel = readConcernLevel(MongoConnection.getDefaultReadConcern(db));
-            if (currentLevel == null) {
-                LOG.warn("Read concern hasn't been set. At least " + recommendedLevel + " is recommended.");
-            } else {
-                LOG.warn("Insufficient read concern: " + currentLevel + ". At least " + recommendedLevel + " is recommended.");
-            }
-        }
-
-        this.mongoStatus = status;
-        this.documentStoreSupplier = memoize(() -> new MongoDocumentStore(
-                db, MongoDocumentNodeStoreBuilder.this));
-
-        if (this.blobStore == null) {
-            GarbageCollectableBlobStore s = new MongoBlobStore(db, blobCacheSizeMB * 1024 * 1024L);
-            setGCBlobStore(s);
-        }
-        return thisBuilder();
-    }
 }

Copied: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java (from r1817310, jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java?p2=jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java&p1=jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java&r1=1817310&r2=1817340&rev=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java Thu Dec  7 09:17:23 2017
@@ -40,9 +40,10 @@ import static com.google.common.base.Sup
 import static org.apache.jackrabbit.oak.plugins.document.util.MongoConnection.readConcernLevel;
 
 /**
- * A builder for a {@link DocumentNodeStore} backed by MongoDB.
+ * A base builder implementation for a {@link DocumentNodeStore} backed by
+ * MongoDB.
  */
-public class MongoDocumentNodeStoreBuilder<T extends MongoDocumentNodeStoreBuilder<T>>
+public abstract class MongoDocumentNodeStoreBuilderBase<T extends MongoDocumentNodeStoreBuilderBase<T>>
         extends DocumentNodeStoreBuilder<T> {
 
     private static final Logger LOG = LoggerFactory.getLogger(MongoDocumentNodeStoreBuilder.class);
@@ -53,19 +54,6 @@ public class MongoDocumentNodeStoreBuild
     private long maxReplicationLagMillis = TimeUnit.HOURS.toMillis(6);
 
     /**
-     * @return a new {@link MongoDocumentNodeStoreBuilder}.
-     */
-    public static MongoDocumentNodeStoreBuilder newMongoDocumentNodeStoreBuilder() {
-        return new MongoDocumentNodeStoreBuilder();
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    protected T thisBuilder() {
-        return (T) this;
-    }
-
-    /**
      * Uses the given information to connect to to MongoDB as backend
      * storage for the DocumentNodeStore. The write concern is either
      * taken from the URI or determined automatically based on the MongoDB
@@ -211,7 +199,7 @@ public class MongoDocumentNodeStoreBuild
 
         this.mongoStatus = status;
         this.documentStoreSupplier = memoize(() -> new MongoDocumentStore(
-                db, MongoDocumentNodeStoreBuilder.this));
+                db, MongoDocumentNodeStoreBuilderBase.this));
 
         if (this.blobStore == null) {
             GarbageCollectableBlobStore s = new MongoBlobStore(db, blobCacheSizeMB * 1024 * 1024L);

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java Thu Dec  7 09:17:23 2017
@@ -230,7 +230,7 @@ public class MongoDocumentStore implemen
 
     private static final Key KEY_MODIFIED = new Key(MODIFIED_IN_SECS, null);
 
-    public MongoDocumentStore(DB db, MongoDocumentNodeStoreBuilder builder) {
+    public MongoDocumentStore(DB db, MongoDocumentNodeStoreBuilderBase<?> builder) {
         MongoStatus mongoStatus = builder.getMongoStatus();
         if (mongoStatus == null) {
             mongoStatus = new MongoStatus(db);

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java Thu Dec  7 09:17:23 2017
@@ -30,8 +30,8 @@ import static com.google.common.base.Sup
 /**
  * A builder for a {@link DocumentNodeStore} backed by a relational database.
  */
-public class RDBDocumentNodeStoreBuilder<T extends RDBDocumentNodeStoreBuilder<T>>
-        extends DocumentNodeStoreBuilder<T> {
+public class RDBDocumentNodeStoreBuilder
+        extends DocumentNodeStoreBuilder<RDBDocumentNodeStoreBuilder> {
 
     /**
      * @return a new {@link RDBDocumentNodeStoreBuilder}.
@@ -40,19 +40,13 @@ public class RDBDocumentNodeStoreBuilder
         return new RDBDocumentNodeStoreBuilder();
     }
 
-    @SuppressWarnings("unchecked")
-    @Override
-    protected T thisBuilder() {
-        return (T) this;
-    }
-
     /**
      * Sets a {@link DataSource} to use for the RDB document and blob
      * stores.
      *
      * @return this
      */
-    public T setRDBConnection(DataSource ds) {
+    public RDBDocumentNodeStoreBuilder setRDBConnection(DataSource ds) {
         setRDBConnection(ds, new RDBOptions());
         return thisBuilder();
     }
@@ -63,7 +57,7 @@ public class RDBDocumentNodeStoreBuilder
      *
      * @return this
      */
-    public T setRDBConnection(DataSource ds, RDBOptions options) {
+    public RDBDocumentNodeStoreBuilder setRDBConnection(DataSource ds, RDBOptions options) {
         this.documentStoreSupplier = ofInstance(new RDBDocumentStore(ds, this, options));
         if(blobStore == null) {
             GarbageCollectableBlobStore s = new RDBBlobStore(ds, options);
@@ -78,7 +72,7 @@ public class RDBDocumentNodeStoreBuilder
      *
      * @return this
      */
-    public T setRDBConnection(DataSource documentStoreDataSource, DataSource blobStoreDataSource) {
+    public RDBDocumentNodeStoreBuilder setRDBConnection(DataSource documentStoreDataSource, DataSource blobStoreDataSource) {
         this.documentStoreSupplier = ofInstance(new RDBDocumentStore(documentStoreDataSource, this));
         if(blobStore == null) {
             GarbageCollectableBlobStore s = new RDBBlobStore(blobStoreDataSource);

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Thu Dec  7 09:17:23 2017
@@ -246,7 +246,7 @@ public class RDBDocumentStore implements
      * Creates a {@linkplain RDBDocumentStore} instance using the provided
      * {@link DataSource}, {@link DocumentNodeStoreBuilder}, and {@link RDBOptions}.
      */
-    public RDBDocumentStore(DataSource ds, DocumentNodeStoreBuilder builder, RDBOptions options) {
+    public RDBDocumentStore(DataSource ds, DocumentNodeStoreBuilder<?> builder, RDBOptions options) {
         try {
             initialize(ds, builder, options);
         } catch (Exception ex) {
@@ -259,7 +259,7 @@ public class RDBDocumentStore implements
      * {@link DataSource}, {@link DocumentNodeStoreBuilder}, and default
      * {@link RDBOptions}.
      */
-    public RDBDocumentStore(DataSource ds, DocumentNodeStoreBuilder builder) {
+    public RDBDocumentStore(DataSource ds, DocumentNodeStoreBuilder<?> builder) {
         this(ds, builder, new RDBOptions());
     }
 
@@ -862,7 +862,7 @@ public class RDBDocumentStore implements
 
     private final RDBDocumentSerializer ser = new RDBDocumentSerializer(this);
 
-    private void initialize(DataSource ds, DocumentNodeStoreBuilder builder, RDBOptions options) throws Exception {
+    private void initialize(DataSource ds, DocumentNodeStoreBuilder<?> builder, RDBOptions options) throws Exception {
         this.stats = builder.getDocumentStoreStatsCollector();
         this.tableMeta.put(Collection.NODES,
                 new RDBTableMetaData(createTableName(options.getTablePrefix(), TABLEMAP.get(Collection.NODES))));

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/DocumentFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/DocumentFactory.java?rev=1817340&r1=1817339&r2=1817340&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/DocumentFactory.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/DocumentFactory.java Thu Dec  7 09:17:23 2017
@@ -22,7 +22,7 @@ abstract class DocumentFactory implement
 
     private static final long MB = 1024 * 1024;
 
-    static <T extends DocumentNodeStoreBuilder> T baseConfiguration(T builder, int cacheSize) {
+    static <T extends DocumentNodeStoreBuilder<?>> T baseConfiguration(T builder, int cacheSize) {
         boolean fastMigration = !Boolean.getBoolean("mongomk.disableFastMigration");
         builder.memoryCacheSize(cacheSize * MB);
         if (fastMigration) {