This is an automated email from the ASF dual-hosted git repository.

reschke pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 6acf9ec316 Revert "OAK-11397 Map Oak to expanded JCR name in 
NameMapper"
6acf9ec316 is described below

commit 6acf9ec31646cb6b4d7b8cec8553945210a5617e
Author: Julian Reschke <[email protected]>
AuthorDate: Sat Feb 1 17:35:23 2025 +0100

    Revert "OAK-11397 Map Oak to expanded JCR name in NameMapper"
    
    This reverts commit 2502f4c343412c48ef2ae5de5fa589dfb28c12cd.
---
 .../apache/jackrabbit/oak/namepath/NameMapper.java | 23 ++-----------
 .../jackrabbit/oak/namepath/NamePathMapper.java    | 12 -------
 .../apache/jackrabbit/oak/namepath/PathMapper.java | 16 ---------
 .../jackrabbit/oak/namepath/package-info.java      |  2 +-
 .../oak/namepath/impl/GlobalNameMapper.java        | 38 ++--------------------
 .../oak/namepath/impl/NamePathMapperImpl.java      | 23 ++-----------
 .../oak/namepath/impl/GlobalNameMapperTest.java    | 31 ++++--------------
 .../oak/namepath/impl/NamePathMapperImplTest.java  | 20 ------------
 .../jackrabbit/oak/jcr/session/SessionContext.java |  6 ----
 9 files changed, 16 insertions(+), 155 deletions(-)

diff --git 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java
index c2d796c1f4..ec62432521 100644
--- 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java
+++ 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java
@@ -63,35 +63,16 @@ public interface NameMapper {
     Map<String, String> getSessionLocalMappings();
 
     /**
-     * Returns the JCR name in qualified form for the given Oak name. The 
given name is
+     * Returns the JCR name for the given Oak name. The given name is
      * expected to have come from a valid Oak repository that contains
      * only valid names with proper namespace mappings. If that's not
      * the case, either a programming error or a repository corruption
      * has occurred and an appropriate unchecked exception gets thrown.
      *
      * @param oakName Oak name
-     * @return JCR name in qualified form
-     * 
-     * @see <a 
href="https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.5.2%20Qualified%20Form";>JCR
 2.0, 3.2.5.2 Qualifed Form</a>
+     * @return JCR name
      */
     @NotNull
     String getJcrName(@NotNull String oakName);
 
-    /**
-     * Returns the JCR name in expanded form for the given Oak name. The given 
name is
-     * expected to have come from a valid Oak repository that contains
-     * only valid names with proper namespace mappings. If that's not
-     * the case, either a programming error or a repository corruption
-     * has occurred and an appropriate unchecked exception gets thrown.
-     *
-     * @param oakName Oak name
-     * @return JCR name in expanded form
-     * @since Oak 1.76.0
-     * @throws IllegalStateException in case the namespace URI for the given 
Oak name cannot be resolved
-     * 
-     * @see <a 
href="https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.5.1%20Expanded%20Form";>JCR
 2.0, 3.2.5.1 Expanded Form</a>
-     */
-    @NotNull
-    String getExpandedJcrName(@NotNull String oakName);
-
 }
diff --git 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java
 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java
index 5e756e0dbe..5ab341a0c2 100644
--- 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java
+++ 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapper.java
@@ -62,12 +62,6 @@ public interface NamePathMapper extends NameMapper, 
PathMapper {
             return oakName;
         }
 
-        @NotNull
-        @Override
-        public String getExpandedJcrName(@NotNull String oakName) {
-            throw new UnsupportedOperationException("Cannot create expanded 
JCR name as no namespace mappings are available");
-        }
-
         @Override
         public String getOakPath(String jcrPath) {
             return jcrPath;
@@ -78,11 +72,5 @@ public interface NamePathMapper extends NameMapper, 
PathMapper {
         public String getJcrPath(String oakPath) {
             return oakPath;
         }
-
-        @NotNull
-        @Override
-        public String getExpandedJcrPath(@NotNull String oakPath) {
-            throw new UnsupportedOperationException("Cannot create expanded 
JCR path as no namespace mappings are available");
-        }
     }
 }
diff --git 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
index 5e451f3059..d99cdb41b2 100644
--- 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
+++ 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
@@ -56,20 +56,4 @@ public interface PathMapper {
     @NotNull
     String getJcrPath(String oakPath);
 
-    /**
-     * Returns the JCR path in expanded form for the given Oak path. The given 
path is
-     * expected to have come from a valid Oak repository that contains
-     * only valid names with proper namespace mappings. If that's not
-     * the case, either a programming error or a repository corruption
-     * has occurred and an appropriate unchecked exception gets thrown.
-     *
-     * @param oakPath Oak path
-     * @return JCR path in expanded form
-     * @since Oak 1.76.0
-     * @throws IllegalStateException in case the namespace URI for the given 
Oak name cannot be resolved
-     * 
-     * @see <a 
href="https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.5.1%20Expanded%20Form";>JCR
 2.0, 3.2.5.1 Expanded Form</a>
-     */
-    @NotNull
-    String getExpandedJcrPath(@NotNull String oakPath);
 }
diff --git 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/package-info.java
 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/package-info.java
index 746dffb91b..b372e71426 100644
--- 
a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/package-info.java
+++ 
b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/namepath/package-info.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("1.1.0")
+@Version("1.0.1")
 package org.apache.jackrabbit.oak.namepath;
 
 import org.osgi.annotation.versioning.Version;
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapper.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapper.java
index b584254450..d2c54d12c2 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapper.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapper.java
@@ -67,15 +67,10 @@ public class GlobalNameMapper implements NameMapper {
     protected static boolean isExpandedName(String name) {
         if (name.startsWith("{")) {
             int brace = name.indexOf('}', 1);
-            if (brace != -1) {
-                String namespace = name.substring(1, brace);
-                // the empty namespace is valid as well, otherwise it always 
contains a colon (as it is a URI)
-                if (namespace.isEmpty() || namespace.indexOf(':') != -1) {
-                    return true;
-                }
-            }
+            return brace != -1 && name.substring(1, brace).indexOf(':') != -1;
+        } else {
+            return false;
         }
-        return false;
     }
 
     private final Root root;
@@ -128,33 +123,6 @@ public class GlobalNameMapper implements NameMapper {
         return oakName;
     }
 
-    @Override
-    @NotNull
-    public String getExpandedJcrName(@NotNull String oakName) {
-        String qualifiedName = getJcrName(oakName); // sanity check
-        String uri;
-        final String localName;
-        int colon = qualifiedName.indexOf(':');
-        if (colon > 0) {
-            String oakPrefix = qualifiedName.substring(0, colon);
-            // local mapping must take precedence...
-            uri = getSessionLocalMappings().get(oakPrefix);
-            if (uri == null) {
-                // ...over global mappings
-                uri = getNamespacesProperty(oakPrefix);
-            }
-            if (uri == null) {
-                throw new IllegalStateException(
-                        "No namespace mapping found for " + oakName);
-            }
-            localName = qualifiedName.substring(colon + 1);
-        } else {
-            uri = "";
-            localName = qualifiedName;
-        }
-        return "{" + uri + "}" + localName;
-    }
-
     @Override @Nullable
     public String getOakNameOrNull(@NotNull String jcrName) {
         if (jcrName.startsWith("{")) {
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImpl.java
index c38c2cbeb5..3f9c3451c9 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImpl.java
@@ -19,8 +19,6 @@ package org.apache.jackrabbit.oak.namepath.impl;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.function.BooleanSupplier;
-import java.util.function.UnaryOperator;
 
 import javax.jcr.RepositoryException;
 
@@ -75,12 +73,6 @@ public class NamePathMapperImpl implements NamePathMapper {
         return nameMapper.getJcrName(oakName);
     }
 
-    @NotNull
-    @Override
-    public String getExpandedJcrName(@NotNull String oakName) {
-        return nameMapper.getExpandedJcrName(oakName);
-    }
-
     @Override @NotNull
     public Map<String, String> getSessionLocalMappings() {
         return nameMapper.getSessionLocalMappings();
@@ -168,23 +160,14 @@ public class NamePathMapperImpl implements NamePathMapper 
{
     @Override
     @NotNull
     public String getJcrPath(final String oakPath) {
-        return getJcrPath(oakPath, nameMapper::getJcrName, () -> 
nameMapper.getSessionLocalMappings().isEmpty());
-    }
-
-    @Override
-    @NotNull
-    public String getExpandedJcrPath(@NotNull String oakPath) {
-        return getJcrPath(oakPath, nameMapper::getExpandedJcrName, () -> 
false);
-    }
-
-    public String getJcrPath(final String oakPath, final UnaryOperator<String> 
mapFunction, final BooleanSupplier shouldSkipMappingFunction) {
         if ("/".equals(oakPath)) {
             // avoid the need to special case the root path later on
             return "/";
         } else if (oakPath.isEmpty()) {
             // empty path: map to "."
             return ".";
-        } else if (shouldSkipMappingFunction.getAsBoolean()) {
+        } else if (nameMapper.getSessionLocalMappings().isEmpty()) {
+            // no local namespace mappings
             return oakPath;
         }
 
@@ -202,7 +185,7 @@ public class NamePathMapperImpl implements NamePathMapper {
 
             @Override
             public boolean name(String name, int index) {
-                String p = mapFunction.apply(name);
+                String p = nameMapper.getJcrName(name);
                 if (index == 0) {
                     elements.add(p);
                 } else {
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapperTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapperTest.java
index bd1884aac0..d0eade307b 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapperTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/GlobalNameMapperTest.java
@@ -46,7 +46,6 @@ public class GlobalNameMapperTest {
         assertEquals("", mapper.getJcrName(""));
         assertEquals("", mapper.getOakNameOrNull(""));
         assertEquals("", mapper.getOakName(""));
-        assertEquals("{}", mapper.getExpandedJcrName(""));
     }
 
 
@@ -83,11 +82,6 @@ public class GlobalNameMapperTest {
         for (String jcrName : jcrToOak.keySet()) {
             assertEquals(jcrToOak.get(jcrName), 
mapper.getOakNameOrNull(jcrName));
             assertEquals(jcrToOak.get(jcrName), mapper.getOakName(jcrName));
-            if (GlobalNameMapper.isExpandedName(jcrName)) {
-                assertEquals(jcrName, 
mapper.getExpandedJcrName(jcrToOak.get(jcrName)));
-            } else {
-                assertEquals("{}"+jcrName, 
mapper.getExpandedJcrName(jcrToOak.get(jcrName)));
-            }
         }
 
         assertNull(mapper.getOakNameOrNull("{http://www.example.com/bar}bar";));
@@ -101,28 +95,17 @@ public class GlobalNameMapperTest {
 
     @Test
     public void testPrefixedNames() throws RepositoryException {
-        Map<String, String> prefixedToExpanded = new HashMap<>();
-        prefixedToExpanded.put("nt:base", 
"{http://www.jcp.org/jcr/nt/1.0}base";);
-        prefixedToExpanded.put("foo: bar", "{http://www.example.com/foo} bar");
-        prefixedToExpanded.put("quu:bar ", "{http://www.example.com/quu}bar ");
+        List<String> prefixed = new ArrayList<String>();
+        prefixed.add("nt:base");
+        prefixed.add("foo: bar");
+        prefixed.add("quu:bar ");
+        // unknown prefixes are only captured by the NameValidator
+        prefixed.add("unknown:bar");
 
-        for (String name : prefixedToExpanded.keySet()) {
+        for (String name : prefixed) {
             assertEquals(name, mapper.getOakNameOrNull(name));
             assertEquals(name, mapper.getOakName(name));
             assertEquals(name, mapper.getJcrName(name));
-            assertEquals(prefixedToExpanded.get(name), 
mapper.getExpandedJcrName(name));
-        }
-        
-        // unknown prefixes are only captured by the NameValidator
-        String unknownPrefix = "unknown:bar";
-        assertEquals(unknownPrefix, mapper.getOakNameOrNull(unknownPrefix));
-        assertEquals(unknownPrefix, mapper.getOakName(unknownPrefix));
-        assertEquals(unknownPrefix, mapper.getJcrName(unknownPrefix));
-        try {
-            mapper.getExpandedJcrName(unknownPrefix);
-            fail("IllegalStateException expected");
-        } catch (IllegalStateException e) {
-            // successs
         }
     }
 }
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImplTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImplTest.java
index 6aae24b8c9..190bd2e4bf 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImplTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/impl/NamePathMapperImplTest.java
@@ -135,26 +135,6 @@ public class NamePathMapperImplTest {
         }
     }
 
-    @Test
-    public void testOakToExpandedJcr() {
-        assertEquals("/{http://www.example.com/foo}bar";, 
npMapper.getExpandedJcrPath("/oak-foo:bar"));
-        
assertEquals("/{http://www.example.com/foo}bar/{http://www.example.com/quu}qux";,
 npMapper.getExpandedJcrPath("/oak-foo:bar/oak-quu:qux"));
-        assertEquals("{http://www.example.com/foo}bar";, 
npMapper.getExpandedJcrPath("oak-foo:bar"));
-        assertEquals(".", npMapper.getExpandedJcrPath(""));
-
-        try {
-            
npMapper.getExpandedJcrPath("{http://www.jcp.org/jcr/nt/1.0}unstructured";);
-            fail("expanded name should not be accepted");
-        } catch (IllegalArgumentException expected) {
-        }
-
-        try {
-            
npMapper.getExpandedJcrPath("foobar/{http://www.jcp.org/jcr/1.0}content";);
-            fail("expanded name should not be accepted");
-        } catch (IllegalArgumentException expected) {
-        }
-    }
-
     @Test
     public void testInvalidJcrPaths() {
         String[] paths = {
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
index 902e2200c5..fadd201209 100644
--- 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
+++ 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
@@ -353,12 +353,6 @@ public class SessionContext implements NamePathMapper {
         return namePathMapper.getJcrName(oakName);
     }
 
-    @NotNull
-    @Override
-    public String getExpandedJcrName(@NotNull String oakName) {
-        return namePathMapper.getExpandedJcrName(oakName);
-    }
-
     @Override
     @Nullable
     public String getOakPath(String jcrPath) {

Reply via email to