/** * Binds the specified {@link Service} at the specified {@link PathMapping} of the default * {@link VirtualHost}. * * @throws IllegalStateException if the default {@link VirtualHost} has been set via * {@link #defaultVirtualHost(VirtualHost)} already */ public ServerBuilder service(PathMapping pathMapping, Service<HttpRequest, HttpResponse> service) { defaultVirtualHostBuilderUpdated(); defaultVirtualHostBuilder.service(pathMapping, service); return this; }
/** * Binds the specified {@link ServiceWithPathMappings} at multiple {@link PathMapping}s * of the default {@link VirtualHost}. * * @throws IllegalStateException if the default {@link VirtualHost} has been set via * {@link #defaultVirtualHost(VirtualHost)} already */ public <T extends ServiceWithPathMappings<HttpRequest, HttpResponse>> ServerBuilder service(T serviceWithPathMappings) { defaultVirtualHostBuilderUpdated(); defaultVirtualHostBuilder.service(serviceWithPathMappings); return this; }
/** * Binds the specified {@link Service} at the specified {@link PathMapping} of the default * {@link VirtualHost}. * * @deprecated Use a logging framework integration such as {@code RequestContextExportingAppender} in * {@code armeria-logback}. */ @Deprecated public ServerBuilder service(PathMapping pathMapping, Service<HttpRequest, HttpResponse> service, String loggerName) { defaultVirtualHostBuilderUpdated(); defaultVirtualHostBuilder.service(pathMapping, service, loggerName); return this; }
/** * Decorates and binds the specified {@link ServiceWithPathMappings} at multiple {@link PathMapping}s * of the default {@link VirtualHost}. * * @throws IllegalStateException if the default {@link VirtualHost} has been set via * {@link #defaultVirtualHost(VirtualHost)} already */ public <T extends ServiceWithPathMappings<HttpRequest, HttpResponse>, R extends Service<HttpRequest, HttpResponse>> ServerBuilder service(T serviceWithPathMappings, Function<? super T, R> decorator) { defaultVirtualHostBuilderUpdated(); defaultVirtualHostBuilder.service(serviceWithPathMappings, decorator); return this; }
/** * Binds the specified {@link Service} at the specified path pattern of the default {@link VirtualHost}. * e.g. * <ul> * <li>{@code /login} (no path parameters)</li> * <li>{@code /users/{userId}} (curly-brace style)</li> * <li>{@code /list/:productType/by/:ordering} (colon style)</li> * <li>{@code exact:/foo/bar} (exact match)</li> * <li>{@code prefix:/files} (prefix match)</li> * <li><code>glob:/~*/downloads/**</code> (glob pattern)</li> * <li>{@code regex:^/files/(?<filePath>.*)$} (regular expression)</li> * </ul> * * @throws IllegalArgumentException if the specified path pattern is invalid * @throws IllegalStateException if the default {@link VirtualHost} has been set via * {@link #defaultVirtualHost(VirtualHost)} already */ public ServerBuilder service(String pathPattern, Service<HttpRequest, HttpResponse> service) { defaultVirtualHostBuilderUpdated(); defaultVirtualHostBuilder.service(pathPattern, service); return this; }