/** * The default {@link io.micronaut.http.ssl.SslConfiguration.KeyStoreConfiguration}. */ @SuppressWarnings("WeakerAccess") @ConfigurationProperties(KeyStoreConfiguration.PREFIX) @Requires(property = ServerSslConfiguration.PREFIX + "." + KeyStoreConfiguration.PREFIX) public static class DefaultKeyStoreConfiguration extends KeyStoreConfiguration { }
/** * The default {@link io.micronaut.http.ssl.SslConfiguration.KeyConfiguration}. */ @SuppressWarnings("WeakerAccess") @ConfigurationProperties(KeyConfiguration.PREFIX) @Requires(property = ClientSslConfiguration.PREFIX + "." + KeyConfiguration.PREFIX) public static class DefaultKeyConfiguration extends KeyConfiguration { }
/** * The default {@link io.micronaut.http.ssl.SslConfiguration.KeyConfiguration}. */ @SuppressWarnings("WeakerAccess") @ConfigurationProperties(KeyConfiguration.PREFIX) @Requires(property = ServerSslConfiguration.PREFIX + "." + KeyConfiguration.PREFIX) public static class DefaultKeyConfiguration extends KeyConfiguration { }
/** * The default {@link io.micronaut.http.ssl.SslConfiguration.TrustStoreConfiguration}. */ @SuppressWarnings("WeakerAccess") @ConfigurationProperties(TrustStoreConfiguration.PREFIX) @Requires(property = ClientSslConfiguration.PREFIX + "." + TrustStoreConfiguration.PREFIX) public static class DefaultTrustStoreConfiguration extends TrustStoreConfiguration { } }
/** * The default {@link io.micronaut.http.ssl.SslConfiguration.KeyStoreConfiguration}. */ @SuppressWarnings("WeakerAccess") @ConfigurationProperties(KeyStoreConfiguration.PREFIX) @Requires(property = ClientSslConfiguration.PREFIX + "." + KeyStoreConfiguration.PREFIX) public static class DefaultKeyStoreConfiguration extends KeyStoreConfiguration { }
/** * The default {@link io.micronaut.http.ssl.SslConfiguration.TrustStoreConfiguration}. */ @SuppressWarnings("WeakerAccess") @ConfigurationProperties(TrustStoreConfiguration.PREFIX) @Requires(property = ServerSslConfiguration.PREFIX + "." + TrustStoreConfiguration.PREFIX) public static class DefaultTrustStoreConfiguration extends TrustStoreConfiguration { } }
/** * A non-blocking HTTP client for Spring Cloud Config Client. * * @author Thiago Locatelli * @since 1.0 */ @Client(value = SpringCloudConfigConfiguration.SPRING_CLOUD_CONFIG_ENDPOINT, configuration = SpringCloudConfigConfiguration.class) @Requires(beans = SpringCloudConfigConfiguration.class) @BootstrapContextCompatible public interface SpringCloudConfigClient extends SpringCloudConfigOperations { String CLIENT_DESCRIPTION = "spring-cloud-config-client"; }
@Requires(property = "spec.name", value = "AtErrorExceptionHandlerPrecedenceSpec") @Produces @Singleton @Requires(classes = {OutOfStockException.class, ExceptionHandler.class}) public class OutOfStockExceptionHandler implements ExceptionHandler<OutOfStockException, HttpResponse> { @Override public HttpResponse handle(HttpRequest request, OutOfStockException exception) { return HttpResponse.ok(0); } }
@Requires(property = "spec.name", value = "ExceptionHandlerSpec") //tag::clazz[] @Produces @Singleton @Requires(classes = {OutOfStockException.class, ExceptionHandler.class}) public class OutOfStockExceptionHandler implements ExceptionHandler<OutOfStockException, HttpResponse> { @Override public HttpResponse handle(HttpRequest request, OutOfStockException exception) { return HttpResponse.ok(0); } } //end::clazz[]
@Requires(property = "spec.name", value = "httpstatus") @Controller("/httpResponseStatus") public class HttpResponseStatusController { //tag::httpResponseStatus[] @Get(produces = MediaType.TEXT_PLAIN) public HttpResponse index() { return HttpResponse.status(HttpStatus.CREATED).body("success"); } //end::httpResponseStatus[] }
@Requires(property = "spec.name", value = "AtErrorExceptionHandlerPrecedenceSpec") //tag::clazz[] @Controller("/books") public class BookController { @Produces(MediaType.TEXT_PLAIN) @Get("/stock/{isbn}") Integer stock(String isbn) { throw new OutOfStockException(); } } //end::clazz[]
@Requires(property = "spec.name", value = "IsbnValidationSpec") //tag::clazz[] @FunctionBean("isbn-validator") public class IsbnValidatorFunction implements Function<IsbnValidationRequest, IsbnValidationResponse> { @Override public IsbnValidationResponse apply(IsbnValidationRequest request) { return new IsbnValidationResponse(); } } //end::clazz[]
@Requires(property = "spec.name", value = "IsbnValidationSpec") //tag::clazz[] @FunctionClient public interface IsbnValidatorClient { @Named("isbn-validator") Single<IsbnValidationResponse> validate(@Body IsbnValidationRequest request); // <1> } //end::clazz[]
@Requires(property = "spec.name", value = "AtErrorExceptionHandlerPrecedenceSpec") @Controller("/outofstock") public class OutOfStockController { @Error(exception = OutOfStockException.class, global = true) public HttpResponse handleOutOfStock(HttpRequest request) { return HttpResponse.ok(-1); } }
@Requires(property = "spec.name", value = "ExceptionHandlerSpec") //tag::clazz[] @Controller("/books") public class BookController { @Produces(MediaType.TEXT_PLAIN) @Get("/stock/{isbn}") Integer stock(String isbn) { throw new OutOfStockException(); } } //end::clazz[]
@Requires(property = "spec.name", value = "httpstatus") @Controller("/respondHttpStatus") public class RespondHttpStatusController { //tag::respondHttpStatus[] @Get public HttpStatus index() { return HttpStatus.CREATED; } //end::respondHttpStatus[] }
/** * Create a {@link io.micronaut.discovery.ServiceInstanceList} for each configured client. * * @param configuration The configuration * @return The instance list */ @EachBean(ServiceHttpClientConfiguration.class) @Requires(condition = ServiceHttpClientCondition.class) StaticServiceInstanceList serviceInstanceList(ServiceHttpClientConfiguration configuration) { List<URI> originalURLs = configuration.getUrls(); Collection<URI> loadBalancedURIs = new ConcurrentLinkedQueue<>(originalURLs); return new StaticServiceInstanceList(configuration.getServiceId(), loadBalancedURIs); }
@Requires(property = "spec.name", value = "respondingnotfound") //tag::clazz[] @Controller("/books") public class BooksController { @Get("/stock/{isbn}") public Map stock(String isbn) { return null; //<1> } @Get("/maybestock/{isbn}") public Maybe<Map> maybestock(String isbn) { return Maybe.empty(); //<2> } } //end::clazz[]
@Requires(property = "spec.name", value = "BindHttpClientExceptionBodySpec") //tag::clazz[] @Controller("/books") public class BooksController { @Get("/{isbn}") public HttpResponse find(String isbn) { if (isbn.equals("1680502395")) { Map<String, Object> m = new HashMap<>(); m.put("status", 401); m.put("error", "Unauthorized"); m.put("message", "No message available"); m.put("path", "/books/"+isbn); return HttpResponse.status(HttpStatus.UNAUTHORIZED).body(m); } return HttpResponse.ok(new Book("1491950358", "Building Microservices")); } } //end::clazz[]
/** * The client returned from a builder. * @return client object */ @Bean @Refreshable @Requires(beans = AWSLambdaConfiguration.class) AWSLambdaAsync awsLambdaAsyncClient() { AWSLambdaAsyncClientBuilder builder = configuration.getBuilder(); return builder.build(); } }