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>.