@Singleton public class DefaultRouter extends Object implements Router, HttpServerFilterResolver<RouteMatch<?>>
The default Router
implementation. This implementation does not perform any additional caching of
route discovery.
HttpFilterResolver.FilterEntry<F>
Constructor and Description |
---|
DefaultRouter(Collection<RouteBuilder> builders)
Construct a new router for the given route builders.
|
DefaultRouter(RouteBuilder... builders)
Construct a new router for the given route builders.
|
Modifier and Type | Method and Description |
---|---|
void |
applyDefaultPorts(List<Integer> ports)
Sets the ports the application will listen to by default.
|
<T,R> Stream<UriRouteMatch<T,R>> |
find(HttpMethod httpMethod,
CharSequence uri,
HttpRequest<?> context)
Finds all of the possible routes for the given HTTP method and URI.
|
<T,R> Stream<UriRouteMatch<T,R>> |
find(HttpRequest<?> request)
Finds all of the possible routes for the given HTTP request.
|
<T,R> Stream<UriRouteMatch<T,R>> |
find(HttpRequest<?> request,
CharSequence uri)
Find method, that should be used for non-standard http methods.
|
<T,R> List<UriRouteMatch<T,R>> |
findAllClosest(HttpRequest<?> request)
Finds the closest match for the given request.
|
<T,R> Stream<UriRouteMatch<T,R>> |
findAny(CharSequence uri,
HttpRequest<?> context)
Find any
RouteMatch regardless of HTTP method. |
<R> Optional<RouteMatch<R>> |
findErrorRoute(Class<?> originatingClass,
Throwable error,
HttpRequest<?> request)
Match a route to an error.
|
<R> Optional<RouteMatch<R>> |
findErrorRoute(Throwable error,
HttpRequest<?> request)
Match a route to an error.
|
List<HttpFilter> |
findFilters(HttpRequest<?> request)
Build a filtered
Publisher for an action. |
<R> Optional<RouteMatch<R>> |
findStatusRoute(Class<?> originatingClass,
HttpStatus status,
HttpRequest<?> request)
Found a
RouteMatch for the given HttpStatus code. |
<R> Optional<RouteMatch<R>> |
findStatusRoute(HttpStatus status,
HttpRequest<?> request)
Found a
RouteMatch for the given HttpStatus code. |
Set<Integer> |
getExposedPorts() |
List<HttpFilterResolver.FilterEntry<HttpFilter>> |
resolveFilterEntries(RouteMatch<?> routeMatch)
Resolves the initial list of filters.
|
List<HttpFilter> |
resolveFilters(HttpRequest<?> request,
List<HttpFilterResolver.FilterEntry<HttpFilter>> filterEntries)
Returns which filters should apply for the given request.
|
<R> Optional<RouteMatch<R>> |
route(Class originatingClass,
HttpStatus status)
Found a
RouteMatch for the given HttpStatus code. |
<R> Optional<RouteMatch<R>> |
route(Class originatingClass,
Throwable error)
Match a route to an error.
|
<T,R> Optional<UriRouteMatch<T,R>> |
route(HttpMethod httpMethod,
CharSequence uri)
Finds the first possible route for the given HTTP method and URI.
|
<R> Optional<RouteMatch<R>> |
route(HttpStatus status)
Found a
RouteMatch for the given HttpStatus code. |
<R> Optional<RouteMatch<R>> |
route(Throwable error)
Match a route to an error.
|
Stream<UriRoute> |
uriRoutes()
Returns all UriRoutes.
|
public DefaultRouter(RouteBuilder... builders)
builders
- The builders@Inject public DefaultRouter(Collection<RouteBuilder> builders)
builders
- The builderspublic Set<Integer> getExposedPorts()
getExposedPorts
in interface Router
public void applyDefaultPorts(List<Integer> ports)
Router
applyDefaultPorts
in interface Router
ports
- The default ports@NonNull public <T,R> Stream<UriRouteMatch<T,R>> find(@NonNull HttpRequest<?> request, @NonNull CharSequence uri)
Router
Router.find(HttpMethod, CharSequence, HttpRequest)
find
in interface Router
T
- The target type.R
- The type of whatrequest
- The request, that can have overridden HttpRequest.getMethodName()
uri
- The URI route match.Stream
of possible Route
instances.@NonNull public <T,R> Stream<UriRouteMatch<T,R>> find(@NonNull HttpRequest<?> request)
Router
@NonNull public <T,R> Stream<UriRouteMatch<T,R>> find(@NonNull HttpMethod httpMethod, @NonNull CharSequence uri, @Nullable HttpRequest<?> context)
Router
find
in interface Router
T
- The target typeR
- The typehttpMethod
- The HTTP methoduri
- The URI route matchcontext
- The optional HttpRequest
context information to apply RouteMatchFilter
.Stream
of possible Route
instances.@NonNull public Stream<UriRoute> uriRoutes()
Router
@NonNull public <T,R> List<UriRouteMatch<T,R>> findAllClosest(@NonNull HttpRequest<?> request)
Router
findAllClosest
in interface Router
T
- The target typeR
- The typerequest
- The requestList
of possible Route
instances.@NonNull public <T,R> Optional<UriRouteMatch<T,R>> route(@NonNull HttpMethod httpMethod, @NonNull CharSequence uri)
Router
public <R> Optional<RouteMatch<R>> route(@NonNull HttpStatus status)
Router
RouteMatch
for the given HttpStatus
code.route
in interface Router
R
- The matched routestatus
- The HTTP statusRouteMatch
public <R> Optional<RouteMatch<R>> route(@NonNull Class originatingClass, @NonNull HttpStatus status)
Router
RouteMatch
for the given HttpStatus
code.route
in interface Router
R
- The matched routeoriginatingClass
- The class the error originates fromstatus
- The HTTP statusRouteMatch
public <R> Optional<RouteMatch<R>> route(@NonNull Class originatingClass, @NonNull Throwable error)
Router
route
in interface Router
R
- The matched routeoriginatingClass
- The class the error originates fromerror
- The errorRouteMatch
public <R> Optional<RouteMatch<R>> findErrorRoute(@NonNull Class<?> originatingClass, @NonNull Throwable error, HttpRequest<?> request)
Router
findErrorRoute
in interface Router
R
- The matched routeoriginatingClass
- The class the error originates fromerror
- The errorrequest
- The requestRouteMatch
public <R> Optional<RouteMatch<R>> findErrorRoute(@NonNull Throwable error, HttpRequest<?> request)
Router
findErrorRoute
in interface Router
R
- The matched routeerror
- The errorrequest
- The requestRouteMatch
public <R> Optional<RouteMatch<R>> findStatusRoute(@NonNull Class<?> originatingClass, @NonNull HttpStatus status, HttpRequest<?> request)
Router
RouteMatch
for the given HttpStatus
code.findStatusRoute
in interface Router
R
- The matched routeoriginatingClass
- The class the error originates fromstatus
- The HTTP statusrequest
- The requestRouteMatch
public <R> Optional<RouteMatch<R>> findStatusRoute(@NonNull HttpStatus status, HttpRequest<?> request)
Router
RouteMatch
for the given HttpStatus
code.findStatusRoute
in interface Router
R
- The matched routestatus
- The HTTP statusrequest
- The requestRouteMatch
public <R> Optional<RouteMatch<R>> route(@NonNull Throwable error)
Router
route
in interface Router
R
- The matched routeerror
- The errorRouteMatch
@NonNull public List<HttpFilter> findFilters(@NonNull HttpRequest<?> request)
Router
Publisher
for an action.findFilters
in interface Router
request
- The request@NonNull public <T,R> Stream<UriRouteMatch<T,R>> findAny(@NonNull CharSequence uri, @Nullable HttpRequest<?> context)
Router
RouteMatch
regardless of HTTP method.findAny
in interface Router
T
- The target typeR
- The return typeuri
- The URIcontext
- The optional HttpRequest
context information to apply RouteMatchFilter
.public List<HttpFilterResolver.FilterEntry<HttpFilter>> resolveFilterEntries(RouteMatch<?> routeMatch)
HttpFilterResolver
resolveFilterEntries
in interface HttpFilterResolver<HttpFilter,RouteMatch<?>>
routeMatch
- The contextpublic List<HttpFilter> resolveFilters(HttpRequest<?> request, List<HttpFilterResolver.FilterEntry<HttpFilter>> filterEntries)
HttpFilterResolver
resolveFilters
in interface HttpFilterResolver<HttpFilter,RouteMatch<?>>
request
- The requestfilterEntries
- the filter entries