You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:25:10 UTC

[sling-org-apache-sling-crankstart-launcher] 13/31: Use variables in launcher test

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.crankstart.launcher-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-crankstart-launcher.git

commit ee26999380ce85fdbcf03e4e5a4bc8503dd6a44c
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Fri May 16 12:15:23 2014 +0000

    Use variables in launcher test
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/crankstart/launcher@1595172 13f79535-47bb-0310-9956-ffa450edef68
---
 .../crankstart/launcher/CrankstartBootstrap.java   |  5 ++-
 .../launcher/CrankstartBootstrapTest.java          | 42 +++++++++-------------
 src/test/resources/launcher-test.txt               | 39 ++++++++++++++++++++
 3 files changed, 59 insertions(+), 27 deletions(-)

diff --git a/src/main/java/org/apache/sling/crankstart/launcher/CrankstartBootstrap.java b/src/main/java/org/apache/sling/crankstart/launcher/CrankstartBootstrap.java
index 68ccd9d..80a47cc 100644
--- a/src/main/java/org/apache/sling/crankstart/launcher/CrankstartBootstrap.java
+++ b/src/main/java/org/apache/sling/crankstart/launcher/CrankstartBootstrap.java
@@ -17,6 +17,7 @@
 package org.apache.sling.crankstart.launcher;
 
 import java.io.BufferedReader;
+import java.io.Closeable;
 import java.io.File;
 import java.io.FileReader;
 import java.io.FileWriter;
@@ -80,7 +81,9 @@ public class CrankstartBootstrap {
             final Callable<Object> c = (Callable<Object>)launcherClassloader.loadClass(callableClass).newInstance();
             c.call();
         } finally {
-            launcherClassloader.close();
+            if(launcherClassloader instanceof Closeable) {
+                ((Closeable)launcherClassloader).close();
+            }
             cleanup();
         }
     }
diff --git a/src/test/java/org/apache/sling/crankstart/launcher/CrankstartBootstrapTest.java b/src/test/java/org/apache/sling/crankstart/launcher/CrankstartBootstrapTest.java
index d716d45..5e0fb50 100644
--- a/src/test/java/org/apache/sling/crankstart/launcher/CrankstartBootstrapTest.java
+++ b/src/test/java/org/apache/sling/crankstart/launcher/CrankstartBootstrapTest.java
@@ -1,11 +1,14 @@
 package org.apache.sling.crankstart.launcher;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.StringReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
 import java.net.ServerSocket;
 import java.util.Random;
 
@@ -28,6 +31,7 @@ public class CrankstartBootstrapTest {
     private static final HttpClient client = new HttpClient();
     private static Thread crankstartThread;
     private static String baseUrl = "http://localhost:" + port;
+    public static final String TEST_RESOURCE = "/launcher-test.txt";
             
     @Rule
     public final RetryRule retryRule = new RetryRule();
@@ -50,34 +54,15 @@ public class CrankstartBootstrapTest {
         return result;
     }
     
-    private final static String CRANKSTART = 
-        "classpath mvn:org.apache.felix/org.apache.felix.framework/4.4.0\n"
-        + "classpath mvn:org.slf4j/slf4j-api/1.6.2\n"
-        + "classpath mvn:org.ops4j.pax.url/pax-url-aether/1.6.0\n"
-        + "classpath mvn:org.ops4j.pax.url/pax-url-commons/1.6.0\n"
-        + "classpath mvn:org.apache.sling/org.apache.sling.crankstart.core/0.0.1-SNAPSHOT\n"
-        + "classpath mvn:org.apache.sling/org.apache.sling.crankstart.api/0.0.1-SNAPSHOT\n"
-        + "osgi.property org.osgi.service.http.port ${http.port}\n"
-        + "osgi.property org.osgi.framework.storage " + getOsgiStoragePath() + "\n"
-        + "start.framework\n"
-        + "bundle mvn:org.apache.felix/org.apache.felix.http.jetty/2.2.0\n"
-        + "bundle mvn:org.apache.felix/org.apache.felix.eventadmin/1.3.2\n"
-        + "bundle mvn:org.apache.felix/org.apache.felix.scr/1.8.2\n"
-        + "bundle mvn:org.apache.sling/org.apache.sling.commons.osgi/2.2.1-SNAPSHOT\n"
-        + "bundle mvn:org.apache.sling/org.apache.sling.commons.log/2.1.2\n"
-        + "bundle mvn:org.apache.sling/org.apache.sling.crankstart.test.services/0.0.1-SNAPSHOT\n"
-        + "bundle mvn:org.apache.felix/org.apache.felix.configadmin/1.6.0\n"
-        + "start.all.bundles\n"
-        + "config org.apache.sling.crankstart.testservices.SingleConfigServlet\n"
-        + "  path=/single\n"
-        + "  message=doesn't matter\n"
-        + "log felix http service should come up at http://localhost:${http.port}\n"
-    ;
-    
     @BeforeClass
     public static void setup() {
         final GetMethod get = new GetMethod(baseUrl);
         System.setProperty("http.port", String.valueOf(port));
+        System.setProperty("osgi.storage.path", getOsgiStoragePath());
+        
+        final InputStream is = CrankstartBootstrapTest.class.getResourceAsStream(TEST_RESOURCE);
+        assertNotNull("Expecting test resource to be found:" + TEST_RESOURCE, is);
+        final Reader input = new InputStreamReader(is);
         
         try {
             client.executeMethod(get);
@@ -88,9 +73,14 @@ public class CrankstartBootstrapTest {
         crankstartThread = new Thread() {
             public void run() {
                 try {
-                    new CrankstartBootstrap(new StringReader(CRANKSTART)).start();
+                    new CrankstartBootstrap(input).start();
                 } catch(Exception e) {
                     fail("CrankstartBootstrap exception:" + e);
+                } finally {
+                    try {
+                        input.close();
+                    } catch(IOException ignoreTheresNotMuchWeCanDoAnyway) {
+                    }
                 }
             }
         };
diff --git a/src/test/resources/launcher-test.txt b/src/test/resources/launcher-test.txt
new file mode 100644
index 0000000..d1868c5
--- /dev/null
+++ b/src/test/resources/launcher-test.txt
@@ -0,0 +1,39 @@
+# Test the crankstart launcher by setting up an HTTP
+# server with a few servlets that require specific OSGi configurations
+
+# Default values for our variables
+defaults pax.version 1.6.0
+defaults single.path /single
+
+# Bootstrap classpath
+classpath mvn:org.apache.felix/org.apache.felix.framework/4.4.0
+classpath mvn:org.slf4j/slf4j-api/1.6.2
+classpath mvn:org.ops4j.pax.url/pax-url-aether/${pax.version}
+classpath mvn:org.ops4j.pax.url/pax-url-commons/${pax.version}
+classpath mvn:org.apache.sling/org.apache.sling.crankstart.core/0.0.1-SNAPSHOT
+classpath mvn:org.apache.sling/org.apache.sling.crankstart.api/0.0.1-SNAPSHOT
+
+# OSGi properties
+osgi.property org.osgi.service.http.port ${http.port}
+osgi.property org.osgi.framework.storage ${osgi.storage.path}
+
+# Start the framework
+start.framework
+
+# Start ConfigAdmin, HTTP service and SCR
+bundle mvn:org.apache.felix/org.apache.felix.http.jetty/2.2.0
+bundle mvn:org.apache.felix/org.apache.felix.eventadmin/1.3.2
+bundle mvn:org.apache.felix/org.apache.felix.scr/1.8.2
+bundle mvn:org.apache.sling/org.apache.sling.commons.osgi/2.2.1-SNAPSHOT
+bundle mvn:org.apache.sling/org.apache.sling.commons.log/2.1.2
+bundle mvn:org.apache.sling/org.apache.sling.crankstart.test.services/0.0.1-SNAPSHOT
+bundle mvn:org.apache.felix/org.apache.felix.configadmin/1.6.0
+start.all.bundles
+
+# OSGi configs that activate our test servlets
+config org.apache.sling.crankstart.testservices.SingleConfigServlet
+  path=${single.path}
+  message=doesn't matter
+
+# Informative log  
+log felix http service should come up at http://localhost:${http.port}

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.