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 2016/12/14 13:37:23 UTC

svn commit: r1774245 - in /sling/trunk/contrib/crankstart/launcher/src: main/java/org/apache/sling/crankstart/junit/ test/java/org/apache/sling/crankstart/launcher/ test/resources/provisioning-model/

Author: bdelacretaz
Date: Wed Dec 14 13:37:23 2016
New Revision: 1774245

URL: http://svn.apache.org/viewvc?rev=1774245&view=rev
Log:
Demonstrate variables in provisioning model configs

Modified:
    sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/junit/CrankstartSetup.java
    sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java
    sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/U.java
    sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt

Modified: sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/junit/CrankstartSetup.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/junit/CrankstartSetup.java?rev=1774245&r1=1774244&r2=1774245&view=diff
==============================================================================
--- sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/junit/CrankstartSetup.java (original)
+++ sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/junit/CrankstartSetup.java Wed Dec 14 13:37:23 2016
@@ -148,6 +148,14 @@ public class CrankstartSetup extends Ext
         
         log.info("Starting {}", this);
         
+        // Add system properties which have the expected prefix
+        for(Object o : System.getProperties().keySet()) {
+            final String key = o.toString();
+            if(key.startsWith(Launcher.VARIABLE_OVERRIDE_PREFIX)) {
+                replacementProps.setProperty(key, System.getProperty(key));
+            }
+        }
+        
         final HttpUriRequest get = new HttpGet(baseUrl);
         replacementProps.setProperty("crankstart.model.http.port", String.valueOf(port));
         replacementProps.setProperty("crankstart.model.osgi.storage.path", storagePath);

Modified: sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java?rev=1774245&r1=1774244&r2=1774245&view=diff
==============================================================================
--- sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java (original)
+++ sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java Wed Dec 14 13:37:23 2016
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertTru
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
+import java.util.UUID;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpGet;
@@ -33,6 +34,17 @@ public class BasicLauncherIT {
     
     private DefaultHttpClient client;
     private static WebconsoleClient osgiConsole;
+    private static final String uniqueText = "Unique text for tests run " + UUID.randomUUID();
+    
+    // The Launcher.VARIABLE_OVERRIDE_PREFIX must be used for system properties that
+    // are meant to provide values for the provisioning model
+    private static final String PROP_UNIQUE_TEXT = Launcher.VARIABLE_OVERRIDE_PREFIX + "single.servlet.text";
+    
+    static {
+        // BeforeClass would be too late for this as it's
+        // the CrankstartSetup rule that needs this.
+        System.setProperty(PROP_UNIQUE_TEXT, uniqueText);
+    }
     
     @Rule
     public final RetryRule retryRule = new RetryRule();
@@ -44,6 +56,7 @@ public class BasicLauncherIT {
     
     @Before
     public void setup() throws IOException {
+        System.getProperties().remove(PROP_UNIQUE_TEXT);
         client = new DefaultHttpClient();
     }
     
@@ -68,6 +81,9 @@ public class BasicLauncherIT {
         try {
             response = client.execute(get);
             assertEquals("Expecting success for " + get.getURI(), 200, response.getStatusLine().getStatusCode());
+            final String content = U.getContent(response);
+            final String expected = "SingleConfigServlet:test content is " + uniqueText;
+            assertEquals(expected, content);
         } finally {
             U.closeConnection(response);
         }

Modified: sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/U.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/U.java?rev=1774245&r1=1774244&r2=1774245&view=diff
==============================================================================
--- sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/U.java (original)
+++ sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/U.java Wed Dec 14 13:37:23 2016
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertNot
 import java.io.IOException;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.UsernamePasswordCredentials;
@@ -62,6 +63,25 @@ public class U {
         .getContent());
     }
     
+    public static String getContent(HttpResponse response) throws IOException{
+    
+        final HttpEntity e = response.getEntity();
+        if(e == null) {
+            throw new IOException("Response does not provide an Entity");
+        }
+        
+        String encoding = "UTF-8";
+        if(response.getEntity().getContentEncoding() != null) {
+            encoding = response.getEntity().getContentEncoding().getValue();
+        }
+        
+        try {
+            return IOUtils.toString(e.getContent(), encoding);
+        } finally {
+            e.consumeContent();
+        }
+    }
+    
     public static void assertHttpGet(CrankstartSetup C, DefaultHttpClient client, String path, String expectedContent) throws Exception {
         final HttpUriRequest get = new HttpGet(C.getBaseUrl() + path);
         HttpResponse response = null;
@@ -69,11 +89,7 @@ public class U {
             response = client.execute(get);
             assertEquals("Expecting 200 response at " + path, 200, response.getStatusLine().getStatusCode());
             assertNotNull("Expecting response entity", response.getEntity());
-            String encoding = "UTF-8";
-            if(response.getEntity().getContentEncoding() != null) {
-                encoding = response.getEntity().getContentEncoding().getValue();
-            }
-            final String content = IOUtils.toString(response.getEntity().getContent(), encoding);
+            final String content = getContent(response);
             assertEquals(expectedContent, content);
         } finally {
             U.closeConnection(response);

Modified: sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt?rev=1774245&r1=1774244&r2=1774245&view=diff
==============================================================================
--- sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt (original)
+++ sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt Wed Dec 14 13:37:23 2016
@@ -19,6 +19,9 @@
 
 [feature name=crankstart.tests]
 
+[variables]
+single.servlet.text = this can be overridden, see BasicLauncherIT
+
 [artifacts]
   org.apache.sling/org.apache.sling.crankstart.test.services/1.9.9-SNAPSHOT
   org.apache.sling/org.apache.sling.junit.core/1.0.10
@@ -44,9 +47,8 @@
 
 [configurations]
   org.apache.sling.crankstart.testservices.SingleConfigServlet
-  # TODO should use a variable to verify that they work in configs
     path="/single"
-    message="doesn't matter"
+    message="test content is ${single.servlet.text}"
 
   org.apache.sling.crankstart.testservices.ConfigFactoryServlet-foo
     path="/foo"