chat/server/src/main/java/org/apidesign/demo/chat/server/Main.java
branchNewChat
changeset 240 2d0750864a98
parent 238 a0f15cb8c730
     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()) {