@SuppressWarnings("unchecked") @Override public void contextInitialized(ServletContextEvent event) { ApplicationRouteRegistry registry = ApplicationRouteRegistry .getInstance(event.getServletContext()); if (registry.getRegisteredRoutes().isEmpty()) { try { List<Class<?>> routeClasses = findByAnnotation( getRoutePackages(), Route.class, RouteAlias.class).collect(Collectors.toList()); Set<Class<? extends Component>> navigationTargets = validateRouteClasses( routeClasses.stream()); RouteConfiguration routeConfiguration = RouteConfiguration .forRegistry(registry); routeConfiguration.update(() -> { routeConfiguration.getHandledRegistry().clean(); navigationTargets.forEach(routeConfiguration::setAnnotatedRoute); }); registry.setPwaConfigurationClass(validatePwaClass(routeClasses.stream())); } catch (InvalidRouteConfigurationException e) { throw new IllegalStateException(e); } } }
@Override public void onStartup(Set<Class<?>> classSet, ServletContext servletContext) throws ServletException { try { if (classSet == null) { ApplicationRouteRegistry routeRegistry = ApplicationRouteRegistry .getInstance(servletContext); routeRegistry.clean(); return; } Set<Class<? extends Component>> routes = validateRouteClasses( classSet.stream()); ApplicationRouteRegistry routeRegistry = ApplicationRouteRegistry .getInstance(servletContext); RouteConfiguration routeConfiguration = RouteConfiguration .forRegistry(routeRegistry); routeConfiguration.update(() -> { routeConfiguration.getHandledRegistry().clean(); for (Class<? extends Component> navigationTarget : routes) { routeConfiguration.setAnnotatedRoute(navigationTarget); } }); routeRegistry.setPwaConfigurationClass(validatePwaClass( routes.stream().map(clazz -> (Class<?>) clazz))); } catch (InvalidRouteConfigurationException irce) { throw new ServletException( "Exception while registering Routes on servlet startup", irce); } }