package org.caudexorigo.jpt.sample;
import java.io.File;
import java.net.URI;
import org.caudexorigo.Shutdown;
import org.caudexorigo.http.netty4.NettyHttpServer;
import org.caudexorigo.http.netty4.NettyHttpServerCliArgs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.lexicalscope.jewel.cli.CliFactory;
import io.netty.util.ResourceLeakDetector;
import io.netty.util.ResourceLeakDetector.Level;
import io.netty.util.internal.logging.InternalLoggerFactory;
import io.netty.util.internal.logging.Slf4JLoggerFactory;
public class Main
{
private static Logger log = LoggerFactory.getLogger(Main.class);
static
{
ResourceLeakDetector.setLevel(Level.DISABLED);
}
public static void main(String[] args) throws Throwable
{
try
{
NettyHttpServerCliArgs cargs = CliFactory.parseArguments(NettyHttpServerCliArgs.class, args);
String root_dir = cargs.getRootDirectory();
File r = new File(root_dir);
URI root_uri = r.getCanonicalFile().toURI();
String host = cargs.getHost();
int port = cargs.getPort();
log.info(String.format("Server Init: %nRoot Directory: %s%nHost: %s%nPort: %s%n", root_uri.toASCIIString(), host, port));
InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.getDefaultFactory());
NettyHttpServer server = new NettyHttpServer();
server.setValidateHeaders(false);
server.setHost(host);
server.setPort(port);
server.setRouter(new AppMapper(root_uri));
server.start();
log.info("Server Started");
}
catch (Throwable e)
{
Shutdown.now(e);
}
}
}