/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object * @param nettyClientSslBuilder The SSL builder * @param codecRegistry The {@link MediaTypeCodecRegistry} to use for encoding and decoding objects * @param filters The filters to use */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration, NettyClientSslBuilder nettyClientSslBuilder, MediaTypeCodecRegistry codecRegistry, HttpClientFilter... filters) { this(LoadBalancer.fixed(url), configuration, null, new DefaultThreadFactory(MultithreadEventLoopGroup.class), nettyClientSslBuilder, codecRegistry, AnnotationMetadataResolver.DEFAULT, filters); }
@Override public void register(ConversionService<?> conversionService) { conversionService.addConverter(URI.class, LoadBalancer.class, (TypeConverter<URI, LoadBalancer>) (object, targetType, context) -> { try { return Optional.of(LoadBalancer.fixed(object.toURL())); } catch (MalformedURLException e) { context.reject(e); return Optional.empty(); } }); conversionService.addConverter(URL.class, LoadBalancer.class, (Function<URL, LoadBalancer>) LoadBalancer::fixed); conversionService.addConverter(String.class, LoadBalancer.class, (Function<String, LoadBalancer>) url -> { try { return LoadBalancer.fixed(new URL(url)); } catch (MalformedURLException e) { return null; } }); } }
@Override public Optional<? extends LoadBalancer> resolve(String... serviceReferences) { if (ArrayUtils.isEmpty(serviceReferences) || StringUtils.isEmpty(serviceReferences[0])) { return Optional.empty(); } String reference = serviceReferences[0]; if (reference.startsWith("/")) { // current server reference if (beanContext.containsBean(EmbeddedServer.class)) { EmbeddedServer embeddedServer = beanContext.getBean(EmbeddedServer.class); URL url = embeddedServer.getURL(); return Optional.of(LoadBalancer.fixed(url)); } else { return Optional.empty(); } } else if (reference.indexOf('/') > -1) { try { URL url = new URL(reference); return Optional.of(LoadBalancer.fixed(url)); } catch (MalformedURLException e) { return Optional.empty(); } } else { reference = NameUtils.hyphenate(reference); return resolveLoadBalancerForServiceID(reference); } }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration) { this( LoadBalancer.fixed(url), configuration, null, new DefaultThreadFactory(MultithreadEventLoopGroup.class), createSslBuilder(), createDefaultMediaTypeRegistry(), AnnotationMetadataResolver.DEFAULT ); }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object * @param contextPath The base URI to prepend to request uris */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration, String contextPath) { this( LoadBalancer.fixed(url), configuration, contextPath, new DefaultThreadFactory(MultithreadEventLoopGroup.class), createSslBuilder(), createDefaultMediaTypeRegistry(), AnnotationMetadataResolver.DEFAULT ); }
@BeforeClass public static void setupServer() { System.setProperty(Environment.BOOTSTRAP_CONTEXT_PROPERTY, "true"); Map<String, Object> map = new HashMap<>(); map.put(MockSpringCloudConfigServer.ENABLED, true); map.put("micronaut.server.port", -1); map.put("spring.cloud.config.enabled", false); map.put("micronaut.environments", "dev,test"); springCloudServer = ApplicationContext.run(EmbeddedServer.class, map); server = ApplicationContext.run(EmbeddedServer.class, CollectionUtils.mapOf( "micronaut.environments","test", "micronaut.application.name", "spring-config-sample", "micronaut.config-client.enabled", true, "spring.cloud.config.enabled", true, "spring.cloud.config.uri", springCloudServer.getURI() )); client = server .getApplicationContext() .createBean(HttpClient.class, LoadBalancer.fixed(server.getURL())); }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object * @param nettyClientSslBuilder The SSL builder * @param codecRegistry The {@link MediaTypeCodecRegistry} to use for encoding and decoding objects * @param filters The filters to use */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration, NettyClientSslBuilder nettyClientSslBuilder, MediaTypeCodecRegistry codecRegistry, HttpClientFilter... filters) { this(LoadBalancer.fixed(url), configuration, null, new DefaultThreadFactory(MultithreadEventLoopGroup.class), nettyClientSslBuilder, codecRegistry, AnnotationMetadataResolver.DEFAULT, filters); }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object * @param nettyClientSslBuilder The SSL builder * @param codecRegistry The {@link MediaTypeCodecRegistry} to use for encoding and decoding objects * @param filters The filters to use */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration, NettyClientSslBuilder nettyClientSslBuilder, MediaTypeCodecRegistry codecRegistry, HttpClientFilter... filters) { this(LoadBalancer.fixed(url), configuration, null, new DefaultThreadFactory(MultithreadEventLoopGroup.class), nettyClientSslBuilder, codecRegistry, AnnotationMetadataResolver.DEFAULT, filters); }
@Override public void register(ConversionService<?> conversionService) { conversionService.addConverter(URI.class, LoadBalancer.class, (TypeConverter<URI, LoadBalancer>) (object, targetType, context) -> { try { return Optional.of(LoadBalancer.fixed(object.toURL())); } catch (MalformedURLException e) { context.reject(e); return Optional.empty(); } }); conversionService.addConverter(URL.class, LoadBalancer.class, (Function<URL, LoadBalancer>) LoadBalancer::fixed); conversionService.addConverter(String.class, LoadBalancer.class, (Function<String, LoadBalancer>) url -> { try { return LoadBalancer.fixed(new URL(url)); } catch (MalformedURLException e) { return null; } }); } }
@Override public void register(ConversionService<?> conversionService) { conversionService.addConverter(URI.class, LoadBalancer.class, (TypeConverter<URI, LoadBalancer>) (object, targetType, context) -> { try { return Optional.of(LoadBalancer.fixed(object.toURL())); } catch (MalformedURLException e) { context.reject(e); return Optional.empty(); } }); conversionService.addConverter(URL.class, LoadBalancer.class, (Function<URL, LoadBalancer>) LoadBalancer::fixed); conversionService.addConverter(String.class, LoadBalancer.class, (Function<String, LoadBalancer>) url -> { try { return LoadBalancer.fixed(new URL(url)); } catch (MalformedURLException e) { return null; } }); } }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object * @param contextPath The base URI to prepend to request uris */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration, String contextPath) { this( LoadBalancer.fixed(url), configuration, contextPath, new DefaultThreadFactory(MultithreadEventLoopGroup.class), createSslBuilder(), createDefaultMediaTypeRegistry(), AnnotationMetadataResolver.DEFAULT ); }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration) { this( LoadBalancer.fixed(url), configuration, null, new DefaultThreadFactory(MultithreadEventLoopGroup.class), createSslBuilder(), createDefaultMediaTypeRegistry(), AnnotationMetadataResolver.DEFAULT ); }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration) { this( LoadBalancer.fixed(url), configuration, null, new DefaultThreadFactory(MultithreadEventLoopGroup.class), createSslBuilder(), createDefaultMediaTypeRegistry(), AnnotationMetadataResolver.DEFAULT ); }
@Override public Optional<? extends LoadBalancer> resolve(String... serviceReferences) { if (ArrayUtils.isEmpty(serviceReferences) || StringUtils.isEmpty(serviceReferences[0])) { return Optional.empty(); } String reference = serviceReferences[0]; if (reference.startsWith("/")) { // current server reference if (beanContext.containsBean(EmbeddedServer.class)) { EmbeddedServer embeddedServer = beanContext.getBean(EmbeddedServer.class); URL url = embeddedServer.getURL(); return Optional.of(LoadBalancer.fixed(url)); } else { return Optional.empty(); } } else if (reference.indexOf('/') > -1) { try { URL url = new URL(reference); return Optional.of(LoadBalancer.fixed(url)); } catch (MalformedURLException e) { return Optional.empty(); } } else { reference = NameUtils.hyphenate(reference); return resolveLoadBalancerForServiceID(reference); } }
@Override public Optional<? extends LoadBalancer> resolve(String... serviceReferences) { if (ArrayUtils.isEmpty(serviceReferences) || StringUtils.isEmpty(serviceReferences[0])) { return Optional.empty(); } String reference = serviceReferences[0]; if (reference.startsWith("/")) { // current server reference if (beanContext.containsBean(EmbeddedServer.class)) { EmbeddedServer embeddedServer = beanContext.getBean(EmbeddedServer.class); URL url = embeddedServer.getURL(); return Optional.of(LoadBalancer.fixed(url)); } else { return Optional.empty(); } } else if (reference.indexOf('/') > -1) { try { URL url = new URL(reference); return Optional.of(LoadBalancer.fixed(url)); } catch (MalformedURLException e) { return Optional.empty(); } } else { reference = NameUtils.hyphenate(reference); return resolveLoadBalancerForServiceID(reference); } }
/** * @param url The URL * @param configuration The {@link HttpClientConfiguration} object * @param contextPath The base URI to prepend to request uris */ public DefaultHttpClient(URL url, HttpClientConfiguration configuration, String contextPath) { this( LoadBalancer.fixed(url), configuration, contextPath, new DefaultThreadFactory(MultithreadEventLoopGroup.class), createSslBuilder(), createDefaultMediaTypeRegistry(), AnnotationMetadataResolver.DEFAULT ); }