Application.java

  1. package org.heigit.ors.api;

  2. import jakarta.servlet.ServletContextListener;
  3. import org.apache.log4j.Logger;
  4. import org.heigit.ors.api.servlet.listeners.ORSInitContextListener;
  5. import org.heigit.ors.api.util.AppInfo;
  6. import org.heigit.ors.routing.RoutingProfileManagerStatus;
  7. import org.heigit.ors.util.StringUtility;
  8. import org.springframework.boot.SpringApplication;
  9. import org.springframework.boot.autoconfigure.SpringBootApplication;
  10. import org.springframework.boot.web.servlet.ServletComponentScan;
  11. import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
  12. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  13. import org.springframework.context.annotation.Bean;

  14. @ServletComponentScan("org.heigit.ors.api.servlet.listeners")
  15. @SpringBootApplication
  16. public class Application extends SpringBootServletInitializer {
  17.     private static final Logger LOG = Logger.getLogger(Application.class.getName());

  18.     static {
  19.         System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
  20.     }

  21.     public static void main(String[] args) {
  22.         if (args.length > 0 && !StringUtility.isNullOrEmpty(args[0]) && !args[0].startsWith("-")) {
  23.             System.setProperty(ORSEnvironmentPostProcessor.ORS_CONFIG_LOCATION_PROPERTY, args[0]);
  24.         }
  25.         SpringApplication.run(Application.class, args);
  26.         LOG.info("openrouteservice %s".formatted(AppInfo.getEngineInfo()));
  27.         if (RoutingProfileManagerStatus.hasFailed()) {
  28.             System.exit(1);
  29.         }
  30.     }

  31.     @Bean("ORSInitContextListenerBean")
  32.     public ServletListenerRegistrationBean<ServletContextListener> createORSInitContextListenerBean(EngineProperties engineProperties) {
  33.         ServletListenerRegistrationBean<ServletContextListener> bean = new ServletListenerRegistrationBean<>();
  34.         bean.setListener(new ORSInitContextListener(engineProperties));
  35.         return bean;
  36.     }
  37. }