You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2023/11/13 15:41:30 UTC

(sling-org-apache-sling-resourceresolver) branch master updated (a65c207 -> ab29b30)

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

cziegeler pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git


    from a65c207  [maven-release-plugin] prepare for next development iteration
     new b1dc3b2  SLING-12149 : ResourceResolver: Illegal mode passthrough for resource provider null
     new ab29b30  SLING-12149 : ResourceResolver: Illegal mode passthrough for resource provider null

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../impl/providers/ResourceProviderInfo.java       |  10 +-
 .../impl/providers/ResourceProviderInfoTest.java   | 102 +++++++++++++++++++++
 2 files changed, 109 insertions(+), 3 deletions(-)
 create mode 100644 src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfoTest.java


(sling-org-apache-sling-resourceresolver) 01/02: SLING-12149 : ResourceResolver: Illegal mode passthrough for resource provider null

Posted by cz...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git

commit b1dc3b2d013bfda46b067f046cfa68ae978c4871
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Nov 13 16:34:25 2023 +0100

    SLING-12149 : ResourceResolver: Illegal mode passthrough for resource provider null
---
 .../impl/providers/ResourceProviderInfo.java       |   3 +-
 .../impl/providers/ResourceProviderInfoTest.java   | 102 +++++++++++++++++++++
 2 files changed, 104 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java b/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java
index 62b1707..6f475dd 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java
@@ -78,7 +78,8 @@ public class ResourceProviderInfo implements Comparable<ResourceProviderInfo> {
         this.adaptable = c.convert(ref.getProperty(ResourceProvider.PROPERTY_ADAPTABLE)).to(boolean.class);
         this.refreshable = c.convert(ref.getProperty(ResourceProvider.PROPERTY_REFRESHABLE)).to(boolean.class);
         this.attributable = c.convert(ref.getProperty(ResourceProvider.PROPERTY_ATTRIBUTABLE)).to(boolean.class);
-        final String modeValue = c.convert(ref.getProperty(ResourceProvider.PROPERTY_MODE)).defaultValue(ResourceProvider.MODE_OVERLAY.toUpperCase()).to(String.class);
+        final String modeValue = c.convert(ref.getProperty(ResourceProvider.PROPERTY_MODE))
+            .defaultValue(ResourceProvider.MODE_OVERLAY).to(String.class).toUpperCase();
         Mode mode = null;
         try {
             mode = Mode.valueOf(modeValue);
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfoTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfoTest.java
new file mode 100644
index 0000000..07509ff
--- /dev/null
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfoTest.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.resourceresolver.impl.providers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.sling.api.resource.runtime.dto.AuthType;
+import org.apache.sling.spi.resource.provider.ResourceProvider;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.osgi.framework.ServiceReference;
+
+public class ResourceProviderInfoTest {
+
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    @Test public void testValidInfo() {
+        final ServiceReference<ResourceProvider> ref = Mockito.mock(ServiceReference.class);
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_ROOT)).thenReturn("/test");
+
+        final ResourceProviderInfo info = new ResourceProviderInfo(ref);
+        assertEquals("/test", info.getPath());
+        assertNull(info.getName());
+        assertEquals(ResourceProviderInfo.Mode.OVERLAY, info.getMode());
+        assertEquals(AuthType.no, info.getAuthType());
+        assertTrue(info.isValid());
+    }
+
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    @Test public void testValidAuthInfo() {
+        final ServiceReference<ResourceProvider> ref = Mockito.mock(ServiceReference.class);
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_ROOT)).thenReturn("/test");
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_AUTHENTICATE)).thenReturn(AuthType.lazy.name());
+
+        final ResourceProviderInfo info = new ResourceProviderInfo(ref);
+        assertEquals("/test", info.getPath());
+        assertNull(info.getName());
+        assertEquals(ResourceProviderInfo.Mode.OVERLAY, info.getMode());
+        assertEquals(AuthType.lazy, info.getAuthType());
+        assertTrue(info.isValid());
+    }
+
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    @Test public void testInvalidAuthInfo() {
+        final ServiceReference<ResourceProvider> ref = Mockito.mock(ServiceReference.class);
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_ROOT)).thenReturn("/test");
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_AUTHENTICATE)).thenReturn("hello");
+
+        final ResourceProviderInfo info = new ResourceProviderInfo(ref);
+        assertEquals("/test", info.getPath());
+        assertNull(info.getName());
+        assertEquals(ResourceProviderInfo.Mode.OVERLAY, info.getMode());
+        assertNull(info.getAuthType());
+        assertFalse(info.isValid());
+    }
+
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    @Test public void testValidMode() {
+        final ServiceReference<ResourceProvider> ref = Mockito.mock(ServiceReference.class);
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_ROOT)).thenReturn("/test");
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_MODE)).thenReturn(ResourceProviderInfo.Mode.PASSTHROUGH.name().toLowerCase());
+
+        final ResourceProviderInfo info = new ResourceProviderInfo(ref);
+        assertEquals("/test", info.getPath());
+        assertNull(info.getName());
+        assertEquals(ResourceProviderInfo.Mode.PASSTHROUGH, info.getMode());
+        assertEquals(AuthType.no, info.getAuthType());
+        assertTrue(info.isValid());
+    }
+
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    @Test public void testInvalidMode() {
+        final ServiceReference<ResourceProvider> ref = Mockito.mock(ServiceReference.class);
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_ROOT)).thenReturn("/test");
+        Mockito.when(ref.getProperty(ResourceProvider.PROPERTY_MODE)).thenReturn("hello");
+
+        final ResourceProviderInfo info = new ResourceProviderInfo(ref);
+        assertEquals("/test", info.getPath());
+        assertNull(info.getName());
+        assertNull(info.getMode());
+        assertEquals(AuthType.no, info.getAuthType());
+        assertFalse(info.isValid());
+    }
+}


(sling-org-apache-sling-resourceresolver) 02/02: SLING-12149 : ResourceResolver: Illegal mode passthrough for resource provider null

Posted by cz...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git

commit ab29b3019110a2be304d8204c0adbb55e0d28a61
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Nov 13 16:40:29 2023 +0100

    SLING-12149 : ResourceResolver: Illegal mode passthrough for resource provider null
---
 .../resourceresolver/impl/providers/ResourceProviderInfo.java      | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java b/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java
index 6f475dd..e075b5e 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderInfo.java
@@ -71,7 +71,7 @@ public class ResourceProviderInfo implements Comparable<ResourceProviderInfo> {
         try {
             aType = AuthType.valueOf(authType);
         } catch ( final IllegalArgumentException iae) {
-            logger.error("Illegal auth type {} for resource provider {}", authType, name);
+            logger.error("Illegal auth type {} for resource provider {} ({})", authType, name, ref);
         }
         this.authType = aType;
         this.modifiable = c.convert(ref.getProperty(ResourceProvider.PROPERTY_MODIFIABLE)).to(boolean.class);
@@ -84,9 +84,12 @@ public class ResourceProviderInfo implements Comparable<ResourceProviderInfo> {
         try {
             mode = Mode.valueOf(modeValue);
         } catch ( final IllegalArgumentException iae) {
-            logger.error("Illegal mode {} for resource provider {}", modeValue, name);
+            logger.error("Illegal mode {} for resource provider {} ({})", modeValue, name, ref);
         }
         this.mode = mode;
+        if ( !path.startsWith("/") ) {
+            logger.error("Path {} does not start with / for resource provider {} ({})", path, name, ref);
+        }
     }
 
     public boolean isValid() {