Package org.netmelody.cieye.server

Source Code of org.netmelody.cieye.server.CiEyeServer

package org.netmelody.cieye.server;

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

import org.netmelody.cieye.core.observation.CommunicationNetwork;
import org.netmelody.cieye.server.configuration.ServerConfiguration;
import org.netmelody.cieye.server.observation.GovernmentReport;
import org.netmelody.cieye.server.observation.GovernmentWatchdog;
import org.netmelody.cieye.server.observation.IntelligenceAgency;
import org.netmelody.cieye.server.observation.protocol.JsonRestRequesterBuilder;
import org.netmelody.cieye.server.response.CachedRequestOriginTracker;
import org.netmelody.cieye.server.response.CiEyeResourceEngine;
import org.simpleframework.http.core.Container;
import org.simpleframework.http.resource.ResourceContainer;
import org.simpleframework.transport.connect.Connection;
import org.simpleframework.transport.connect.SocketConnection;

public final class CiEyeServer {

    private final ServerConfiguration agency = new ServerConfiguration();
    private final CommunicationNetwork network = new JsonRestRequesterBuilder();
    private final IntelligenceAgency intelligenceAgency = IntelligenceAgency.create(network,
                                                                                    agency.detective(),
                                                                                    agency.foreignAgents());
    private final Container container =
        new ResourceContainer(new CiEyeResourceEngine(agency.observationTargetDirectory(),
                                                      agency.album(),
                                                      agency.information(),
                                                      new CachedRequestOriginTracker(agency.detective()),
                                                      intelligenceAgency,
                                                      new GovernmentReport(new GovernmentWatchdog(network))));
    private final Connection connection;
    private final InetSocketAddress address;
   
    public CiEyeServer(int port) throws IOException {
        connection = new SocketConnection(container);
        address = new InetSocketAddress(port);
    }

    public void start() throws IOException {
        final SocketAddress socketAddress = connection.connect(address);
       
        if (socketAddress instanceof InetSocketAddress) {
            System.out.format("Starting CI-Eye server on http://localhost:%d", ((InetSocketAddress)socketAddress).getPort());
            return;
        }
       
        System.out.format("Starting CI-Eye server on: %s", socketAddress.toString());
    }
}
TOP

Related Classes of org.netmelody.cieye.server.CiEyeServer

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.