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()
);