public void handle(HttpExchange ex) throws IOException { if (ex == null) { throw new NullPointerException(); } HttpContext context = ex.getHttpContext(); new Filter.Chain(context.getFilters(), context.getHandler()).doFilter(ex); }
public static void main(String[] args) throws Exception { final String filename = "log4j.properties"; PropertyConfigurator.configure(SeleniumGridExtras.class.getClassLoader().getResource(filename)); logger.info("Loaded Grid Logger from " + filename); RuntimeConfig.load(true); SelfHealingGrid.checkStatus(RuntimeConfig.getGridExtrasPort(), RuntimeConfig.getConfig()); HttpServer server = HttpServer.create(new InetSocketAddress(RuntimeConfig.getGridExtrasPort()), 0); List<ExecuteOSTask> tasks = new LinkedList<ExecuteOSTask>(); for (String module : RuntimeConfig.getConfig().getActivatedModules()) { tasks.add((ExecuteOSTask) Class.forName(module).newInstance()); } logger.debug(RuntimeConfig.getSeleniungGridExtrasHomePath()); logger.info("Initializing Task Modules"); for (final ExecuteOSTask task : tasks) { if (task.initialize()) { HttpContext context = server.createContext( task.getEndpoint(), new HttpExecutor() { @Override String execute(Map params) { logger.debug( "End-point " + task.getEndpoint() + " was called with HTTP params " + params.toString()); String result = new GsonBuilder().setPrettyPrinting().create().toJson(task.execute(params)); return result; } }); context.getFilters().add(new ParameterFilter()); } } logger.info("API documentation"); logger.info("/api - Located here"); HttpContext context = server.createContext( "/api", new HttpExecutor() { @Override String execute(Map params) { String apiDocs = ApiDocumentation.getApiDocumentation(); logger.debug(apiDocs); return apiDocs; } }); if (RuntimeConfig.getConfig().getAutoStartHub()) { logger.info("Grid Hub was set to Autostart"); ExecuteOSTask grid = new StartGrid(); logger.debug(grid.execute("hub").toString().toString()); } if (RuntimeConfig.getConfig().getAutoStartNode()) { logger.info("Grid NodeConfig was set to Autostart"); ExecuteOSTask grid = new StartGrid(); logger.debug(grid.execute("node").toString().toString()); } context.getFilters().add(new ParameterFilter()); server.setExecutor(null); server.start(); logger.info("Server has been started"); }