@Override public String toString() { StringBuilder buffer = new StringBuilder(); buffer.append(method()).append(" ").append(pattern()).append("\n"); buffer.append(" name: ").append(name()).append("\n"); buffer.append(" excludes: ").append(excludes).append("\n"); buffer.append(" consumes: ").append(consumes()).append("\n"); buffer.append(" produces: ").append(produces()).append("\n"); return buffer.toString(); }
private RouteMethod complement(Route.Definition route, final RouteMethod method) { method.attributes(route.attributes()); String name = route.name(); if (!name.equals("/anonymous")) { method.name(name); } BiConsumer<List<MediaType>, Consumer<List<String>>> types = (values, setter) -> setter.accept(values.stream() .map(MediaType::name) .filter(it -> !it.equals("*/*")) .collect(Collectors.toList())); types.accept(route.consumes(), method::consumes); types.accept(route.produces(), method::produces); return method; } }
private static RouteMethod toRouteMethod(final Route.Definition route) { Method handler = ((Route.MethodHandler) route.filter()).method(); return new RouteMethod(route.method(), route.pattern(), new RouteResponse(handler.getGenericReturnType())) .name(route.name()) .parameters(Arrays.asList(handler.getParameters()).stream() .filter(SKIP) .map(it -> BytecodeRouteParser.toRouteParameter(route.pattern(), it)) .filter(Objects::nonNull) .collect(Collectors.toList())); }
@Override public Route.Definition head() { return appendDefinition(HEAD, "*", filter(HeadHandler.class)).name("*.head"); }
@Override public String toString() { StringBuilder buffer = new StringBuilder(); buffer.append(method()).append(" ").append(pattern()).append("\n"); buffer.append(" name: ").append(name()).append("\n"); buffer.append(" excludes: ").append(excludes).append("\n"); buffer.append(" consumes: ").append(consumes()).append("\n"); buffer.append(" produces: ").append(produces()).append("\n"); return buffer.toString(); }
private static RouteMethod toRouteMethod(final Route.Definition route) { Method handler = ((Route.MethodHandler) route.filter()).method(); return new RouteMethod(route.method(), route.pattern(), new RouteResponse(handler.getGenericReturnType())) .name(route.name()) .parameters(Arrays.asList(handler.getParameters()).stream() .filter(SKIP) .map(it -> BytecodeRouteParser.toRouteParameter(route.pattern(), it)) .filter(Objects::nonNull) .collect(Collectors.toList())); }
router.get("/login", new Pac4jLoginForm(Route.normalize(contextPath + callbackPath))) .name("pac4j(LoginForm)"); new Pac4jCallback(pac4j, callbackRedirectTo, multiProfile, renewSession)) .excludes(excludePaths) .name("pac4j(Callback)"); router.use(conf.getString("pac4j.securityFilter.method"), pattern, filter) .excludes(excludes) .name("pac4j(" + filter + ")"); }); conf.getBoolean("pac4j.logout.local"), conf.getBoolean("pac4j.logout.central"))) .name("pac4j(Logout)");
.name("livereload");
.declaringClass(routeClass.getName()) .line(classInfo.startAt(method) - 1) .name(name);
.name("transactionPerRequest"); });
private void routes(final StringBuilder buffer) { Function<Route.Definition, String> p = route -> { Route.Filter filter = route.filter(); if (filter instanceof Route.Before) { return "{before}" + route.pattern(); } else if (filter instanceof Route.After) { return "{after}" + route.pattern(); } else if (filter instanceof Route.Complete) { return "{complete}" + route.pattern(); } return route.pattern(); }; int verbMax = 0, routeMax = 0, consumesMax = 0, producesMax = 0; for (Route.Definition route : routes) { verbMax = Math.max(verbMax, route.method().length()); routeMax = Math.max(routeMax, p.apply(route).length()); consumesMax = Math.max(consumesMax, route.consumes().toString().length()); producesMax = Math.max(producesMax, route.produces().toString().length()); } String format = " %-" + verbMax + "s %-" + routeMax + "s %" + consumesMax + "s %" + producesMax + "s (%s)\n"; for (Route.Definition route : routes) { buffer.append( String.format(format, route.method(), p.apply(route), route.consumes(), route.produces(), route.name())); } sockets(buffer, Math.max(verbMax, "WS".length()), routeMax, consumesMax, producesMax); }
public Route.Definition apply(final Route.Definition route) { attrs.build().forEach(route::attr); if (name != null) { route.name(name); } if (prefix != null) { route.name(prefix + "/" + route.name()); } if (consumes != null) { route.consumes(consumes); } if (produces != null) { route.produces(produces); } if (excludes != null) { route.excludes(excludes); } if (mapper != null) { route.map(mapper); } if (renderer != null) { route.renderer(renderer); } return route; } }
/** * Keep track of routes in the order user define them. * * @param method Route method. * @param pattern Route pattern. * @param filter Route filter. * @param creator Route creator. * @return The same route definition. */ private <T extends Route.Definition> T appendDefinition(String method, String pattern, Route.Filter filter, Throwing.Function4<String, String, Route.Filter, Boolean, T> creator) { String pathPattern = prefixPath(pattern).orElse(pattern); T route = creator.apply(method, pathPattern, filter, caseSensitiveRouting); if (prefix != null) { route.prefix = prefix; // reset name will update the name if prefix != null route.name(route.name()); } bag.add(route); return route; }
@Override public void configure(final Env env, final Config conf, final Binder binder) { Config $cookie = conf.getConfig("flash.cookie"); String cpath = $cookie.getString("path"); boolean chttp = $cookie.getBoolean("httpOnly"); boolean csecure = $cookie.getBoolean("secure"); Cookie.Definition cookie = this.cookie .orElseGet(() -> new Cookie.Definition($cookie.getString("name"))); // uses user provided or fallback to defaults cookie.path(cookie.path().orElse(cpath)) .httpOnly(cookie.httpOnly().orElse(chttp)) .secure(cookie.secure().orElse(csecure)); env.router() .use(method, path, new FlashScopeHandler(cookie, decoder, encoder)) .name("flash-scope"); }
@Override public Route.Definition options() { return appendDefinition(OPTIONS, "*", handler(OptionsHandler.class)).name("*.options"); }
@Override public String name() { return route.name(); }
@Override public Route.Definition trace() { return appendDefinition(TRACE, "*", handler(TraceHandler.class)).name("*.trace"); }
@Override public Route.Definition head() { return appendDefinition(HEAD, "*", filter(HeadHandler.class)).name("*.head"); }