Package org.netmelody.cieye.server.observation.protocol.test

Source Code of org.netmelody.cieye.server.observation.protocol.test.DummyServer

package org.netmelody.cieye.server.observation.protocol.test;

import java.io.IOException;
import java.io.PrintStream;
import java.net.InetSocketAddress;
import java.net.SocketAddress;

import org.simpleframework.http.Request;
import org.simpleframework.http.Response;
import org.simpleframework.http.core.Container;
import org.simpleframework.transport.connect.Connection;
import org.simpleframework.transport.connect.SocketConnection;

public final class DummyServer {
   
    private final int port;
    private final Connection connection;
    private String responseText = "";
    private int code = 200;

    public DummyServer() {
        try {
            connection = new SocketConnection(new Container(){
                @Override public void handle(Request request, Response response) {
                    try {
                        handleSafely(response);
                    } catch (IOException e) {
                        throw new IllegalStateException(e);
                    }
                }
            });
           
            final SocketAddress address = new InetSocketAddress(0);
            final SocketAddress socketAddress = connection.connect(address);
            this.port = ((InetSocketAddress)socketAddress).getPort();
        }
        catch (Exception e) {
            throw new IllegalStateException(e);
        }
    }

    public void respondWith(String responseText) {
        this.responseText = responseText;
    }

    public void respondWithStatusCode(int code) {
        this.code = code;
    }

    public int port() {
        return this.port;
    }
   
    public void close() {
        try {
            this.connection.close();
        } catch (IOException e) {
            throw new IllegalStateException(e);
        }
    }
   
    private void handleSafely(Response response) throws IOException {
        PrintStream body = response.getPrintStream();
        long time = System.currentTimeMillis();

        response.set("Content-Type", "text/plain");
        response.set("Server", "HelloWorld/1.0 (Simple 4.0)");
        response.setDate("Date", time);
        response.setDate("Last-Modified", time);
        response.setCode(code );

        body.println(responseText);
        body.close();
    }
}
TOP

Related Classes of org.netmelody.cieye.server.observation.protocol.test.DummyServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.