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 <[email protected]> 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 "[email protected]" <[email protected]>.
