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-rewriter.git


The following commit(s) were added to refs/heads/master by this push:
     new 509dae0  Make project buildable (including tests) on Java 25
509dae0 is described below

commit 509dae056544d0f96c0712a6d488ae08e0c3af97
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Wed Oct 28 16:07:09 2026 +0100

    Make project buildable (including tests) on Java 25
---
 pom.xml                                            | 12 +++--------
 .../impl/ProcessorConfigurationImplTest.java       |  4 ++--
 .../apache/sling/rewriter/it/tests/EmojiIT.java    | 24 ++++++++++++++++------
 .../rewriter/it/tests/RewriterTestSupport.java     | 24 +++++++++++++++++++++-
 4 files changed, 46 insertions(+), 18 deletions(-)

diff --git a/pom.xml b/pom.xml
index 66d7be9..e5617d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,7 +45,7 @@
   </scm>
 
     <properties>
-        <org.ops4j.pax.exam.version>4.13.3</org.ops4j.pax.exam.version>
+        <org.ops4j.pax.exam.version>4.14.0</org.ops4j.pax.exam.version>
         
<project.build.outputTimestamp>1714468597</project.build.outputTimestamp>
     </properties>
 
@@ -144,7 +144,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.paxexam</artifactId>
-            <version>3.1.0</version>
+            <version>4.1.2</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -222,7 +222,7 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>1.9.5</version>
+            <version>5.24.0</version>
             <scope>test</scope>
         </dependency>
         <!-- Apache Felix -->
@@ -240,12 +240,6 @@
             <scope>test</scope>
         </dependency>
         <!-- testing -->
-        <dependency>
-            <groupId>org.apache.servicemix.bundles</groupId>
-            <artifactId>org.apache.servicemix.bundles.hamcrest</artifactId>
-            <version>1.3_1</version>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>org.ops4j.pax.exam</groupId>
             <artifactId>pax-exam</artifactId>
diff --git 
a/src/test/java/org/apache/sling/rewriter/impl/ProcessorConfigurationImplTest.java
 
b/src/test/java/org/apache/sling/rewriter/impl/ProcessorConfigurationImplTest.java
index 7d6af9d..7673090 100644
--- 
a/src/test/java/org/apache/sling/rewriter/impl/ProcessorConfigurationImplTest.java
+++ 
b/src/test/java/org/apache/sling/rewriter/impl/ProcessorConfigurationImplTest.java
@@ -37,11 +37,11 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import com.google.common.collect.ImmutableMap;
 
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(MockitoJUnitRunner.Silent.class)
 public class ProcessorConfigurationImplTest {
     
     @Rule
diff --git a/src/test/java/org/apache/sling/rewriter/it/tests/EmojiIT.java 
b/src/test/java/org/apache/sling/rewriter/it/tests/EmojiIT.java
index f24a299..deb3dc4 100644
--- a/src/test/java/org/apache/sling/rewriter/it/tests/EmojiIT.java
+++ b/src/test/java/org/apache/sling/rewriter/it/tests/EmojiIT.java
@@ -20,6 +20,7 @@ package org.apache.sling.rewriter.it.tests;
 
 import java.io.IOException;
 
+import org.jsoup.HttpStatusException;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -30,8 +31,7 @@ import org.ops4j.pax.exam.junit.PaxExam;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertEquals;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
@@ -40,21 +40,33 @@ public class EmojiIT extends RewriterTestSupport {
     private Document document;
 
     @Before
-    public void setup() throws IOException {
+    public void setup() throws IOException, InterruptedException {
         final String url = 
String.format("http://localhost:%s/rewriter/emoji.html";, httpPort());
-        document = Jsoup.connect(url).get();
+        // Sling might still be starting up and respond with 503
+        final long timeout = System.currentTimeMillis() + 30_000;
+        while (true) {
+            try {
+                document = Jsoup.connect(url).get();
+                return;
+            } catch (final HttpStatusException e) {
+                if (e.getStatusCode() != 503 || System.currentTimeMillis() > 
timeout) {
+                    throw e;
+                }
+                Thread.sleep(500);
+            }
+        }
     }
 
     @Test
     public void testTitle() throws IOException {
         final String title = document.title();
-        assertThat(title, is("emoji test"));
+        assertEquals("emoji test", title);
     }
 
     @Test
     public void testContent() throws IOException {
         final Element content = document.getElementById("content");
-        assertThat(content.text(), is("\u2602\uD83D\uDE03 \uD83C\uDF40 
\uD83C\uDF40 \uD83C\uDF40 \uD83D\uDE01 \uD83C\uDF40\uD83C\uDF40"));
+        assertEquals("\u2602\uD83D\uDE03 \uD83C\uDF40 \uD83C\uDF40 
\uD83C\uDF40 \uD83D\uDE01 \uD83C\uDF40\uD83C\uDF40", content.text());
     }
 
 }
diff --git 
a/src/test/java/org/apache/sling/rewriter/it/tests/RewriterTestSupport.java 
b/src/test/java/org/apache/sling/rewriter/it/tests/RewriterTestSupport.java
index 946c1ae..e6ed71f 100644
--- a/src/test/java/org/apache/sling/rewriter/it/tests/RewriterTestSupport.java
+++ b/src/test/java/org/apache/sling/rewriter/it/tests/RewriterTestSupport.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
 
 import org.apache.sling.api.servlets.ServletResolver;
 import org.apache.sling.resource.presence.ResourcePresence;
+import org.apache.sling.testing.paxexam.SlingOptions;
 import org.apache.sling.testing.paxexam.TestSupport;
 import org.ops4j.pax.exam.Configuration;
 import org.ops4j.pax.exam.Option;
@@ -42,6 +43,14 @@ import static 
org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfigurati
 
 public abstract class RewriterTestSupport extends TestSupport {
 
+    private static final String OAK_VERSION = "1.74.0";
+
+    private static final String[] OAK_ARTIFACTS = {
+        "oak-api", "oak-authorization-principalbased", "oak-blob", 
"oak-blob-plugins", "oak-commons",
+        "oak-core", "oak-core-spi", "oak-jackrabbit-api", "oak-jcr", 
"oak-lucene", "oak-query-spi",
+        "oak-security-spi", "oak-segment-tar", "oak-store-composite", 
"oak-store-document", "oak-store-spi"
+    };
+
     @Inject
     protected ServletResolver servletResolver;
 
@@ -54,8 +63,19 @@ public abstract class RewriterTestSupport extends 
TestSupport {
 
     @Configuration
     public Option[] configuration() {
+        // SPI Fly 1.3.8 embeds ASM 9.10.1, required for running on recent 
JDKs (25+)
+        SlingOptions.versionResolver.setVersion("org.apache.aries.spifly", 
"org.apache.aries.spifly.dynamic.framework.extension", "1.3.8");
+        // Oak 1.74+ no longer uses Subject.getSubject(), which is unsupported 
on JDK 24+
+        for (final String oakArtifact : OAK_ARTIFACTS) {
+            SlingOptions.versionResolver.setVersion("org.apache.jackrabbit", 
oakArtifact, OAK_VERSION);
+        }
+        SlingOptions.versionResolver.setVersion("commons-codec", 
"commons-codec", "1.17.2");
+        SlingOptions.versionResolver.setVersion("commons-io", "commons-io", 
"2.18.0");
+        SlingOptions.versionResolver.setVersion("org.apache.commons", 
"commons-lang3", "3.17.0");
+        SlingOptions.versionResolver.setVersion("org.apache.sling", 
"org.apache.sling.jcr.oak.server", "1.4.4");
         return options(
             baseConfiguration(),
+            
mavenBundle().groupId("org.apache.jackrabbit").artifactId("oak-shaded-guava").version(OAK_VERSION),
             quickstart(),
             // Sling Rewriter
             testBundle("bundle.filename"),
@@ -66,11 +86,13 @@ public abstract class RewriterTestSupport extends 
TestSupport {
             
factoryConfiguration("org.apache.sling.resource.presence.internal.ResourcePresenter")
                 .put("path", "/content/rewriter")
                 .asOption(),
+            
factoryConfiguration("org.apache.sling.jcr.repoinit.RepositoryInitializer")
+                .put("scripts", new String[]{"set ACL for everyone\n  allow 
jcr:read on /\nend"})
+                .asOption(),
             // testing
             
mavenBundle().groupId("org.jsoup").artifactId("jsoup").versionAsInProject(),
             
mavenBundle().groupId("org.osgi").artifactId("org.osgi.util.converter").versionAsInProject(),
             
mavenBundle().groupId("org.apache.commons").artifactId("commons-text").versionAsInProject(),
-            
mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.hamcrest").versionAsInProject(),
             slingResourcePresence(),
             junitBundles()
         );

Reply via email to