You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2011/09/07 17:39:41 UTC

svn commit: r1166232 - in /sling/trunk: bundles/extensions/groovy/ bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/ bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/ bundles/extens...

Author: justin
Date: Wed Sep  7 15:39:40 2011
New Revision: 1166232

URL: http://svn.apache.org/viewvc?rev=1166232&view=rev
Log:
SLING-2059 - upgrading to groovy 1.8.2; removing custom JSON Builder and rewriting integration tests to use standard groovy JSON Builder

Added:
    sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JsonBuilderBindingsValuesProvider.java
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JSONGroovyBuilderBindingsValuesProvider.java
    sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/GroovySlingResourceTypeRenderingTest.java
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/GroovySlingResourceTypeRenderingIT.java
    sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JSONGroovyBuilderTest.java
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/JSONGroovyBuilderIT.java
    sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_array.groovy
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy
    sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_object.groovy
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy
    sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_rich_object.groovy
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder2.groovy
    sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.gsp
      - copied, changed from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/rendering-test.gsp
Modified:
    sling/trunk/bundles/extensions/groovy/pom.xml
    sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/JSONGroovyBuilder.java
    sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JSONGroovyBuilderBindingsValuesProvider.java
    sling/trunk/bundles/extensions/groovy/src/test/groovy/org/apache/sling/extensions/groovy/json/JSONGroovyBuilderTest.groovy
    sling/trunk/bundles/extensions/groovy/src/test/java/json/JSONAssert.java
    sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/GroovySlingResourceTypeRenderingIT.java
    sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/JSONGroovyBuilderIT.java
    sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy
    sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder2.groovy
    sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/rendering-test.gsp
    sling/trunk/launchpad/builder/src/main/bundles/list.xml

Modified: sling/trunk/bundles/extensions/groovy/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/groovy/pom.xml?rev=1166232&r1=1166231&r2=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/pom.xml (original)
+++ sling/trunk/bundles/extensions/groovy/pom.xml Wed Sep  7 15:39:40 2011
@@ -54,18 +54,6 @@
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
             </plugin>
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>compile</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
         </plugins>
     </build>
 
@@ -73,7 +61,7 @@
         <dependency>
             <groupId>org.codehaus.groovy</groupId>
             <artifactId>groovy-all</artifactId>
-            <version>1.6.0</version>
+            <version>1.8.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -81,12 +69,6 @@
             <artifactId>slf4j-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.json</artifactId>
-            <version>2.0.4-incubator</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
@@ -110,11 +92,5 @@
             <version>1.0.0</version>
             <scope>provided</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.launchpad.integration-tests</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
\ No newline at end of file

Copied: sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JsonBuilderBindingsValuesProvider.java (from r1166199, sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JSONGroovyBuilderBindingsValuesProvider.java)
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JsonBuilderBindingsValuesProvider.java?p2=sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JsonBuilderBindingsValuesProvider.java&p1=sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JSONGroovyBuilderBindingsValuesProvider.java&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JSONGroovyBuilderBindingsValuesProvider.java (original)
+++ sling/trunk/bundles/extensions/groovy/src/main/java/org/apache/sling/extensions/groovy/json/internal/JsonBuilderBindingsValuesProvider.java Wed Sep  7 15:39:40 2011
@@ -16,17 +16,19 @@
  */
 package org.apache.sling.extensions.groovy.json.internal;
 
+import groovy.json.JsonBuilder;
+
 import java.util.HashMap;
 
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.extensions.groovy.json.JSONGroovyBuilder;
 
 /**
- * BindingsValuesProvider which binds an instance of JSONGroovyBuilder.
+ * BindingsValuesProvider which binds an instance of JsonBuilder.
  */
+@SuppressWarnings("serial")
 @Component(immediate=true, metatype=false)
 @Service
 @Properties({
@@ -34,11 +36,11 @@ import org.apache.sling.extensions.groov
     @Property(name="service.vendor", value="The Apache Software Foundation"),
     @Property(name="javax.script.name", value="groovy")
 })
-public class JSONGroovyBuilderBindingsValuesProvider extends HashMap<String, Object> {
+public class JsonBuilderBindingsValuesProvider extends HashMap<String, Object> {
 
-    public JSONGroovyBuilderBindingsValuesProvider() {
+    public JsonBuilderBindingsValuesProvider() {
         super();
-        put("jsonBuilder", new JSONGroovyBuilder());
+        put("jsonBuilder", new JsonBuilder());
     }
 
 }

Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1166232&r1=1166231&r2=1166232&view=diff
==============================================================================
--- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original)
+++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Wed Sep  7 15:39:40 2011
@@ -180,7 +180,7 @@
         <bundle>
             <groupId>org.codehaus.groovy</groupId>
             <artifactId>groovy-all</artifactId>
-            <version>1.7.4</version>
+            <version>1.8.2</version>
         </bundle>
 
         <!-- felix httpservice whiteboard -->
@@ -308,7 +308,12 @@
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.extensions.explorer</artifactId>
             <version>1.0.2</version>
-        </bundle> 
+        </bundle>
+        <bundle>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.extensions.groovy</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </bundle>
     </startLevel>
 
     <startLevel level="10">

Copied: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/GroovySlingResourceTypeRenderingTest.java (from r1166199, sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/GroovySlingResourceTypeRenderingIT.java)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/GroovySlingResourceTypeRenderingTest.java?p2=sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/GroovySlingResourceTypeRenderingTest.java&p1=sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/GroovySlingResourceTypeRenderingIT.java&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/GroovySlingResourceTypeRenderingIT.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/GroovySlingResourceTypeRenderingTest.java Wed Sep  7 15:39:40 2011
@@ -1,10 +1,26 @@
-package org.apache.sling.extensions.groovy.it;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.sling.launchpad.webapp.integrationtest;
 
 import java.io.IOException;
 
 import org.apache.sling.launchpad.webapp.integrationtest.AbstractSlingResourceTypeRenderingTest;
 
-public class GroovySlingResourceTypeRenderingIT extends AbstractSlingResourceTypeRenderingTest {
+public class GroovySlingResourceTypeRenderingTest extends AbstractSlingResourceTypeRenderingTest {
 
     public void testGspJavaCode() throws IOException {
         final String toDelete = uploadTestScript("rendering-test.gsp","html.gsp");

Copied: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JSONGroovyBuilderTest.java (from r1166199, sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/JSONGroovyBuilderIT.java)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JSONGroovyBuilderTest.java?p2=sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JSONGroovyBuilderTest.java&p1=sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/JSONGroovyBuilderIT.java&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/src/test/java/org/apache/sling/extensions/groovy/it/JSONGroovyBuilderIT.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JSONGroovyBuilderTest.java Wed Sep  7 15:39:40 2011
@@ -1,15 +1,32 @@
-package org.apache.sling.extensions.groovy.it;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.sling.launchpad.webapp.integrationtest;
 
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.sling.commons.json.JSONArray;
 import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.commons.json.JSONObject;
 import org.apache.sling.launchpad.webapp.integrationtest.RenderingTestBase;
 import org.apache.sling.servlets.post.SlingPostConstants;
 
-public class JSONGroovyBuilderIT extends RenderingTestBase {
+public class JSONGroovyBuilderTest extends RenderingTestBase {
     private String slingResourceType;
 
     @Override
@@ -32,8 +49,8 @@ public class JSONGroovyBuilderIT extends
         testClient.mkdirs(WEBDAV_BASE_URL, scriptPath);
     }
 
-    public void testJSONGroovyBuilder() throws IOException, JSONException {
-        final String toDelete = uploadTestScript("builder.groovy","json.groovy");
+    public void testObject() throws IOException, JSONException {
+        final String toDelete = uploadTestScript("builder_object.groovy","json.groovy");
         try {
             final String content = getContent(displayUrl + ".json", CONTENT_TYPE_JSON);
             JSONObject jo = new JSONObject(content);
@@ -44,15 +61,28 @@ public class JSONGroovyBuilderIT extends
             testClient.delete(toDelete);
         }
     }
-
-    public void testJSONGroovyBuilder2() throws IOException, JSONException {
-        final String toDelete = uploadTestScript("builder2.groovy","json.groovy");
+    
+    public void testRichObject() throws IOException, JSONException {
+        final String toDelete = uploadTestScript("builder_rich_object.groovy","json.groovy");
         try {
             final String content = getContent(displayUrl + ".json", CONTENT_TYPE_JSON);
+            System.out.println(content);
             JSONObject jo = new JSONObject(content);
-            assertEquals("Content contained wrong number of items", 1, jo.length());
-            assertEquals("Content contained wrong key", "text", jo.keys().next());
+            assertEquals("Content contained wrong number of items", 2, jo.length());
             assertEquals("Content contained wrong data", testText, jo.get("text"));
+            assertEquals("Content contained wrong data", "bar", ((JSONObject) jo.get("obj")).get("foo"));
+        } finally {
+            testClient.delete(toDelete);
+        }
+    }
+
+    public void testArray() throws IOException, JSONException {
+        final String toDelete = uploadTestScript("builder_array.groovy","json.groovy");
+        try {
+            final String content = getContent(displayUrl + ".json", CONTENT_TYPE_JSON);
+            JSONArray jo = new JSONArray(content);
+            assertEquals("Content contained wrong number of items", 1, jo.length());
+            assertEquals("Content contained wrong data", testText, jo.get(0));
         } finally {
             testClient.delete(toDelete);
         }

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_array.groovy (from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_array.groovy?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_array.groovy&p1=sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy (original)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_array.groovy Wed Sep  7 15:39:40 2011
@@ -17,6 +17,6 @@
  * under the License.
  */
 
-out.write jsonBuilder.json {
-	text currentNode.getProperty("text").string
-} as String
+jsonBuilder(currentNode.getProperty("text").string)
+
+jsonBuilder.writeTo(out) // or out.write jsonBuilder
\ No newline at end of file

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_object.groovy (from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_object.groovy?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_object.groovy&p1=sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder.groovy (original)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_object.groovy Wed Sep  7 15:39:40 2011
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+jsonBuilder text: currentNode.getProperty("text").string
 
-out.write jsonBuilder.json {
-	text currentNode.getProperty("text").string
-} as String
+out.write jsonBuilder // or jsonBuilder.writeTo(out)
\ No newline at end of file

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_rich_object.groovy (from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder2.groovy)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_rich_object.groovy?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_rich_object.groovy&p1=sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder2.groovy&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/builder2.groovy (original)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/builder_rich_object.groovy Wed Sep  7 15:39:40 2011
@@ -16,7 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-jsonBuilder.write(out).json {
+jsonBuilder {
     text currentNode.getProperty("text").string
-}
\ No newline at end of file
+    obj {
+        foo "bar"
+    }
+}
+
+out.write jsonBuilder // or jsonBuilder.writeTo(out)
\ No newline at end of file

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.gsp (from r1166199, sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/rendering-test.gsp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.gsp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.gsp&p1=sling/trunk/bundles/extensions/groovy/src/test/resources/integration-test/rendering-test.gsp&r1=1166199&r2=1166232&rev=1166232&view=diff
==============================================================================
    (empty)