I have a embedded jetty server running. I want to inject system properties such as database uri,name,pass to server before starting up how can I do that ? The properties are in a .ini file not in the classpath. The server looks like this:
public static void main(String[] args) throws Exception {
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(8080);
server.addConnector(connector);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
ServletHolder servletHolder = new ServletHolder(ServletContainer.class);
servletHolder.setInitOrder(0);
servletHolder.setInitParameter("jersey.config.server.provider.packages", "com/server/");
context.addServlet(servletHolder, "/*");
context.addFilter(RequestFilter.class, "/*", EnumSet.of(DispatcherType.INCLUDE,
DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR,
DispatcherType.FORWARD));
GzipHandler gzipHandler = new GzipHandler();
gzipHandler.setExcludedMimeTypes("application/javascript", "application/json");
FilterHolder corsFilterHolder = new FilterHolder(CrossOriginFilter.class);
corsFilterHolder.setInitParameter("allowedOrigins", "*");
corsFilterHolder.setInitParameter("allowedMethods", "OPTIONS, HEAD, GET, POST, PUT, DELETE, PATCH");
corsFilterHolder.setInitParameter("allowedHeaders", "X-IGP");
context.addFilter(corsFilterHolder, "/*", EnumSet.of(DispatcherType.REQUEST));
server.setHandler(gzipHandler);
server.setHandler(context);
try {
server.start();
logger.debug("Server started");
logger.debug(server);
server.join();
} catch (Throwable t) {
logger.error(System.err);
} finally {
server.destroy();
}
}