public final void init() { // add initializers initializers.addAll(ServiceLocator.locateAll(Initializer.class)); // call each initializer for (Initializer initializer : initializers) { log.debug("Initializing '{}'", initializer.getClass().getName()); try { initializer.init(this); } catch (Exception e) { log.error("Failed to initialize '{}'", initializer.getClass().getName(), e); } } // add transformers List<RouteTransformer> transformers = ServiceLocator.locateAll(RouteTransformer.class); for (RouteTransformer transformer : transformers) { getRouter().addRouteTransformer(transformer); } onInit(); // compile routes getRouter().compileRoutes(); }