public ExhibitorMain(BackupProvider backupProvider, ConfigProvider configProvider, ExhibitorArguments.Builder builder, int httpPort, String listenAddress, SecurityHandler security, SecurityArguments securityArguments) throws Exception
{
HashUserRealm realm = makeRealm(securityArguments);
if ( securityArguments.getRemoteAuthSpec() != null )
{
addRemoteAuth(builder, securityArguments.getRemoteAuthSpec());
}
builder.shutdownProc(makeShutdownProc(this));
exhibitor = new Exhibitor(configProvider, null, backupProvider, builder.build());
exhibitor.start();
DefaultResourceConfig application = JerseySupport.newApplicationConfig(new UIContext(exhibitor));
ServletContainer container = new ServletContainer(application);
server = new Server();
SocketConnector http = new SocketConnector();
http.setHost(listenAddress);
http.setPort(httpPort);
server.addConnector(http);
Context root = new Context(server, "/", Context.SESSIONS);
root.addFilter(ExhibitorServletFilter.class, "/", Handler.ALL);
root.addServlet(new ServletHolder(container), "/*");
if ( security != null )
{
root.setSecurityHandler(security);
}
else if ( securityArguments.getSecurityFile() != null )
{
addSecurityFile(realm, securityArguments.getSecurityFile(), root);
}
}