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

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


The following commit(s) were added to refs/heads/master by this push:
     new ba9a1b2  SLING-12882 Migrate Starter Content to sling api 3.0 and 
models api 2.0 (#12)
ba9a1b2 is described below

commit ba9a1b2dafec7c15210cf9843bae9fe6a9fe3a58
Author: Eric Norman <[email protected]>
AuthorDate: Tue Aug 26 17:54:32 2025 -0700

    SLING-12882 Migrate Starter Content to sling api 3.0 and models api 2.0 
(#12)
---
 pom.xml                                            | 24 +++++++++-------
 .../starter/access/models/AccessFormPage.java      | 15 +++++-----
 .../apache/sling/starter/access/models/Ace.java    | 32 +++++++++------------
 .../apache/sling/starter/access/models/Acl.java    |  4 +--
 .../starter/access/models/RestrictionItem.java     | 33 +++++++++-------------
 .../sling/starter/access/models/package-info.java  |  2 +-
 .../starter/access/models/AccessFormPageTest.java  |  8 +++---
 7 files changed, 57 insertions(+), 61 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9c2f108..0593049 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>org.apache.sling.starter.content</artifactId>
-    <version>1.0.17-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
 
     <name>Apache Sling Starter Content</name>
     <description>This bundle provides content that is loaded in the JCR 
repository
@@ -42,11 +42,10 @@
     </scm>
 
     <properties>
-        <sling.java.version>11</sling.java.version>
+        <sling.java.version>17</sling.java.version>
         <frontend.target>target/frontend</frontend.target>
         
<project.build.outputTimestamp>1734087596</project.build.outputTimestamp>
         <oak.version>1.16.0</oak.version>
-        <junit-jupiter.version>5.10.0</junit-jupiter.version>
     </properties>
     <dependencies>
         <dependency>
@@ -77,20 +76,21 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <version>6.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.api</artifactId>
-            <version>2.27.0</version>
+            <version>3.0.2</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.models.api</artifactId>
-            <version>1.4.2</version>
+            <version>2.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -120,9 +120,15 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             
<artifactId>org.apache.sling.jcr.jackrabbit.accessmanager</artifactId>
-            <version>4.0.2</version>
+            <version>5.0.0</version>
             <scope>provided</scope>
         </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
@@ -132,13 +138,11 @@
         <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-api</artifactId>
-            <version>${junit-jupiter.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-engine</artifactId>
-            <version>${junit-jupiter.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git 
a/src/main/java/org/apache/sling/starter/access/models/AccessFormPage.java 
b/src/main/java/org/apache/sling/starter/access/models/AccessFormPage.java
index 30129b6..3c679aa 100644
--- a/src/main/java/org/apache/sling/starter/access/models/AccessFormPage.java
+++ b/src/main/java/org/apache/sling/starter/access/models/AccessFormPage.java
@@ -20,15 +20,16 @@ package org.apache.sling.starter.access.models;
 
 import javax.annotation.PostConstruct;
 import javax.jcr.Node;
-import javax.servlet.http.HttpServletResponse;
 
 import java.io.IOException;
 
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.SlingHttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
+import org.apache.sling.api.SlingJakartaHttpServletRequest;
+import org.apache.sling.api.SlingJakartaHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.jcr.jackrabbit.accessmanager.PrivilegesInfo;
 import org.apache.sling.models.annotations.injectorspecific.ScriptVariable;
+import org.apache.sling.models.annotations.injectorspecific.SlingObject;
 
 /**
  * Base class for common ACL/ACE functionality
@@ -36,11 +37,11 @@ import 
org.apache.sling.models.annotations.injectorspecific.ScriptVariable;
 public abstract class AccessFormPage {
     protected PrivilegesInfo privilegesInfo = null;
 
-    @ScriptVariable
-    protected SlingHttpServletRequest request;
+    @SlingObject
+    protected SlingJakartaHttpServletRequest request;
 
-    @ScriptVariable
-    protected SlingHttpServletResponse response;
+    @SlingObject
+    protected SlingJakartaHttpServletResponse response;
 
     @ScriptVariable
     protected Resource resource;
diff --git a/src/main/java/org/apache/sling/starter/access/models/Ace.java 
b/src/main/java/org/apache/sling/starter/access/models/Ace.java
index 5a32767..c144334 100644
--- a/src/main/java/org/apache/sling/starter/access/models/Ace.java
+++ b/src/main/java/org/apache/sling/starter/access/models/Ace.java
@@ -40,7 +40,6 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 import jakarta.json.Json;
 import jakarta.json.JsonArray;
@@ -59,7 +58,7 @@ import org.apache.jackrabbit.api.security.user.UserManager;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinition;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
-import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingJakartaHttpServletRequest;
 import org.apache.sling.api.request.RequestParameter;
 import org.apache.sling.api.request.RequestParameterMap;
 import org.apache.sling.api.resource.ResourceNotFoundException;
@@ -75,7 +74,7 @@ import org.jetbrains.annotations.Nullable;
 /**
  * The ace page options.
  */
-@Model(adaptables = SlingHttpServletRequest.class)
+@Model(adaptables = SlingJakartaHttpServletRequest.class)
 public class Ace extends AccessFormPage {
     // for principal ace
     protected static final String PATH_REPOSITORY = "/:repository";
@@ -131,8 +130,8 @@ public class Ace extends AccessFormPage {
         boolean isInValidPrincipal = true;
         if (principalId != null && !principalId.isEmpty()) {
             Session session = 
request.getResourceResolver().adaptTo(Session.class);
-            if (session instanceof JackrabbitSession) {
-                UserManager userManager = ((JackrabbitSession) 
session).getUserManager();
+            if (session instanceof JackrabbitSession jackrabbitSession) {
+                UserManager userManager = jackrabbitSession.getUserManager();
                 if (userManager != null) {
                     Authorizable authorizable = 
userManager.getAuthorizable(principalId);
                     if (authorizable != null) {
@@ -421,8 +420,8 @@ public class Ace extends AccessFormPage {
         } else {
             // non-existing path. We can't determine what is supported there, 
so consider all registered privileges
             Workspace workspace = jcrSession.getWorkspace();
-            if (workspace instanceof JackrabbitWorkspace) {
-                PrivilegeManager privilegeManager = ((JackrabbitWorkspace) 
workspace).getPrivilegeManager();
+            if (workspace instanceof JackrabbitWorkspace jackrabbitWorkspace) {
+                PrivilegeManager privilegeManager = 
jackrabbitWorkspace.getPrivilegeManager();
                 supportedPrivileges = 
privilegeManager.getRegisteredPrivileges();
             }
         }
@@ -484,9 +483,8 @@ public class Ace extends AccessFormPage {
                     if (allowJsonValue != null) {
                         privilegeItem.setAllowExists(true);
                         privilegeItem.setGranted(true);
-                        if (allowJsonValue instanceof JsonObject) {
-                            List<RestrictionItem> restrictionItems =
-                                    jsonToRestrictionItems(srMap, (JsonObject) 
allowJsonValue);
+                        if (allowJsonValue instanceof JsonObject jsonObject) {
+                            List<RestrictionItem> restrictionItems = 
jsonToRestrictionItems(srMap, jsonObject);
                             
privilegeItem.setAllowRestrictions(restrictionItems);
                         }
                     }
@@ -494,9 +492,8 @@ public class Ace extends AccessFormPage {
                     if (denyJsonValue != null) {
                         privilegeItem.setDenyExists(true);
                         privilegeItem.setDenied(true);
-                        if (denyJsonValue instanceof JsonObject) {
-                            List<RestrictionItem> restrictionItems =
-                                    jsonToRestrictionItems(srMap, (JsonObject) 
denyJsonValue);
+                        if (denyJsonValue instanceof JsonObject jsonObject) {
+                            List<RestrictionItem> restrictionItems = 
jsonToRestrictionItems(srMap, jsonObject);
                             
privilegeItem.setDenyRestrictions(restrictionItems);
                         }
                     }
@@ -515,15 +512,14 @@ public class Ace extends AccessFormPage {
             if (rd != null) {
                 Object value = null;
                 JsonValue jsonValue = entry.getValue();
-                if (jsonValue instanceof JsonArray) {
-                    JsonArray jsonArray = (JsonArray) jsonValue;
+                if (jsonValue instanceof JsonArray jsonArray) {
                     String[] values = new String[jsonArray.size()];
                     for (int i = 0; i < values.length; i++) {
                         values[i] = jsonArray.getString(i);
                     }
                     value = values;
-                } else if (jsonValue instanceof JsonString) {
-                    value = ((JsonString) jsonValue).getString();
+                } else if (jsonValue instanceof JsonString jsonString) {
+                    value = jsonString.getString();
                 }
                 restrictionItems.add(new RestrictionItem(rd, value, true));
             }
@@ -543,7 +539,7 @@ public class Ace extends AccessFormPage {
         return getSupportedRestrictions().stream()
                 .map(rd -> new RestrictionDefinitionInfo(rd.getName(), rd))
                 
.sorted(Comparator.comparing(RestrictionDefinitionInfo::getDisplayName))
-                .collect(Collectors.toList());
+                .toList();
     }
 
     /**
diff --git a/src/main/java/org/apache/sling/starter/access/models/Acl.java 
b/src/main/java/org/apache/sling/starter/access/models/Acl.java
index becffae..b10807d 100644
--- a/src/main/java/org/apache/sling/starter/access/models/Acl.java
+++ b/src/main/java/org/apache/sling/starter/access/models/Acl.java
@@ -32,12 +32,12 @@ import jakarta.json.JsonObject;
 import jakarta.json.JsonValue;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
-import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingJakartaHttpServletRequest;
 import org.apache.sling.jcr.jackrabbit.accessmanager.GetAcl;
 import org.apache.sling.models.annotations.Model;
 import org.apache.sling.models.annotations.injectorspecific.OSGiService;
 
-@Model(adaptables = SlingHttpServletRequest.class)
+@Model(adaptables = SlingJakartaHttpServletRequest.class)
 public class Acl extends AccessFormPage {
     private List<PrincipalPrivilege> principalPrivilegeList;
 
diff --git 
a/src/main/java/org/apache/sling/starter/access/models/RestrictionItem.java 
b/src/main/java/org/apache/sling/starter/access/models/RestrictionItem.java
index f57db29..26d3001 100644
--- a/src/main/java/org/apache/sling/starter/access/models/RestrictionItem.java
+++ b/src/main/java/org/apache/sling/starter/access/models/RestrictionItem.java
@@ -49,20 +49,16 @@ public class RestrictionItem {
 
     public String getValue() throws RepositoryException {
         String v = null;
-        if (value instanceof Value) {
-            v = ((Value) value).getString();
-        } else if (value instanceof Value[]) {
-            Value[] va = (Value[]) value;
+        if (value instanceof Value valueObj) {
+            v = valueObj.getString();
+        } else if (value instanceof Value[] va) {
             if (va.length > 0) {
                 v = va[0].getString();
             }
-        } else if (value instanceof String) {
-            v = (String) value;
-        } else if (value instanceof String[]) {
-            String[] values = (String[]) value;
-            if (values.length > 0) {
-                v = values[0];
-            }
+        } else if (value instanceof String valueString) {
+            v = valueString;
+        } else if (value instanceof String[] values && values.length > 0) {
+            v = values[0];
         }
 
         if (v == null) {
@@ -74,17 +70,16 @@ public class RestrictionItem {
 
     public List<String> getValues() throws RepositoryException {
         List<String> values = new ArrayList<>();
-        if (value instanceof Value) {
-            values.add(((Value) value).getString());
-        } else if (value instanceof Value[]) {
-            Value[] va = (Value[]) value;
+        if (value instanceof Value valueObj) {
+            values.add(valueObj.getString());
+        } else if (value instanceof Value[] va) {
             for (Value v : va) {
                 values.add(v.getString());
             }
-        } else if (value instanceof String) {
-            values.add((String) value);
-        } else if (value instanceof String[]) {
-            values.addAll(Arrays.asList((String[]) value));
+        } else if (value instanceof String stringValue) {
+            values.add(stringValue);
+        } else if (value instanceof String[] stringValues) {
+            values.addAll(Arrays.asList(stringValues));
         }
         if (values.isEmpty()) {
             // empty string if no values yet
diff --git 
a/src/main/java/org/apache/sling/starter/access/models/package-info.java 
b/src/main/java/org/apache/sling/starter/access/models/package-info.java
index ef7e797..31c2633 100644
--- a/src/main/java/org/apache/sling/starter/access/models/package-info.java
+++ b/src/main/java/org/apache/sling/starter/access/models/package-info.java
@@ -17,5 +17,5 @@
  * under the License.
  */
 
[email protected]("1.0.0")
[email protected]("2.0.0")
 package org.apache.sling.starter.access.models;
diff --git 
a/src/test/java/org/apache/sling/starter/access/models/AccessFormPageTest.java 
b/src/test/java/org/apache/sling/starter/access/models/AccessFormPageTest.java
index c0f91f9..2d5330b 100644
--- 
a/src/test/java/org/apache/sling/starter/access/models/AccessFormPageTest.java
+++ 
b/src/test/java/org/apache/sling/starter/access/models/AccessFormPageTest.java
@@ -21,8 +21,8 @@ package org.apache.sling.starter.access.models;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.SlingJakartaHttpServletRequest;
+import org.apache.sling.api.SlingJakartaHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.jcr.jackrabbit.accessmanager.PrivilegesInfo;
@@ -48,8 +48,8 @@ abstract class AccessFormPageTest {
         page = createPageModel();
         page.privilegesInfo = Mockito.mock(PrivilegesInfo.class);
         page.resource = Mockito.mock(Resource.class);
-        page.request = Mockito.mock(SlingHttpServletRequest.class);
-        page.response = Mockito.mock(SlingHttpServletResponse.class);
+        page.request = Mockito.mock(SlingJakartaHttpServletRequest.class);
+        page.response = Mockito.mock(SlingJakartaHttpServletResponse.class);
 
         rr = Mockito.mock(ResourceResolver.class);
         currentNode = Mockito.mock(Node.class);

Reply via email to