You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2013/10/23 16:01:08 UTC
svn commit: r1535033 - in /sling/trunk/launchpad:
integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/
test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/
Author: bdelacretaz
Date: Wed Oct 23 14:01:07 2013
New Revision: 1535033
URL: http://svn.apache.org/r1535033
Log:
SLING-3155 - more precise repository name check
Modified:
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RepositoryNameTest.java
sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java
Modified: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RepositoryNameTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RepositoryNameTest.java?rev=1535033&r1=1535032&r2=1535033&view=diff
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RepositoryNameTest.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RepositoryNameTest.java Wed Oct 23 14:01:07 2013
@@ -16,27 +16,34 @@
*/
package org.apache.sling.launchpad.webapp.integrationtest;
-import java.io.IOException;
-import java.util.regex.Pattern;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.commons.testing.integration.HttpTestBase;
/** Verify the repository name, to make sure we're testing the right one */
public class RepositoryNameTest extends HttpTestBase {
- /** Use the same property that Sling uses to switch between repositories.
- * Current run modes are "jackrabbit" and "oak".
- */
+ /** We use the same property that Sling uses to switch between repositories */
public static final String RUN_MODE_PROP = "sling.run.modes";
public static final String DEFAULT_RUN_MODE = "jackrabbit";
- public void testName() throws IOException {
- final String path = "/testing/RepositoryDescriptors.txt";
+ public static final Map<String, String> RUNMODE_TO_NAME = new HashMap<String, String>();
+
+ static {
+ RUNMODE_TO_NAME.put("jackrabbit", "Jackrabbit");
+ RUNMODE_TO_NAME.put("oak", "Apache Jackrabbit Oak");
+ }
+
+ public void testName() throws Exception {
final String runMode = System.getProperty(RUN_MODE_PROP, DEFAULT_RUN_MODE);
- final String content = getContent(HTTP_BASE_URL + path, CONTENT_TYPE_PLAIN).toLowerCase();
- final Pattern expectedPattern = Pattern.compile("(?s).*jcr.repository.name=[^$]*" + runMode + ".*");
- assertTrue(
- "Expecting lowercased content at " + path + " to match " + expectedPattern + ", content=" + content,
- expectedPattern.matcher(content).matches());
+ final String name = RUNMODE_TO_NAME.get(runMode);
+ assertNotNull("Expecting to have a repository name for run mode " + runMode, name);
+
+ final String path = "/testing/RepositoryDescriptors.json";
+ final JSONObject json = new JSONObject(getContent(HTTP_BASE_URL + path, CONTENT_TYPE_JSON));
+ final String key = "jcr.repository.name";
+ assertEquals("Expecting " + key + "=" + name, name, json.getJSONObject("descriptors").getString(key));
}
}
Modified: sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java?rev=1535033&r1=1535032&r2=1535033&view=diff
==============================================================================
--- sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java (original)
+++ sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/RepositoryDescriptorsServlet.java Wed Oct 23 14:01:07 2013
@@ -17,7 +17,7 @@
package org.apache.sling.launchpad.testservices.servlets;
import java.io.IOException;
-import java.io.PrintWriter;
+import java.util.Arrays;
import javax.jcr.Repository;
import javax.servlet.ServletException;
@@ -30,6 +30,8 @@ import org.apache.felix.scr.annotations.
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.apache.sling.commons.json.JSONException;
+import org.apache.sling.commons.json.io.JSONWriter;
/** Test servlet that dumps our repository descriptors */
@SuppressWarnings("serial")
@@ -38,7 +40,7 @@ import org.apache.sling.api.servlets.Sli
@Properties({ @Property(name = "service.description", value = "Repository Descriptors Servlet"),
@Property(name = "service.vendor", value = "The Apache Software Foundation"),
@Property(name = "sling.servlet.paths", value = "/testing/RepositoryDescriptors"),
- @Property(name = "sling.servlet.extensions", value = "txt")})
+ @Property(name = "sling.servlet.extensions", value = "json")})
public class RepositoryDescriptorsServlet extends SlingSafeMethodsServlet {
@Reference
@@ -47,17 +49,22 @@ public class RepositoryDescriptorsServle
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServletException,IOException {
- final PrintWriter pw = response.getWriter();
- response.setContentType("text/plain");
+ response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
-
- for(String key : repository.getDescriptorKeys()) {
- final String v = repository.getDescriptor(key);
- pw.print(key);
- pw.print("=");
- pw.println(v);
+ try {
+ final JSONWriter w = new JSONWriter(response.getWriter());
+ w.setTidy(Arrays.asList(request.getRequestPathInfo().getSelectors()).contains("tidy"));
+ w.object();
+ w.key("descriptors");
+ w.object();
+ for(String key : repository.getDescriptorKeys()) {
+ w.key(key).value(repository.getDescriptor(key));
+ }
+ w.endObject();
+ w.endObject();
+ } catch(JSONException je) {
+ throw (IOException)new IOException("JSONException in doGet").initCause(je);
}
- pw.flush();
+ response.getWriter().flush();
}
-
}
\ No newline at end of file