You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2012/04/24 14:24:34 UTC
svn commit: r1329670 - in /jackrabbit/oak/trunk/oak-run/src:
main/java/org/apache/jackrabbit/oak/run/Main.java
test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java
Author: reschke
Date: Tue Apr 24 12:24:33 2012
New Revision: 1329670
URL: http://svn.apache.org/viewvc?rev=1329670&view=rev
Log:
OAK-69: fix server lifecycle
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java?rev=1329670&r1=1329669&r2=1329670&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java Tue Apr 24 12:24:33 2012
@@ -33,44 +33,16 @@ public class Main {
public static void main(String[] args) throws Exception {
printProductInfo();
- ServletContextHandler context =
- new ServletContextHandler(ServletContextHandler.SECURITY);
- context.setContextPath("/");
-
- if (args.length == 0) {
- System.out.println("Starting an in-memory repository");
- System.out.println(URI + " -> [memory]");
- Servlet servlet = new RepositoryServlet(null);
- context.addServlet(new ServletHolder(servlet),"/*");
- } else if (args.length == 1) {
- System.out.println("Starting a standalone repository");
- System.out.println(URI + " -> " + args[0]);
- Servlet servlet = new RepositoryServlet(args[0]);
- context.addServlet(new ServletHolder(servlet), "/*");
- } else {
- System.out.println("Starting a clustered repository");
- for (int i = 0; i < args.length; i++) {
- // FIXME: Use a clustered MicroKernel implementation
- System.out.println(
- URI + "/node" + i + "/ -> " + args[i]);
- Servlet servlet = new RepositoryServlet(args[i]);
- context.addServlet(
- new ServletHolder(servlet), "/node" + i + "/*");
- }
- }
-
- Server server = new Server(PORT);
- server.setHandler(context);
- server.start();
- server.join();
+ HttpServer httpServer = new HttpServer(URI, args);
+ httpServer.start();
}
private static void printProductInfo() {
String version = null;
try {
- InputStream stream = Main.class.getResourceAsStream(
- "/META-INF/maven/org.apache.jackrabbit/oak-run/pom.properties");
+ InputStream stream = Main.class
+ .getResourceAsStream("/META-INF/maven/org.apache.jackrabbit/oak-run/pom.properties");
if (stream != null) {
try {
Properties properties = new Properties();
@@ -93,4 +65,51 @@ public class Main {
System.out.println(product);
}
+ public static class HttpServer {
+
+ private Server server;
+
+ public HttpServer(String uri, String args[]) {
+ ServletContextHandler context = new ServletContextHandler(
+ ServletContextHandler.SECURITY);
+ context.setContextPath("/");
+
+ if (args.length == 0) {
+ System.out.println("Starting an in-memory repository");
+ System.out.println(URI + " -> [memory]");
+ Servlet servlet = new RepositoryServlet(null);
+ context.addServlet(new ServletHolder(servlet), "/*");
+ } else if (args.length == 1) {
+ System.out.println("Starting a standalone repository");
+ System.out.println(URI + " -> " + args[0]);
+ Servlet servlet = new RepositoryServlet(args[0]);
+ context.addServlet(new ServletHolder(servlet), "/*");
+ } else {
+ System.out.println("Starting a clustered repository");
+ for (int i = 0; i < args.length; i++) {
+ // FIXME: Use a clustered MicroKernel implementation
+ System.out.println(URI + "/node" + i + "/ -> " + args[i]);
+ Servlet servlet = new RepositoryServlet(args[i]);
+ context.addServlet(new ServletHolder(servlet), "/node" + i
+ + "/*");
+ }
+ }
+
+ server = new Server(PORT);
+ server.setHandler(context);
+ }
+
+ public void start() throws Exception {
+ server.start();
+ }
+
+ public void join() throws Exception {
+ server.join();
+ }
+
+ public void stop() throws Exception {
+ server.stop();
+ }
+ }
+
}
Modified: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java?rev=1329670&r1=1329669&r2=1329670&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java Tue Apr 24 12:24:33 2012
@@ -29,17 +29,17 @@ import static org.junit.Assert.assertEqu
public class BasicServerTest {
- private Thread st;
+ private Main.HttpServer server;
@Before
- public void startServer() {
- st = new Thread(new ServerThread());
- st.start();
+ public void startServer() throws Exception {
+ server = new Main.HttpServer(Main.URI, new String[0]);
+ server.start();
}
@After
- public void stopServer() {
- st.stop();
+ public void stopServer() throws Exception {
+ server.stop();
}
@Test
@@ -51,16 +51,4 @@ public class BasicServerTest {
"Basic " + Base64.encode("a:a"));
assertEquals(200, conn.getResponseCode());
}
-
- public static class ServerThread implements Runnable {
-
- @Override
- public void run() {
- try {
- Main.main(new String[0]);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
}