diff options
Diffstat (limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java')
-rw-r--r-- | org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java new file mode 100644 index 00000000..d25f4ae9 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | * generated by Xtext 2.25.0 | ||
3 | */ | ||
4 | package org.eclipse.viatra.solver.language.web; | ||
5 | |||
6 | import java.net.InetSocketAddress; | ||
7 | import org.eclipse.jetty.annotations.AnnotationConfiguration; | ||
8 | import org.eclipse.jetty.server.Server; | ||
9 | import org.eclipse.jetty.util.log.Slf4jLog; | ||
10 | import org.eclipse.jetty.webapp.Configuration; | ||
11 | import org.eclipse.jetty.webapp.MetaInfConfiguration; | ||
12 | import org.eclipse.jetty.webapp.WebAppContext; | ||
13 | import org.eclipse.jetty.webapp.WebInfConfiguration; | ||
14 | import org.eclipse.jetty.webapp.WebXmlConfiguration; | ||
15 | |||
16 | /** | ||
17 | * This program starts an HTTP server for testing the web integration of your DSL. | ||
18 | * Just execute it and point a web browser to http://localhost:8080/ | ||
19 | */ | ||
20 | public class ServerLauncher { | ||
21 | public static void main(String[] args) { | ||
22 | Server server = new Server(new InetSocketAddress("localhost", 1313)); | ||
23 | WebAppContext ctx = new WebAppContext(); | ||
24 | ctx.setResourceBase("src/main/webapp"); | ||
25 | ctx.setWelcomeFiles(new String[] {"index.html"}); | ||
26 | ctx.setContextPath("/"); | ||
27 | ctx.setConfigurations(new Configuration[] { | ||
28 | new AnnotationConfiguration(), | ||
29 | new WebXmlConfiguration(), | ||
30 | new WebInfConfiguration(), | ||
31 | new MetaInfConfiguration() | ||
32 | }); | ||
33 | ctx.setAttribute(WebInfConfiguration.CONTAINER_JAR_PATTERN, | ||
34 | ".*/org\\.eclipse\\.viatra\\.solver\\.language\\.web/.*,.*\\.jar"); | ||
35 | ctx.setInitParameter("org.eclipse.jetty.servlet.Default.useFileMappedBuffer", "false"); | ||
36 | server.setHandler(ctx); | ||
37 | Slf4jLog log = new Slf4jLog(ServerLauncher.class.getName()); | ||
38 | try { | ||
39 | server.start(); | ||
40 | log.info("Server started " + server.getURI() + "..."); | ||
41 | new Thread() { | ||
42 | |||
43 | public void run() { | ||
44 | try { | ||
45 | log.info("Press enter to stop the server..."); | ||
46 | int key = System.in.read(); | ||
47 | if (key != -1) { | ||
48 | server.stop(); | ||
49 | } else { | ||
50 | log.warn( | ||
51 | "Console input is not available. In order to stop the server, you need to cancel process manually."); | ||
52 | } | ||
53 | } catch (Exception e) { | ||
54 | log.warn(e); | ||
55 | } | ||
56 | } | ||
57 | |||
58 | }.start(); | ||
59 | server.join(); | ||
60 | } catch (Exception exception) { | ||
61 | log.warn(exception.getMessage()); | ||
62 | System.exit(1); | ||
63 | } | ||
64 | } | ||
65 | } | ||