1.1 --- a/chat/server/src/main/java/org/apidesign/demo/chat/server/Main.java Fri Apr 22 05:56:47 2016 +0200
1.2 +++ b/chat/server/src/main/java/org/apidesign/demo/chat/server/Main.java Fri Apr 22 08:53:13 2016 +0200
1.3 @@ -23,28 +23,29 @@
1.4 */
1.5 package org.apidesign.demo.chat.server;
1.6
1.7 -import java.io.IOException;
1.8 import java.net.Inet4Address;
1.9 import java.net.InterfaceAddress;
1.10 import java.net.NetworkInterface;
1.11 import java.net.URI;
1.12 import java.util.Enumeration;
1.13 -import javax.ws.rs.container.ContainerRequestContext;
1.14 -import javax.ws.rs.container.ContainerResponseContext;
1.15 -import javax.ws.rs.container.ContainerResponseFilter;
1.16 +import org.glassfish.grizzly.PortRange;
1.17 import org.glassfish.grizzly.http.server.HttpServer;
1.18 -import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
1.19 -import org.glassfish.jersey.server.ResourceConfig;
1.20 +import org.glassfish.grizzly.http.server.NetworkListener;
1.21 +import org.glassfish.grizzly.websockets.WebSocketAddOn;
1.22 +import org.glassfish.grizzly.websockets.WebSocketEngine;
1.23
1.24 /** Starts REST server based on Jersey.
1.25 */
1.26 -final class Main implements ContainerResponseFilter {
1.27 +final class Main {
1.28 public static void main(String... args) throws Exception {
1.29 - ResourceConfig rc = new ResourceConfig(
1.30 - ChatServerResource.class, Main.class
1.31 - );
1.32 + HttpServer server = HttpServer.createSimpleServer(null, new PortRange(8080, 8080));
1.33 + final WebSocketAddOn addon = new WebSocketAddOn();
1.34 + for (NetworkListener listener : server.getListeners()) {
1.35 + listener.registerAddOn(addon);
1.36 + }
1.37 + WebSocketEngine.getEngine().register("", "/chat", new ChatServerResource());
1.38 + server.start();
1.39 URI u = new URI("http://0.0.0.0:8080/");
1.40 - HttpServer server = GrizzlyHttpServerFactory.createHttpServer(u, rc);
1.41 System.err.println("Server running on following IP addresses:");
1.42 dumpIPs();
1.43 System.err.println("Press Enter to shutdown the server");
1.44 @@ -52,17 +53,6 @@
1.45 server.stop();
1.46 }
1.47
1.48 - @Override
1.49 - public void filter(
1.50 - ContainerRequestContext requestContext,
1.51 - ContainerResponseContext r
1.52 - ) throws IOException {
1.53 - r.getHeaders().add("Access-Control-Allow-Origin", "*");
1.54 - r.getHeaders().add("Access-Control-Allow-Credentials", "true");
1.55 - r.getHeaders().add("Access-Control-Allow-Headers", "Content-Type");
1.56 - r.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
1.57 - }
1.58 -
1.59 private static void dumpIPs() throws Exception {
1.60 Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
1.61 while (en.hasMoreElements()) {