From 862c469544f612b4cfbb07c58203da59bd77a94a Mon Sep 17 00:00:00 2001
From: Robert Munteanu <rombert@apache.org>
Date: Wed, 24 May 2017 18:52:04 +0300
Subject: [PATCH 1/2] OAK-6265 - Remove Mounts.defaultMount methods

These methods break the abstraction of constructing a composite setup
and should not be used. For backwards compatibility reasons they are
only deprecated, but no Oak code calls them anymore.
---
 .../java/org/apache/jackrabbit/oak/spi/mount/Mounts.java   |  5 +++++
 .../jackrabbit/oak/spi/mount/SimpleMountInfoProvider.java  |  2 +-
 .../oak/plugins/index/property/MultiplexersTest.java       | 14 +++++++++++---
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java
index 1147f3cdd9..bc7a94c3f8 100644
--- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java
+++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java
@@ -159,8 +159,10 @@ public final class Mounts {
     /**
      * Returns the default {@link Mount}
      * 
+     * @deprecated Obtain a <tt>MountInfoProvider</tt> and use {@link MountInfoProvider#getDefaultMount()} instead
      * @return the default mount 
      */
+    @Deprecated
     public static Mount defaultMount() {
         return DEFAULT_MOUNT;
     }
@@ -168,9 +170,12 @@ public final class Mounts {
     /**
      * Creates a new default (root) mount with the specified non-default mounts
      * 
+     * @deprecated Deprecated as it breaks the MountIntoProvider abstraction. 
+     * Use {@link #defaultMountInfoProvider()} or {@link #newBuilder()}
      * @param mounts the mounts to configure
      * @return the created mount
      */
+    @Deprecated
     public static Mount defaultMount(Collection<Mount> mounts) {
         return new DefaultMount(mounts);
     }
diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/SimpleMountInfoProvider.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/SimpleMountInfoProvider.java
index 135ef3f30d..a32dff2b80 100644
--- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/SimpleMountInfoProvider.java
+++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/SimpleMountInfoProvider.java
@@ -111,7 +111,7 @@ final class SimpleMountInfoProvider implements MountInfoProvider {
     }
 
     private static Mount defaultMount(Map<String, Mount> mounts) {
-        return Mounts.defaultMount(mounts.values());
+        return new Mounts.DefaultMount(mounts.values());
     }
 
 }
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiplexersTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiplexersTest.java
index 6b346d0474..2352b23125 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiplexersTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/MultiplexersTest.java
@@ -27,18 +27,26 @@ import static org.junit.Assert.assertEquals;
 import org.apache.jackrabbit.oak.spi.mount.Mount;
 import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
 import org.apache.jackrabbit.oak.spi.mount.Mounts;
+import org.junit.Before;
 import org.junit.Test;
 
 public class MultiplexersTest {
 
+	private MountInfoProvider mip;
+
+	@Before
+	public void setUp() {
+        mip = Mounts.defaultMountInfoProvider();
+	}
+	
     @Test
     public void defaultSetup() throws Exception {
-        assertEquals(
+		assertEquals(
                 INDEX_CONTENT_NODE_NAME,
-                getIndexNodeName(Mounts.defaultMountInfoProvider(), "/foo",
+                getIndexNodeName(mip, "/foo",
                         INDEX_CONTENT_NODE_NAME));
         assertEquals(INDEX_CONTENT_NODE_NAME,
-                getNodeForMount(Mounts.defaultMount(), INDEX_CONTENT_NODE_NAME));
+                getNodeForMount(mip.getDefaultMount(), INDEX_CONTENT_NODE_NAME));
     }
 
     @Test
-- 
2.13.0

