SLING-11407 Upgrade to Groovy 4
test groovy-json (GROOVY-10881)
diff --git a/pom.xml b/pom.xml
index 1043caf..98abf42 100644
--- a/pom.xml
+++ b/pom.xml
@@ -245,6 +245,12 @@
<version>${groovy.version}</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.groovy</groupId>
+ <artifactId>groovy-json</artifactId>
+ <version>${groovy.version}</version>
+ <scope>test</scope>
+ </dependency>
<!-- jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
diff --git a/src/test/java/org/apache/sling/scripting/groovy/it/GroovyTestSupport.java b/src/test/java/org/apache/sling/scripting/groovy/it/GroovyTestSupport.java
index 9b3e2fc..163c4f7 100644
--- a/src/test/java/org/apache/sling/scripting/groovy/it/GroovyTestSupport.java
+++ b/src/test/java/org/apache/sling/scripting/groovy/it/GroovyTestSupport.java
@@ -39,6 +39,7 @@
import static org.apache.sling.testing.paxexam.SlingOptions.slingQuickstartOakTar;
import static org.apache.sling.testing.paxexam.SlingOptions.slingResourcePresence;
import static org.apache.sling.testing.paxexam.SlingOptions.slingScripting;
+import static org.apache.sling.testing.paxexam.SlingOptions.spifly;
import static org.ops4j.pax.exam.CoreOptions.composite;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfiguration;
@@ -78,6 +79,7 @@
mavenBundle().groupId("org.apache.groovy").artifactId("groovy").versionAsInProject(),
mavenBundle().groupId("org.apache.groovy").artifactId("groovy-templates").versionAsInProject(),
// testing
+ testGroovyJson(),
slingResourcePresence(),
factoryConfiguration("org.apache.sling.jcr.repoinit.RepositoryInitializer")
.put("scripts", new String[]{"create path (sling:OrderedFolder) /content/groovy\nset ACL for everyone\nallow jcr:read on /content/groovy\nend"})
@@ -94,6 +96,13 @@
return testProbeBuilder;
}
+ protected Option testGroovyJson() {
+ return composite(
+ mavenBundle().groupId("org.apache.groovy").artifactId("groovy-json").versionAsInProject(),
+ spifly()
+ );
+ }
+
protected Option quickstart() {
final int httpPort = findFreePort();
final String workingDirectory = workingDirectory();
diff --git a/src/test/java/org/apache/sling/scripting/groovy/it/app/Page.java b/src/test/java/org/apache/sling/scripting/groovy/it/app/Page.java
index 03b03d5..3ef96bf 100644
--- a/src/test/java/org/apache/sling/scripting/groovy/it/app/Page.java
+++ b/src/test/java/org/apache/sling/scripting/groovy/it/app/Page.java
@@ -18,6 +18,10 @@
*/
package org.apache.sling.scripting.groovy.it.app;
+import java.util.Collections;
+import java.util.Map;
+
+import groovy.json.JsonBuilder;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.Model;
@@ -49,4 +53,10 @@
return resource.getValueMap().get("title", String.class);
}
+ public String getJson() {
+ final Map<String, String> map = Collections.singletonMap("name", getName());
+ final JsonBuilder jsonBuilder = new JsonBuilder(map);
+ return jsonBuilder.toPrettyString();
+ }
+
}
diff --git a/src/test/java/org/apache/sling/scripting/groovy/it/tests/AdaptToModelIT.java b/src/test/java/org/apache/sling/scripting/groovy/it/tests/AdaptToModelIT.java
index 3d0be81..1882e9b 100644
--- a/src/test/java/org/apache/sling/scripting/groovy/it/tests/AdaptToModelIT.java
+++ b/src/test/java/org/apache/sling/scripting/groovy/it/tests/AdaptToModelIT.java
@@ -19,9 +19,11 @@
package org.apache.sling.scripting.groovy.it.tests;
import java.io.IOException;
+import java.util.Map;
import javax.inject.Inject;
+import groovy.json.JsonSlurper;
import org.apache.sling.resource.presence.ResourcePresence;
import org.apache.sling.scripting.groovy.it.GroovyTestSupport;
import org.jsoup.Jsoup;
@@ -78,4 +80,12 @@
assertThat(name.text(), is("adaptto"));
}
+ @Test
+ public void testJson() {
+ final Element name = document.getElementById("json");
+ final JsonSlurper jsonSlurper = new JsonSlurper();
+ final Map<String, String> json = (Map) jsonSlurper.parseText(name.text());
+ assertThat(json.get("name"), is("adaptto"));
+ }
+
}
diff --git a/src/test/resources/initial-content/apps/groovy/page/adaptto/html.gst b/src/test/resources/initial-content/apps/groovy/page/adaptto/html.gst
index 1be8198..d9a182f 100644
--- a/src/test/resources/initial-content/apps/groovy/page/adaptto/html.gst
+++ b/src/test/resources/initial-content/apps/groovy/page/adaptto/html.gst
@@ -27,5 +27,6 @@
</head>
<body>
<span id="name">$page.name</span>
+<span id="json">$page.json</span>
</body>
</html>