SLING-12493 - Apache Sling Scripting JavaScript 3.1.4+ test failed with Java 17 and Java 21 (#5)
* Updated sling-bundle-parent to version 48.
* Upgraded test dependencies to the latest compatible versions.
* Migrated unit tests to use Mockito 5.
Co-authored-by: Scott Yuan <scott.yuan@calgary.ca>
diff --git a/pom.xml b/pom.xml
index 37163bd..d1d43c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling-bundle-parent</artifactId>
- <version>41</version>
+ <version>48</version>
<relativePath />
</parent>
@@ -104,7 +104,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.osgi</artifactId>
- <version>2.1.0</version>
+ <version>2.4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -145,13 +145,13 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.jcr.resource</artifactId>
- <version>2.3.8</version>
+ <version>3.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.testing</artifactId>
- <version>2.1.0</version>
+ <version>2.1.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
@@ -162,32 +162,32 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
- <version>2.3.4</version>
+ <artifactId>org.apache.sling.testing.osgi-mock.junit4</artifactId>
+ <version>3.5.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <version>1.10.19</version>
+ <artifactId>mockito-core</artifactId>
+ <version>5.14.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-api</artifactId>
- <version>2.19.2</version>
- <scope>test</scope>
+ <artifactId>oak-jackrabbit-api</artifactId>
+ <version>1.72.0</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
- <version>2.19.4</version>
+ <version>2.19.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
- <version>2.19.4</version>
+ <version>2.19.6 </version>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/src/test/java/org/apache/sling/scripting/javascript/internal/ScriptEngineHelper.java b/src/test/java/org/apache/sling/scripting/javascript/internal/ScriptEngineHelper.java
index 5a434a8..9867d74 100644
--- a/src/test/java/org/apache/sling/scripting/javascript/internal/ScriptEngineHelper.java
+++ b/src/test/java/org/apache/sling/scripting/javascript/internal/ScriptEngineHelper.java
@@ -33,7 +33,9 @@
import org.apache.sling.commons.testing.osgi.MockBundle;
import org.apache.sling.commons.testing.osgi.MockComponentContext;
import org.apache.sling.scripting.api.ScriptCache;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Wrapper;
@@ -43,19 +45,30 @@
/** Helpers to run javascript code fragments in tests */
public class ScriptEngineHelper {
+
private static ScriptEngine engine;
- private static ScriptCache scriptCache = mock(ScriptCache.class);
+
+ @Mock
+ private static ScriptCache scriptCache;
+
+ @Mock
+ private static RhinoJavaScriptEngineFactoryConfiguration configuration;
+
+ @InjectMocks
+ private RhinoJavaScriptEngineFactory factory;
+
+ public ScriptEngineHelper() {
+ MockitoAnnotations.initMocks(this);
+ }
public static class Data extends HashMap<String, Object> {
}
- private static ScriptEngine getEngine() {
+ private ScriptEngine getEngine() {
if (engine == null) {
synchronized (ScriptEngineHelper.class) {
final RhinoMockComponentContext componentContext = new RhinoMockComponentContext();
final RhinoJavaScriptEngineFactoryConfiguration configuration = mock(RhinoJavaScriptEngineFactoryConfiguration.class);
- RhinoJavaScriptEngineFactory factory = new RhinoJavaScriptEngineFactory();
- Whitebox.setInternalState(factory, "scriptCache", scriptCache);
factory.activate(componentContext, configuration);
engine = factory.getScriptEngine();
}
diff --git a/src/test/java/org/apache/sling/scripting/javascript/wrapper/ScriptableResourceTest.java b/src/test/java/org/apache/sling/scripting/javascript/wrapper/ScriptableResourceTest.java
index 5d250b5..097443e 100644
--- a/src/test/java/org/apache/sling/scripting/javascript/wrapper/ScriptableResourceTest.java
+++ b/src/test/java/org/apache/sling/scripting/javascript/wrapper/ScriptableResourceTest.java
@@ -44,7 +44,7 @@
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.wrappers.ValueMapDecorator;
import org.apache.sling.commons.testing.sling.MockResourceResolver;
-import org.apache.sling.jcr.resource.JcrResourceConstants;
+import org.apache.sling.jcr.resource.api.JcrResourceConstants;
import org.apache.sling.scripting.javascript.RepositoryScriptingTestBase;
import org.apache.sling.scripting.javascript.internal.ScriptEngineHelper;
import org.jetbrains.annotations.NotNull;