diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/CloudEurekaTransportConfig.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/CloudEurekaTransportConfig.java index 2a6f1b5e09..d23dae126a 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/CloudEurekaTransportConfig.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/CloudEurekaTransportConfig.java @@ -193,20 +193,43 @@ public int hashCode() { @Override public String toString() { return new StringBuilder("CloudEurekaTransportConfig{").append("sessionedClientReconnectIntervalSeconds=") - .append(sessionedClientReconnectIntervalSeconds).append(", ") - .append("retryableClientQuarantineRefreshPercentage=") - .append(retryableClientQuarantineRefreshPercentage).append(", ") - .append("bootstrapResolverRefreshIntervalSeconds=").append(bootstrapResolverRefreshIntervalSeconds) - .append(", ").append("applicationsResolverDataStalenessThresholdSeconds=") - .append(applicationsResolverDataStalenessThresholdSeconds).append(", ") - .append("asyncResolverRefreshIntervalMs=").append(asyncResolverRefreshIntervalMs).append(", ") - .append("asyncResolverWarmUpTimeoutMs=").append(asyncResolverWarmUpTimeoutMs).append(", ") - .append("asyncExecutorThreadPoolSize=").append(asyncExecutorThreadPoolSize).append(", ") - .append("readClusterVip='").append(readClusterVip).append("', ").append("writeClusterVip='") - .append(writeClusterVip).append("', ").append("bootstrapResolverForQuery=") - .append(bootstrapResolverForQuery).append(", ").append("bootstrapResolverStrategy='") - .append(bootstrapResolverStrategy).append("', ").append("applicationsResolverUseIp=") - .append(applicationsResolverUseIp).append(", ").append("}").toString(); + .append(sessionedClientReconnectIntervalSeconds) + .append(", ") + .append("retryableClientQuarantineRefreshPercentage=") + .append(retryableClientQuarantineRefreshPercentage) + .append(", ") + .append("bootstrapResolverRefreshIntervalSeconds=") + .append(bootstrapResolverRefreshIntervalSeconds) + .append(", ") + .append("applicationsResolverDataStalenessThresholdSeconds=") + .append(applicationsResolverDataStalenessThresholdSeconds) + .append(", ") + .append("asyncResolverRefreshIntervalMs=") + .append(asyncResolverRefreshIntervalMs) + .append(", ") + .append("asyncResolverWarmUpTimeoutMs=") + .append(asyncResolverWarmUpTimeoutMs) + .append(", ") + .append("asyncExecutorThreadPoolSize=") + .append(asyncExecutorThreadPoolSize) + .append(", ") + .append("readClusterVip='") + .append(readClusterVip) + .append("', ") + .append("writeClusterVip='") + .append(writeClusterVip) + .append("', ") + .append("bootstrapResolverForQuery=") + .append(bootstrapResolverForQuery) + .append(", ") + .append("bootstrapResolverStrategy='") + .append(bootstrapResolverStrategy) + .append("', ") + .append("applicationsResolverUseIp=") + .append(applicationsResolverUseIp) + .append(", ") + .append("}") + .toString(); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java index 68a06a859f..036a1d06fe 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java @@ -281,8 +281,11 @@ public ApplicationInfoManager eurekaApplicationInfoManager(EurekaInstanceConfig public EurekaRegistration eurekaRegistration(EurekaClient eurekaClient, CloudEurekaInstanceConfig instanceConfig, ApplicationInfoManager applicationInfoManager, @Autowired(required = false) ObjectProvider healthCheckHandler) { - return EurekaRegistration.builder(instanceConfig).with(applicationInfoManager).with(eurekaClient) - .with(healthCheckHandler).build(); + return EurekaRegistration.builder(instanceConfig) + .with(applicationInfoManager) + .with(eurekaClient) + .with(healthCheckHandler) + .build(); } } @@ -340,8 +343,11 @@ public ApplicationInfoManager eurekaApplicationInfoManager(EurekaInstanceConfig public EurekaRegistration eurekaRegistration(EurekaClient eurekaClient, CloudEurekaInstanceConfig instanceConfig, ApplicationInfoManager applicationInfoManager, @Autowired(required = false) ObjectProvider healthCheckHandler) { - return EurekaRegistration.builder(instanceConfig).with(applicationInfoManager).with(eurekaClient) - .with(healthCheckHandler).build(); + return EurekaRegistration.builder(instanceConfig) + .with(applicationInfoManager) + .with(eurekaClient) + .with(healthCheckHandler) + .build(); } } @@ -411,75 +417,77 @@ public void registerHints(RuntimeHints hints, ClassLoader classLoader) { if (!ClassUtils.isPresent("com.netflix.discovery.DiscoveryClient", classLoader)) { return; } - hints.reflection().registerType(TypeReference.of(DiscoveryClient.class), - hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INTROSPECT_DECLARED_METHODS)) - .registerType(TypeReference.of(EurekaEndpoint.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS)) - .registerType(TypeReference.of(DefaultEndpoint.class), - hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) - .registerType(TypeReference.of(EurekaHttpClientDecorator.class), - hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, - MemberCategory.INTROSPECT_DECLARED_METHODS)) - .registerType(TypeReference.of(EurekaHttpResponse.class), - hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) - .registerType(TypeReference.of(EurekaHttpClientDecorator.RequestExecutor.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS)) - .registerType(TypeReference.of(ApplicationInfoManager.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS)) - .registerType(TypeReference.of(InstanceInfo.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.DECLARED_FIELDS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) - .registerType(TypeReference.of(InstanceInfo.ActionType.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(InstanceInfo.PortWrapper.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(LeaseInfo.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(MyDataCenterInfo.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(DataCenterInfo.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(DataCenterInfo.Name.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(EurekaClient.class), - hint -> hint.withMembers(MemberCategory.INVOKE_PUBLIC_METHODS)) - .registerType(TypeReference.of(TimedSupervisorTask.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(DataCenterTypeInfoResolver.class), - hint -> hint.withMembers(MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS)) - .registerType(TypeReference.of(ApplicationsJacksonBuilder.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(InstanceInfoJsonMixIn.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(Application.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(Applications.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(AsyncResolver.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(RetryableEurekaHttpClient.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(SessionedEurekaHttpClient.class), - hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, - MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of(EurekaServiceInstance.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)); + hints.reflection() + .registerType(TypeReference.of(DiscoveryClient.class), + hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, + MemberCategory.INTROSPECT_DECLARED_METHODS)) + .registerType(TypeReference.of(EurekaEndpoint.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS)) + .registerType(TypeReference.of(DefaultEndpoint.class), + hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) + .registerType(TypeReference.of(EurekaHttpClientDecorator.class), + hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, + MemberCategory.INTROSPECT_DECLARED_METHODS)) + .registerType(TypeReference.of(EurekaHttpResponse.class), + hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) + .registerType(TypeReference.of(EurekaHttpClientDecorator.RequestExecutor.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS)) + .registerType(TypeReference.of(ApplicationInfoManager.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS)) + .registerType(TypeReference.of(InstanceInfo.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.DECLARED_FIELDS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) + .registerType(TypeReference.of(InstanceInfo.ActionType.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(InstanceInfo.PortWrapper.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(LeaseInfo.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(MyDataCenterInfo.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(DataCenterInfo.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(DataCenterInfo.Name.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(EurekaClient.class), + hint -> hint.withMembers(MemberCategory.INVOKE_PUBLIC_METHODS)) + .registerType(TypeReference.of(TimedSupervisorTask.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(DataCenterTypeInfoResolver.class), + hint -> hint.withMembers(MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS)) + .registerType(TypeReference.of(ApplicationsJacksonBuilder.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(InstanceInfoJsonMixIn.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(Application.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(Applications.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(AsyncResolver.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(RetryableEurekaHttpClient.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(SessionedEurekaHttpClient.class), + hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, + MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of(EurekaServiceInstance.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java index f0aea7ce60..7c4eda3037 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java @@ -998,47 +998,147 @@ public int hashCode() { @Override public String toString() { - return new StringBuilder("EurekaClientConfigBean{").append("propertyResolver=").append(propertyResolver) - .append(", ").append("enabled=").append(enabled).append(", ").append("transport=").append(transport) - .append(", ").append("registryFetchIntervalSeconds=").append(registryFetchIntervalSeconds).append(", ") - .append("instanceInfoReplicationIntervalSeconds=").append(instanceInfoReplicationIntervalSeconds) - .append(", ").append("initialInstanceInfoReplicationIntervalSeconds=") - .append(initialInstanceInfoReplicationIntervalSeconds).append(", ") - .append("eurekaServiceUrlPollIntervalSeconds=").append(eurekaServiceUrlPollIntervalSeconds).append(", ") - .append("proxyPort='").append(proxyPort).append("', ").append("proxyHost='").append(proxyHost) - .append("', ").append("proxyUserName='").append(proxyUserName).append("', ").append("proxyPassword='") - .append(proxyPassword).append("', ").append("eurekaServerReadTimeoutSeconds=") - .append(eurekaServerReadTimeoutSeconds).append(", ").append("eurekaServerConnectTimeoutSeconds=") - .append(eurekaServerConnectTimeoutSeconds).append(", ").append("backupRegistryImpl='") - .append(backupRegistryImpl).append("', ").append("eurekaServerTotalConnections=") - .append(eurekaServerTotalConnections).append(", ").append("eurekaServerTotalConnectionsPerHost=") - .append(eurekaServerTotalConnectionsPerHost).append(", ").append("eurekaServerURLContext='") - .append(eurekaServerURLContext).append("', ").append("eurekaServerPort='").append(eurekaServerPort) - .append("', ").append("eurekaServerDNSName='").append(eurekaServerDNSName).append("', ") - .append("region='").append(region).append("', ").append("eurekaConnectionIdleTimeoutSeconds=") - .append(eurekaConnectionIdleTimeoutSeconds).append(", ").append("registryRefreshSingleVipAddress='") - .append(registryRefreshSingleVipAddress).append("', ").append("heartbeatExecutorThreadPoolSize=") - .append(heartbeatExecutorThreadPoolSize).append(", ") - .append("heartbeatExecutorExponentialBackOffBound=").append(heartbeatExecutorExponentialBackOffBound) - .append(", ").append("cacheRefreshExecutorThreadPoolSize=").append(cacheRefreshExecutorThreadPoolSize) - .append(", ").append("cacheRefreshExecutorExponentialBackOffBound=") - .append(cacheRefreshExecutorExponentialBackOffBound).append(", ").append("serviceUrl=") - .append(serviceUrl).append(", ").append("gZipContent=").append(gZipContent).append(", ") - .append("useDnsForFetchingServiceUrls=").append(useDnsForFetchingServiceUrls).append(", ") - .append("registerWithEureka=").append(registerWithEureka).append(", ").append("preferSameZoneEureka=") - .append(preferSameZoneEureka).append(", ").append("logDeltaDiff=").append(logDeltaDiff).append(", ") - .append("disableDelta=").append(disableDelta).append(", ").append("fetchRemoteRegionsRegistry='") - .append(fetchRemoteRegionsRegistry).append("', ").append("availabilityZones=").append(availabilityZones) - .append(", ").append("filterOnlyUpInstances=").append(filterOnlyUpInstances).append(", ") - .append("fetchRegistry=").append(fetchRegistry).append(", ").append("dollarReplacement='") - .append(dollarReplacement).append("', ").append("escapeCharReplacement='").append(escapeCharReplacement) - .append("', ").append("allowRedirects=").append(allowRedirects).append(", ") - .append("onDemandUpdateStatusChange=").append(onDemandUpdateStatusChange).append(", ") - .append("encoderName='").append(encoderName).append("', ").append("decoderName='").append(decoderName) - .append("', ").append("clientDataAccept='").append(clientDataAccept).append("', ") - .append("shouldUnregisterOnShutdown='").append(shouldUnregisterOnShutdown) - .append("shouldEnforceRegistrationAtInit='").append(shouldEnforceRegistrationAtInit).append("', ") - .append("order='").append(order).append("'}").toString(); + return new StringBuilder("EurekaClientConfigBean{").append("propertyResolver=") + .append(propertyResolver) + .append(", ") + .append("enabled=") + .append(enabled) + .append(", ") + .append("transport=") + .append(transport) + .append(", ") + .append("registryFetchIntervalSeconds=") + .append(registryFetchIntervalSeconds) + .append(", ") + .append("instanceInfoReplicationIntervalSeconds=") + .append(instanceInfoReplicationIntervalSeconds) + .append(", ") + .append("initialInstanceInfoReplicationIntervalSeconds=") + .append(initialInstanceInfoReplicationIntervalSeconds) + .append(", ") + .append("eurekaServiceUrlPollIntervalSeconds=") + .append(eurekaServiceUrlPollIntervalSeconds) + .append(", ") + .append("proxyPort='") + .append(proxyPort) + .append("', ") + .append("proxyHost='") + .append(proxyHost) + .append("', ") + .append("proxyUserName='") + .append(proxyUserName) + .append("', ") + .append("proxyPassword='") + .append(proxyPassword) + .append("', ") + .append("eurekaServerReadTimeoutSeconds=") + .append(eurekaServerReadTimeoutSeconds) + .append(", ") + .append("eurekaServerConnectTimeoutSeconds=") + .append(eurekaServerConnectTimeoutSeconds) + .append(", ") + .append("backupRegistryImpl='") + .append(backupRegistryImpl) + .append("', ") + .append("eurekaServerTotalConnections=") + .append(eurekaServerTotalConnections) + .append(", ") + .append("eurekaServerTotalConnectionsPerHost=") + .append(eurekaServerTotalConnectionsPerHost) + .append(", ") + .append("eurekaServerURLContext='") + .append(eurekaServerURLContext) + .append("', ") + .append("eurekaServerPort='") + .append(eurekaServerPort) + .append("', ") + .append("eurekaServerDNSName='") + .append(eurekaServerDNSName) + .append("', ") + .append("region='") + .append(region) + .append("', ") + .append("eurekaConnectionIdleTimeoutSeconds=") + .append(eurekaConnectionIdleTimeoutSeconds) + .append(", ") + .append("registryRefreshSingleVipAddress='") + .append(registryRefreshSingleVipAddress) + .append("', ") + .append("heartbeatExecutorThreadPoolSize=") + .append(heartbeatExecutorThreadPoolSize) + .append(", ") + .append("heartbeatExecutorExponentialBackOffBound=") + .append(heartbeatExecutorExponentialBackOffBound) + .append(", ") + .append("cacheRefreshExecutorThreadPoolSize=") + .append(cacheRefreshExecutorThreadPoolSize) + .append(", ") + .append("cacheRefreshExecutorExponentialBackOffBound=") + .append(cacheRefreshExecutorExponentialBackOffBound) + .append(", ") + .append("serviceUrl=") + .append(serviceUrl) + .append(", ") + .append("gZipContent=") + .append(gZipContent) + .append(", ") + .append("useDnsForFetchingServiceUrls=") + .append(useDnsForFetchingServiceUrls) + .append(", ") + .append("registerWithEureka=") + .append(registerWithEureka) + .append(", ") + .append("preferSameZoneEureka=") + .append(preferSameZoneEureka) + .append(", ") + .append("logDeltaDiff=") + .append(logDeltaDiff) + .append(", ") + .append("disableDelta=") + .append(disableDelta) + .append(", ") + .append("fetchRemoteRegionsRegistry='") + .append(fetchRemoteRegionsRegistry) + .append("', ") + .append("availabilityZones=") + .append(availabilityZones) + .append(", ") + .append("filterOnlyUpInstances=") + .append(filterOnlyUpInstances) + .append(", ") + .append("fetchRegistry=") + .append(fetchRegistry) + .append(", ") + .append("dollarReplacement='") + .append(dollarReplacement) + .append("', ") + .append("escapeCharReplacement='") + .append(escapeCharReplacement) + .append("', ") + .append("allowRedirects=") + .append(allowRedirects) + .append(", ") + .append("onDemandUpdateStatusChange=") + .append(onDemandUpdateStatusChange) + .append(", ") + .append("encoderName='") + .append(encoderName) + .append("', ") + .append("decoderName='") + .append(decoderName) + .append("', ") + .append("clientDataAccept='") + .append(clientDataAccept) + .append("', ") + .append("shouldUnregisterOnShutdown='") + .append(shouldUnregisterOnShutdown) + .append("shouldEnforceRegistrationAtInit='") + .append(shouldEnforceRegistrationAtInit) + .append("', ") + .append("order='") + .append(order) + .append("'}") + .toString(); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBean.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBean.java index 8468b8ad93..fac9b8c6bc 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBean.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBean.java @@ -628,30 +628,104 @@ public int hashCode() { @Override public String toString() { - return new StringBuilder("EurekaInstanceConfigBean{").append("hostInfo=").append(hostInfo).append(", ") - .append("inetUtils=").append(inetUtils).append(", ").append("appname='").append(appname).append("', ") - .append("appGroupName='").append(appGroupName).append("', ").append("instanceEnabledOnit=") - .append(instanceEnabledOnit).append(", ").append("nonSecurePort=").append(nonSecurePort).append(", ") - .append("securePort=").append(securePort).append(", ").append("nonSecurePortEnabled=") - .append(nonSecurePortEnabled).append(", ").append("securePortEnabled=").append(securePortEnabled) - .append(", ").append("leaseRenewalIntervalInSeconds=").append(leaseRenewalIntervalInSeconds) - .append(", ").append("leaseExpirationDurationInSeconds=").append(leaseExpirationDurationInSeconds) - .append(", ").append("virtualHostName='").append(virtualHostName).append("', ").append("instanceId='") - .append(instanceId).append("', ").append("secureVirtualHostName='").append(secureVirtualHostName) - .append("', ").append("aSGName='").append(aSGName).append("', ").append("metadataMap=") - .append(metadataMap).append(", ").append("dataCenterInfo=").append(dataCenterInfo).append(", ") - .append("ipAddress='").append(ipAddress).append("', ").append("statusPageUrlPath='") - .append(statusPageUrlPath).append("', ").append("statusPageUrl='").append(statusPageUrl).append("', ") - .append("homePageUrlPath='").append(homePageUrlPath).append("', ").append("homePageUrl='") - .append(homePageUrl).append("', ").append("healthCheckUrlPath='").append(healthCheckUrlPath) - .append("', ").append("healthCheckUrl='").append(healthCheckUrl).append("', ") - .append("secureHealthCheckUrl='").append(secureHealthCheckUrl).append("', ").append("namespace='") - .append(namespace).append("', ").append("hostname='").append(hostname).append("', ") - .append("asyncClientInitialization=").append(asyncClientInitialization).append(", ") - .append("preferIpAddress=").append(preferIpAddress).append(", ").append("initialStatus=") - .append(initialStatus).append(", ").append("defaultAddressResolutionOrder=") - .append(Arrays.toString(defaultAddressResolutionOrder)).append(", ").append("environment=") - .append(environment).append(", ").append("}").toString(); + return new StringBuilder("EurekaInstanceConfigBean{").append("hostInfo=") + .append(hostInfo) + .append(", ") + .append("inetUtils=") + .append(inetUtils) + .append(", ") + .append("appname='") + .append(appname) + .append("', ") + .append("appGroupName='") + .append(appGroupName) + .append("', ") + .append("instanceEnabledOnit=") + .append(instanceEnabledOnit) + .append(", ") + .append("nonSecurePort=") + .append(nonSecurePort) + .append(", ") + .append("securePort=") + .append(securePort) + .append(", ") + .append("nonSecurePortEnabled=") + .append(nonSecurePortEnabled) + .append(", ") + .append("securePortEnabled=") + .append(securePortEnabled) + .append(", ") + .append("leaseRenewalIntervalInSeconds=") + .append(leaseRenewalIntervalInSeconds) + .append(", ") + .append("leaseExpirationDurationInSeconds=") + .append(leaseExpirationDurationInSeconds) + .append(", ") + .append("virtualHostName='") + .append(virtualHostName) + .append("', ") + .append("instanceId='") + .append(instanceId) + .append("', ") + .append("secureVirtualHostName='") + .append(secureVirtualHostName) + .append("', ") + .append("aSGName='") + .append(aSGName) + .append("', ") + .append("metadataMap=") + .append(metadataMap) + .append(", ") + .append("dataCenterInfo=") + .append(dataCenterInfo) + .append(", ") + .append("ipAddress='") + .append(ipAddress) + .append("', ") + .append("statusPageUrlPath='") + .append(statusPageUrlPath) + .append("', ") + .append("statusPageUrl='") + .append(statusPageUrl) + .append("', ") + .append("homePageUrlPath='") + .append(homePageUrlPath) + .append("', ") + .append("homePageUrl='") + .append(homePageUrl) + .append("', ") + .append("healthCheckUrlPath='") + .append(healthCheckUrlPath) + .append("', ") + .append("healthCheckUrl='") + .append(healthCheckUrl) + .append("', ") + .append("secureHealthCheckUrl='") + .append(secureHealthCheckUrl) + .append("', ") + .append("namespace='") + .append(namespace) + .append("', ") + .append("hostname='") + .append(hostname) + .append("', ") + .append("asyncClientInitialization=") + .append(asyncClientInitialization) + .append(", ") + .append("preferIpAddress=") + .append(preferIpAddress) + .append(", ") + .append("initialStatus=") + .append(initialStatus) + .append(", ") + .append("defaultAddressResolutionOrder=") + .append(Arrays.toString(defaultAddressResolutionOrder)) + .append(", ") + .append("environment=") + .append(environment) + .append(", ") + .append("}") + .toString(); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/InstanceInfoFactory.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/InstanceInfoFactory.java index 22effe03b0..eaec4ae3b4 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/InstanceInfoFactory.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/InstanceInfoFactory.java @@ -35,8 +35,8 @@ public class InstanceInfoFactory { public InstanceInfo create(EurekaInstanceConfig config) { LeaseInfo.Builder leaseInfoBuilder = LeaseInfo.Builder.newBuilder() - .setRenewalIntervalInSecs(config.getLeaseRenewalIntervalInSeconds()) - .setDurationInSecs(config.getLeaseExpirationDurationInSeconds()); + .setRenewalIntervalInSecs(config.getLeaseRenewalIntervalInSeconds()) + .setDurationInSecs(config.getLeaseExpirationDurationInSeconds()); // Builder the instance information to be registered with eureka // server @@ -46,19 +46,24 @@ public InstanceInfo create(EurekaInstanceConfig config) { if (!namespace.endsWith(".")) { namespace = namespace + "."; } - builder.setNamespace(namespace).setAppName(config.getAppname()).setInstanceId(config.getInstanceId()) - .setAppGroupName(config.getAppGroupName()).setDataCenterInfo(config.getDataCenterInfo()) - .setIPAddr(config.getIpAddress()).setHostName(config.getHostName(false)) - .setPort(config.getNonSecurePort()) - .enablePort(InstanceInfo.PortType.UNSECURE, config.isNonSecurePortEnabled()) - .setSecurePort(config.getSecurePort()) - .enablePort(InstanceInfo.PortType.SECURE, config.getSecurePortEnabled()) - .setVIPAddress(config.getVirtualHostName()).setSecureVIPAddress(config.getSecureVirtualHostName()) - .setHomePageUrl(config.getHomePageUrlPath(), config.getHomePageUrl()) - .setStatusPageUrl(config.getStatusPageUrlPath(), config.getStatusPageUrl()) - .setHealthCheckUrls(config.getHealthCheckUrlPath(), config.getHealthCheckUrl(), - config.getSecureHealthCheckUrl()) - .setASGName(config.getASGName()); + builder.setNamespace(namespace) + .setAppName(config.getAppname()) + .setInstanceId(config.getInstanceId()) + .setAppGroupName(config.getAppGroupName()) + .setDataCenterInfo(config.getDataCenterInfo()) + .setIPAddr(config.getIpAddress()) + .setHostName(config.getHostName(false)) + .setPort(config.getNonSecurePort()) + .enablePort(InstanceInfo.PortType.UNSECURE, config.isNonSecurePortEnabled()) + .setSecurePort(config.getSecurePort()) + .enablePort(InstanceInfo.PortType.SECURE, config.getSecurePortEnabled()) + .setVIPAddress(config.getVirtualHostName()) + .setSecureVIPAddress(config.getSecureVirtualHostName()) + .setHomePageUrl(config.getHomePageUrlPath(), config.getHomePageUrl()) + .setStatusPageUrl(config.getStatusPageUrlPath(), config.getStatusPageUrl()) + .setHealthCheckUrls(config.getHealthCheckUrlPath(), config.getHealthCheckUrl(), + config.getSecureHealthCheckUrl()) + .setASGName(config.getASGName()); // Start off with the STARTING state to avoid traffic if (!config.isInstanceEnabledOnit()) { diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfiguration.java index 104c6f1a12..32f54e5270 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfiguration.java @@ -77,7 +77,7 @@ public RestTemplateEurekaHttpClient configDiscoveryRestTemplateEurekaHttpClient( ObjectProvider restTemplateBuilders) { return (RestTemplateEurekaHttpClient) new RestTemplateTransportClientFactory(properties, eurekaClientHttpRequestFactorySupplier, restTemplateBuilders::getIfAvailable) - .newClient(HostnameBasedUrlRandomizer.randomEndpoint(config, env)); + .newClient(HostnameBasedUrlRandomizer.randomEndpoint(config, env)); } @Bean @@ -104,7 +104,7 @@ protected static class WebClientConfiguration { public WebClientEurekaHttpClient configDiscoveryWebClientEurekaHttpClient(EurekaClientConfigBean config, ObjectProvider builder, Environment env) { return (WebClientEurekaHttpClient) new WebClientTransportClientFactory(builder::getIfAvailable) - .newClient(HostnameBasedUrlRandomizer.randomEndpoint(config, env)); + .newClient(HostnameBasedUrlRandomizer.randomEndpoint(config, env)); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapper.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapper.java index 94383282a8..fdde151f90 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapper.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapper.java @@ -60,8 +60,8 @@ public void initialize(BootstrapRegistry registry) { EurekaHttpClient httpClient = new RestTemplateTransportClientFactory( context.getOrElse(TlsProperties.class, null), context.getOrElse(EurekaClientHttpRequestFactorySupplier.class, - new DefaultEurekaClientHttpRequestFactorySupplier())).newClient( - HostnameBasedUrlRandomizer.randomEndpoint(config, getPropertyResolver(context))); + new DefaultEurekaClientHttpRequestFactorySupplier())) + .newClient(HostnameBasedUrlRandomizer.randomEndpoint(config, getPropertyResolver(context))); return new EurekaConfigServerInstanceProvider(httpClient, config)::getInstances; }); } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/DefaultEurekaClientHttpRequestFactorySupplier.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/DefaultEurekaClientHttpRequestFactorySupplier.java index 36bf1b35ae..4e334c053c 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/DefaultEurekaClientHttpRequestFactorySupplier.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/DefaultEurekaClientHttpRequestFactorySupplier.java @@ -82,9 +82,9 @@ public ClientHttpRequestFactory get(SSLContext sslContext, @Nullable HostnameVer private HttpClientConnectionManager buildConnectionManager(SSLContext sslContext, HostnameVerifier hostnameVerifier, RestTemplateTimeoutProperties restTemplateTimeoutProperties) { PoolingHttpClientConnectionManagerBuilder connectionManagerBuilder = PoolingHttpClientConnectionManagerBuilder - .create(); + .create(); SSLConnectionSocketFactoryBuilder sslConnectionSocketFactoryBuilder = SSLConnectionSocketFactoryBuilder - .create(); + .create(); if (sslContext != null) { sslConnectionSocketFactoryBuilder.setSslContext(sslContext); } @@ -94,18 +94,18 @@ private HttpClientConnectionManager buildConnectionManager(SSLContext sslContext connectionManagerBuilder.setSSLSocketFactory(sslConnectionSocketFactoryBuilder.build()); if (restTemplateTimeoutProperties != null) { connectionManagerBuilder.setDefaultSocketConfig(SocketConfig.custom() - .setSoTimeout(Timeout.of(restTemplateTimeoutProperties.getSocketTimeout(), TimeUnit.MILLISECONDS)) - .build()); + .setSoTimeout(Timeout.of(restTemplateTimeoutProperties.getSocketTimeout(), TimeUnit.MILLISECONDS)) + .build()); } return connectionManagerBuilder.build(); } private RequestConfig buildRequestConfig() { return RequestConfig.custom() - .setConnectTimeout(Timeout.of(restTemplateTimeoutProperties.getConnectTimeout(), TimeUnit.MILLISECONDS)) - .setConnectionRequestTimeout( - Timeout.of(restTemplateTimeoutProperties.getConnectRequestTimeout(), TimeUnit.MILLISECONDS)) - .build(); + .setConnectTimeout(Timeout.of(restTemplateTimeoutProperties.getConnectTimeout(), TimeUnit.MILLISECONDS)) + .setConnectionRequestTimeout( + Timeout.of(restTemplateTimeoutProperties.getConnectRequestTimeout(), TimeUnit.MILLISECONDS)) + .build(); } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java index 6218b10fcf..7677f079d4 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClient.java @@ -71,8 +71,10 @@ public RestTemplate getRestTemplate() { @Override public EurekaHttpResponse register(InstanceInfo info) { - URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl).path("apps/{appName}").buildAndExpand(info.getAppName()) - .toUri(); + URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl) + .path("apps/{appName}") + .buildAndExpand(info.getAppName()) + .toUri(); HttpHeaders headers = new HttpHeaders(); headers.add(HttpHeaders.ACCEPT_ENCODING, "gzip"); @@ -86,8 +88,10 @@ public EurekaHttpResponse register(InstanceInfo info) { @Override public EurekaHttpResponse cancel(String appName, String id) { - URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl).path("apps/{appName}/{id}").buildAndExpand(appName, id) - .toUri(); + URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl) + .path("apps/{appName}/{id}") + .buildAndExpand(appName, id) + .toUri(); ResponseEntity response = restTemplate.exchange(uri, HttpMethod.DELETE, null, Void.class); @@ -97,9 +101,10 @@ public EurekaHttpResponse cancel(String appName, String id) { @Override public EurekaHttpResponse sendHeartBeat(String appName, String id, InstanceInfo info, InstanceStatus overriddenStatus) { - UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(serviceUrl).path("apps/{appName}/{id}") - .queryParam("status", info.getStatus().toString()) - .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()); + UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(serviceUrl) + .path("apps/{appName}/{id}") + .queryParam("status", info.getStatus().toString()) + .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()); if (overriddenStatus != null) { uriBuilder = uriBuilder.queryParam("overriddenstatus", overriddenStatus.name()); @@ -110,7 +115,8 @@ public EurekaHttpResponse sendHeartBeat(String appName, String id, ResponseEntity response = restTemplate.exchange(uri, HttpMethod.PUT, null, InstanceInfo.class); EurekaHttpResponseBuilder eurekaResponseBuilder = anEurekaHttpResponse( - response.getStatusCode().value(), InstanceInfo.class).headers(headersOf(response)); + response.getStatusCode().value(), InstanceInfo.class) + .headers(headersOf(response)); if (response.hasBody()) { eurekaResponseBuilder.entity(response.getBody()); @@ -122,10 +128,12 @@ public EurekaHttpResponse sendHeartBeat(String appName, String id, @Override public EurekaHttpResponse statusUpdate(String appName, String id, InstanceStatus newStatus, InstanceInfo info) { - URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl).path("apps/{appName}/{id}/status") - .queryParam("value", newStatus.name()) - .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()).buildAndExpand(appName, id) - .toUri(); + URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl) + .path("apps/{appName}/{id}/status") + .queryParam("value", newStatus.name()) + .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()) + .buildAndExpand(appName, id) + .toUri(); ResponseEntity response = restTemplate.exchange(uri, HttpMethod.PUT, null, Void.class); @@ -134,9 +142,11 @@ public EurekaHttpResponse statusUpdate(String appName, String id, Instance @Override public EurekaHttpResponse deleteStatusOverride(String appName, String id, InstanceInfo info) { - URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl).path("apps/{appName}/{id}/status") - .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()).buildAndExpand(appName, id) - .toUri(); + URI uri = UriComponentsBuilder.fromHttpUrl(serviceUrl) + .path("apps/{appName}/{id}/status") + .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()) + .buildAndExpand(appName, id) + .toUri(); ResponseEntity response = restTemplate.exchange(uri, HttpMethod.DELETE, null, Void.class); @@ -162,7 +172,9 @@ private EurekaHttpResponse getApplicationsInternal(String urlPath, return anEurekaHttpResponse(response.getStatusCode().value(), response.getStatusCode().value() == HttpStatus.OK.value() && response.hasBody() - ? (Applications) response.getBody() : null).headers(headersOf(response)).build(); + ? (Applications) response.getBody() : null) + .headers(headersOf(response)) + .build(); } @Override @@ -209,7 +221,9 @@ private EurekaHttpResponse getInstanceInternal(String... pathSegme return anEurekaHttpResponse(response.getStatusCode().value(), response.getStatusCode().value() == HttpStatus.OK.value() && response.hasBody() ? response.getBody() - : null).headers(headersOf(response)).build(); + : null) + .headers(headersOf(response)) + .build(); } @Override diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java index 36e5e7e278..c30ef9a5f0 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java @@ -138,7 +138,7 @@ private String stripUserInfo(String serviceUrl) { private RestTemplate restTemplate(String serviceUrl) { ClientHttpRequestFactory requestFactory = this.eurekaClientHttpRequestFactorySupplier - .get(this.sslContext.orElse(null), this.hostnameVerifier.orElse(null)); + .get(this.sslContext.orElse(null), this.hostnameVerifier.orElse(null)); RestTemplate restTemplate; @@ -155,7 +155,7 @@ private RestTemplate restTemplate(String serviceUrl) { String[] credentials = serviceURI.getUserInfo().split(":"); if (credentials.length == 2) { restTemplate.getInterceptors() - .add(new BasicAuthenticationInterceptor(credentials[0], credentials[1])); + .add(new BasicAuthenticationInterceptor(credentials[0], credentials[1])); } } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java index 9684119a01..41a8861153 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java @@ -55,18 +55,27 @@ public WebClientEurekaHttpClient(WebClient webClient) { @Override public EurekaHttpResponse register(InstanceInfo info) { - return webClient.post().uri(uriBuilder -> uriBuilder.path("apps/{appName}").build(info.getAppName())) - .body(BodyInserters.fromValue(info)).header(HttpHeaders.ACCEPT_ENCODING, "gzip") - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toBodilessEntity().map(this::eurekaHttpResponse) - .block(); + return webClient.post() + .uri(uriBuilder -> uriBuilder.path("apps/{appName}").build(info.getAppName())) + .body(BodyInserters.fromValue(info)) + .header(HttpHeaders.ACCEPT_ENCODING, "gzip") + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toBodilessEntity() + .map(this::eurekaHttpResponse) + .block(); } @Override public EurekaHttpResponse cancel(String appName, String id) { - return webClient.delete().uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}").build(appName, id)) - .retrieve().onStatus(HttpStatusCode::isError, this::ignoreError).toBodilessEntity() - .map(this::eurekaHttpResponse).block(); + return webClient.delete() + .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}").build(appName, id)) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toBodilessEntity() + .map(this::eurekaHttpResponse) + .block(); } @Override @@ -74,15 +83,20 @@ public EurekaHttpResponse sendHeartBeat(String appName, String id, InstanceStatus overriddenStatus) { ResponseEntity response = webClient.put() - .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}") - .queryParam("status", info.getStatus().toString()) - .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()).build(appName, id)) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toEntity(InstanceInfo.class).block(); + .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}") + .queryParam("status", info.getStatus().toString()) + .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()) + .build(appName, id)) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toEntity(InstanceInfo.class) + .block(); EurekaHttpResponseBuilder builder = anEurekaHttpResponse(statusCodeValueOf(response), - InstanceInfo.class).headers(headersOf(response)); + InstanceInfo.class) + .headers(headersOf(response)); InstanceInfo entity = response.getBody(); @@ -98,21 +112,30 @@ public EurekaHttpResponse sendHeartBeat(String appName, String id, public EurekaHttpResponse statusUpdate(String appName, String id, InstanceStatus newStatus, InstanceInfo info) { return webClient.put() - .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}/status").queryParam("value", newStatus.name()) - .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()).build(appName, id)) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toBodilessEntity().map(this::eurekaHttpResponse) - .block(); + .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}/status") + .queryParam("value", newStatus.name()) + .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()) + .build(appName, id)) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toBodilessEntity() + .map(this::eurekaHttpResponse) + .block(); } @Override public EurekaHttpResponse deleteStatusOverride(String appName, String id, InstanceInfo info) { return webClient.delete() - .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}/status") - .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()).build(appName, id)) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toBodilessEntity().map(this::eurekaHttpResponse) - .block(); + .uri(uriBuilder -> uriBuilder.path("apps/{appName}/{id}/status") + .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString()) + .build(appName, id)) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toBodilessEntity() + .map(this::eurekaHttpResponse) + .block(); } @Override @@ -125,17 +148,21 @@ private EurekaHttpResponse getApplicationsInternal(String urlPath, : Optional.empty(); ResponseEntity response = webClient.get() - .uri(uriBuilder -> uriBuilder.path(urlPath).queryParamIfPresent("regions", regionsParam).build()) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toEntity(Applications.class).block(); + .uri(uriBuilder -> uriBuilder.path(urlPath).queryParamIfPresent("regions", regionsParam).build()) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toEntity(Applications.class) + .block(); int statusCode = statusCodeValueOf(response); Applications body = response.getBody(); return anEurekaHttpResponse(statusCode, statusCode == HttpStatus.OK.value() && body != null ? body : null) - .headers(headersOf(response)).build(); + .headers(headersOf(response)) + .build(); } @Override @@ -157,9 +184,12 @@ public EurekaHttpResponse getSecureVip(String secureVipAddress, St public EurekaHttpResponse getApplication(String appName) { ResponseEntity response = webClient.get() - .uri(uriBuilder -> uriBuilder.path("apps/{appName}").build(appName)) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toEntity(Application.class).block(); + .uri(uriBuilder -> uriBuilder.path("apps/{appName}").build(appName)) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toEntity(Application.class) + .block(); int statusCode = statusCodeValueOf(response); Application body = response.getBody(); @@ -181,15 +211,19 @@ public EurekaHttpResponse getInstance(String id) { private EurekaHttpResponse getInstanceInternal(String... pathSegments) { ResponseEntity response = webClient.get() - .uri(uriBuilder -> uriBuilder.pathSegment(pathSegments).build()) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() - .onStatus(HttpStatusCode::isError, this::ignoreError).toEntity(InstanceInfo.class).block(); + .uri(uriBuilder -> uriBuilder.pathSegment(pathSegments).build()) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) + .retrieve() + .onStatus(HttpStatusCode::isError, this::ignoreError) + .toEntity(InstanceInfo.class) + .block(); int statusCode = statusCodeValueOf(response); InstanceInfo body = response.getBody(); return anEurekaHttpResponse(statusCode, statusCode == HttpStatus.OK.value() && body != null ? body : null) - .headers(headersOf(response)).build(); + .headers(headersOf(response)) + .build(); } @Override diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactory.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactory.java index 9a96b25a83..180b0a276b 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactory.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactory.java @@ -155,9 +155,11 @@ private ExchangeFilterFunction http4XxErrorExchangeFilterFunction() { return Mono.just(newResponse); } if (clientResponse.statusCode().equals(HttpStatus.NOT_FOUND)) { - ClientResponse newResponse = clientResponse.mutate().statusCode(clientResponse.statusCode()) - // ignore body on 404 for heartbeat, see gh-4145 - .body(Flux.empty()).build(); + ClientResponse newResponse = clientResponse.mutate() + .statusCode(clientResponse.statusCode()) + // ignore body on 404 for heartbeat, see gh-4145 + .body(Flux.empty()) + .build(); return Mono.just(newResponse); } return Mono.just(clientResponse); diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClient.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClient.java index be7f210cf4..9d191ba8d6 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClient.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClient.java @@ -52,15 +52,16 @@ public String description() { @Override public Flux getInstances(String serviceId) { return Flux.defer(() -> Flux.fromIterable(eurekaClient.getInstancesByVipAddress(serviceId, false))) - .map(EurekaServiceInstance::new); + .map(EurekaServiceInstance::new); } @Override public Flux getServices() { return Flux.defer(() -> Mono.justOrEmpty(eurekaClient.getApplications())) - .flatMapIterable(Applications::getRegisteredApplications) - .filter(application -> !application.getInstances().isEmpty()).map(Application::getName) - .map(String::toLowerCase); + .flatMapIterable(Applications::getRegisteredApplications) + .filter(application -> !application.getInstances().isEmpty()) + .map(Application::getName) + .map(String::toLowerCase); } @Override diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java index 31f95a565a..c8f7624292 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java @@ -74,7 +74,7 @@ public void register(EurekaRegistration reg) { reg.getApplicationInfoManager().setInstanceStatus(reg.getInstanceConfig().getInitialStatus()); reg.getHealthCheckHandler() - .ifAvailable(healthCheckHandler -> reg.getEurekaClient().registerHealthCheck(healthCheckHandler)); + .ifAvailable(healthCheckHandler -> reg.getEurekaClient().registerHealthCheck(healthCheckHandler)); } private void maybeInitializeClient(EurekaRegistration reg) { diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java index 9b0e39b713..8aa2c234b0 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java @@ -37,20 +37,23 @@ class ConditionalOnRefreshScopeTests { @Test void refreshScopeIncluded() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .withUserConfiguration(Beans.class).run(c -> { - assertThat(c).hasSingleBean(org.springframework.cloud.context.scope.refresh.RefreshScope.class); - assertThat(c.getBean("foo")).isEqualTo("foo"); - }); + .withUserConfiguration(Beans.class) + .run(c -> { + assertThat(c).hasSingleBean(org.springframework.cloud.context.scope.refresh.RefreshScope.class); + assertThat(c.getBean("foo")).isEqualTo("foo"); + }); } @Test void refreshScopeIncludedAndPropertyDisabled() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .withPropertyValues("eureka.client.refresh.enable=false").withUserConfiguration(Beans.class).run(c -> { - assertThat(c).hasSingleBean(org.springframework.cloud.context.scope.refresh.RefreshScope.class); - assertThat(c).doesNotHaveBean("foo"); - assertThat(c.getBean("bar")).isEqualTo("bar"); - }); + .withPropertyValues("eureka.client.refresh.enable=false") + .withUserConfiguration(Beans.class) + .run(c -> { + assertThat(c).hasSingleBean(org.springframework.cloud.context.scope.refresh.RefreshScope.class); + assertThat(c).doesNotHaveBean("foo"); + assertThat(c.getBean("bar")).isEqualTo("bar"); + }); } @Test @@ -61,10 +64,11 @@ void refreshScopeNotIncluded() { }); new ApplicationContextRunner().withUserConfiguration(Beans.class) - .withPropertyValues("eureka.client.refresh.enable=false").run(c -> { - assertThat(c).doesNotHaveBean("foo"); - assertThat(c.getBean("bar")).isEqualTo("bar"); - }); + .withPropertyValues("eureka.client.refresh.enable=false") + .run(c -> { + assertThat(c).doesNotHaveBean("foo"); + assertThat(c.getBean("bar")).isEqualTo("bar"); + }); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java index 1f31e884c0..95e4b93586 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfigurationTests.java @@ -118,7 +118,7 @@ void shouldNotSetManagementAndJmxPortsInMetadataMap() { @Test void shouldSetManagementAndJmxPortsInMetadataMap() { TestPropertyValues.of("management.server.port=9999", "com.sun.management.jmxremote.port=6789") - .applyTo(this.context); + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); @@ -128,8 +128,10 @@ void shouldSetManagementAndJmxPortsInMetadataMap() { @Test void shouldNotResetManagementAndJmxPortsInMetadataMap() { - TestPropertyValues.of("management.server.port=9999", "eureka.instance.metadata-map.jmx.port=9898", - "eureka.instance.metadata-map.management.port=7878").applyTo(this.context); + TestPropertyValues + .of("management.server.port=9999", "eureka.instance.metadata-map.jmx.port=9898", + "eureka.instance.metadata-map.management.port=7878") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); @@ -178,112 +180,128 @@ void managementPort() { setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().contains("9999")).as("Wrong status page: " + instance.getStatusPageUrl()) - .isTrue(); + .isTrue(); } @Test void statusPageUrlPathAndManagementPort() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", - "eureka.instance.statusPageUrlPath=/myStatusPage").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "eureka.instance.statusPageUrlPath=/myStatusPage") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().contains("/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test void healthCheckUrlPathAndManagementPort() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", - "eureka.instance.healthCheckUrlPath=/myHealthCheck").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "eureka.instance.healthCheckUrlPath=/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().contains("/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void statusPageUrl_and_healthCheckUrl_do_not_contain_server_context_path() { TestPropertyValues.of("server.port=8989", "management.server.port=9999", "server.contextPath=/service") - .applyTo(this.context); + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":9999/actuator/info")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); assertThat(instance.getHealthCheckUrl().endsWith(":9999/actuator/health")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void statusPageUrl_and_healthCheckUrl_contain_management_context_path() { TestPropertyValues.of("server.port=8989", "management.server.servlet.context-path=/management") - .applyTo(this.context); + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":8989/management/actuator/info")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); assertThat(instance.getHealthCheckUrl().endsWith(":8989/management/actuator/health")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void statusPageUrl_and_healthCheckUrl_contain_management_context_path_random_port() { TestPropertyValues.of("server.port=0", "management.server.servlet.context-path=/management") - .applyTo(this.context); + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrlPath().equals("/management/actuator/info")) - .as("Wrong status page: " + instance.getStatusPageUrlPath()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrlPath()) + .isTrue(); assertThat(instance.getHealthCheckUrlPath().equals("/management/actuator/health")) - .as("Wrong health check: " + instance.getHealthCheckUrlPath()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrlPath()) + .isTrue(); } @Test void statusPageUrlPathAndManagementPortAndContextPath() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", - "management.server.servlet.context-path=/manage", "eureka.instance.status-page-url-path=/myStatusPage") - .applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "management.server.servlet.context-path=/manage", + "eureka.instance.status-page-url-path=/myStatusPage") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":9999/manage/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test void healthCheckUrlPathAndManagementPortAndContextPath() { TestPropertyValues - .of("server.port=8989", "management.server.port=9999", "management.server.servlet.context-path=/manage", - "eureka.instance.health-check-url-path=/myHealthCheck") - .applyTo(this.context); + .of("server.port=8989", "management.server.port=9999", "management.server.servlet.context-path=/manage", + "eureka.instance.health-check-url-path=/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().endsWith(":9999/manage/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void statusPageUrlPathAndManagementPortAndContextPathKebobCase() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", - "management.server.servlet.context-path=/manage", "eureka.instance.status-page-url-path=/myStatusPage") - .applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "management.server.servlet.context-path=/manage", + "eureka.instance.status-page-url-path=/myStatusPage") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":9999/manage/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test void healthCheckUrlPathAndManagementPortAndContextPathKebobCase() { TestPropertyValues - .of("server.port=8989", "management.server.port=9999", "management.server.servlet.context-path=/manage", - "eureka.instance.health-check-url-path=/myHealthCheck") - .applyTo(this.context); + .of("server.port=8989", "management.server.port=9999", "management.server.servlet.context-path=/manage", + "eureka.instance.health-check-url-path=/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().endsWith(":9999/manage/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test @@ -293,9 +311,11 @@ void statusPageUrl_and_healthCheckUrl_contain_management_base_path() { setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":8989/management/actuator/info")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); assertThat(instance.getHealthCheckUrl().endsWith(":8989/management/actuator/health")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test @@ -305,111 +325,132 @@ void statusPageUrl_and_healthCheckUrl_contain_management_base_path_random_port() setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrlPath().equals("/management/actuator/info")) - .as("Wrong status page: " + instance.getStatusPageUrlPath()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrlPath()) + .isTrue(); assertThat(instance.getHealthCheckUrlPath().equals("/management/actuator/health")) - .as("Wrong health check: " + instance.getHealthCheckUrlPath()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrlPath()) + .isTrue(); } @Test void statusPageUrlPathAndManagementPortAndBasePath() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", - "eureka.instance.status-page-url-path=/myStatusPage").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", + "eureka.instance.status-page-url-path=/myStatusPage") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":9999/manage/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test void healthCheckUrlPathAndManagementPortAndBasePath() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", - "eureka.instance.health-check-url-path=/myHealthCheck").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", + "eureka.instance.health-check-url-path=/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().endsWith(":9999/manage/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void statusPageUrlPathAndManagementPortAndBasePathKebobCase() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", - "eureka.instance.status-page-url-path=/myStatusPage").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", + "eureka.instance.status-page-url-path=/myStatusPage") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().endsWith(":9999/manage/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test void healthCheckUrlPathAndManagementPortAndBasePathKebobCase() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", - "eureka.instance.health-check-url-path=/myHealthCheck").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "management.server.base-path=/manage", + "eureka.instance.health-check-url-path=/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().endsWith(":9999/manage/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void healthCheckUrlPathWithServerPortAndContextPathKebobCase() { TestPropertyValues - .of("server.port=8989", "server.servlet.context-path=/servletContextPath", - "eureka.instance.health-check-url-path=${server.servlet.context-path:}/myHealthCheck") - .applyTo(this.context); + .of("server.port=8989", "server.servlet.context-path=/servletContextPath", + "eureka.instance.health-check-url-path=${server.servlet.context-path:}/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl()).as("Wrong health check: " + instance.getHealthCheckUrl()) - .endsWith(":8989/servletContextPath/myHealthCheck"); + .endsWith(":8989/servletContextPath/myHealthCheck"); } @Test void statusPageUrlPathAndManagementPortKabobCase() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", - "eureka.instance.status-page-url-path=/myStatusPage").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "eureka.instance.status-page-url-path=/myStatusPage") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().contains("/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test void statusPageUrlAndPreferIpAddress() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", "eureka.instance.hostname=foo", - "eureka.instance.prefer-ip-address:true").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", "eureka.instance.hostname=foo", + "eureka.instance.prefer-ip-address:true") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl()).as("statusPageUrl is wrong") - .isEqualTo("http://" + instance.getIpAddress() + ":9999/actuator/info"); + .isEqualTo("http://" + instance.getIpAddress() + ":9999/actuator/info"); assertThat(instance.getHealthCheckUrl()).as("healthCheckUrl is wrong") - .isEqualTo("http://" + instance.getIpAddress() + ":9999/actuator/health"); + .isEqualTo("http://" + instance.getIpAddress() + ":9999/actuator/health"); } @Test void statusPageAndHealthCheckUrlsShouldSetUserDefinedIpAddress() { TestPropertyValues - .of("server.port=8989", "management.server.port=9999", "eureka.instance.hostname=foo", - "eureka.instance.ip-address:192.168.13.90", "eureka.instance.prefer-ip-address:true") - .applyTo(this.context); + .of("server.port=8989", "management.server.port=9999", "eureka.instance.hostname=foo", + "eureka.instance.ip-address:192.168.13.90", "eureka.instance.prefer-ip-address:true") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl()).as("statusPageUrl is wrong") - .isEqualTo("http://192.168.13.90:9999/actuator/info"); + .isEqualTo("http://192.168.13.90:9999/actuator/info"); assertThat(instance.getHealthCheckUrl()).as("healthCheckUrl is wrong") - .isEqualTo("http://192.168.13.90:9999/actuator/health"); + .isEqualTo("http://192.168.13.90:9999/actuator/health"); } @Test void healthCheckUrlPathAndManagementPortKabobCase() { - TestPropertyValues.of("server.port=8989", "management.server.port=9999", - "eureka.instance.health-check-url-path=/myHealthCheck").applyTo(this.context); + TestPropertyValues + .of("server.port=8989", "management.server.port=9999", + "eureka.instance.health-check-url-path=/myHealthCheck") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().contains("/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test @@ -419,7 +460,8 @@ void statusPageUrlPathAndManagementPortUpperCase() { setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().contains("/myStatusPage")) - .as("Wrong status page: " + instance.getStatusPageUrl()).isTrue(); + .as("Wrong status page: " + instance.getStatusPageUrl()) + .isTrue(); } @Test @@ -429,35 +471,36 @@ void healthCheckUrlPathAndManagementPortUpperCase() { setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getHealthCheckUrl().contains("/myHealthCheck")) - .as("Wrong health check: " + instance.getHealthCheckUrl()).isTrue(); + .as("Wrong health check: " + instance.getHealthCheckUrl()) + .isTrue(); } @Test void hostname() { TestPropertyValues.of("server.port=8989", "management.server.port=9999", "eureka.instance.hostname=foo") - .applyTo(this.context); + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class); EurekaInstanceConfigBean instance = this.context.getBean(EurekaInstanceConfigBean.class); assertThat(instance.getStatusPageUrl().contains("foo")).as("Wrong status page: " + instance.getStatusPageUrl()) - .isTrue(); + .isTrue(); } @Test void refreshScopedBeans() { setupContext(RefreshAutoConfiguration.class); assertThat(this.context.getBeanDefinition("eurekaClient").getBeanClassName()) - .startsWith(GenericScope.class.getName() + "$LockedScopedProxyFactoryBean"); + .startsWith(GenericScope.class.getName() + "$LockedScopedProxyFactoryBean"); assertThat(this.context.getBeanDefinition("eurekaApplicationInfoManager").getBeanClassName()) - .startsWith(GenericScope.class.getName() + "$LockedScopedProxyFactoryBean"); + .startsWith(GenericScope.class.getName() + "$LockedScopedProxyFactoryBean"); } @SuppressWarnings({ "unchecked", "rawtypes" }) @Test void shouldReregisterHealthCheckHandlerAfterRefresh() throws Exception { TestPropertyValues - .of("eureka.client.healthcheck.enabled=true", "spring.cloud.config.import-check.enabled=false", - "spring.cloud.refresh.additionalPropertySourcesToRetain=test") - .applyTo(this.context); + .of("eureka.client.healthcheck.enabled=true", "spring.cloud.config.import-check.enabled=false", + "spring.cloud.refresh.additionalPropertySourcesToRetain=test") + .applyTo(this.context); setupContext(RefreshAutoConfiguration.class, AutoServiceRegistrationConfiguration.class); EurekaClient oldEurekaClient = getLazyInitEurekaClient(); @@ -597,13 +640,14 @@ void eurekaConfigNotLoadedWhenDiscoveryClientDisabled() { @Test void shouldNotHaveDiscoveryClientWhenBlockingDiscoveryDisabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, - DiscoveryClientOptionalArgsConfiguration.class, EurekaClientAutoConfiguration.class, - EurekaDiscoveryClientConfiguration.class)) - .withPropertyValues("spring.cloud.discovery.blocking.enabled=false").run(context -> { - assertThat(context).doesNotHaveBean(DiscoveryClient.class); - assertThat(context).doesNotHaveBean(DiscoveryClientHealthIndicator.class); - }); + .withConfiguration( + AutoConfigurations.of(UtilAutoConfiguration.class, DiscoveryClientOptionalArgsConfiguration.class, + EurekaClientAutoConfiguration.class, EurekaDiscoveryClientConfiguration.class)) + .withPropertyValues("spring.cloud.discovery.blocking.enabled=false") + .run(context -> { + assertThat(context).doesNotHaveBean(DiscoveryClient.class); + assertThat(context).doesNotHaveBean(DiscoveryClientHealthIndicator.class); + }); } @SuppressWarnings({ "unchecked", "rawtypes" }) @@ -641,7 +685,7 @@ private EurekaInstanceConfigBean getInstanceConfig() { private EurekaClient getLazyInitEurekaClient() throws Exception { return (EurekaClient) ((Advised) this.context.getBean("eurekaClient", EurekaClient.class)).getTargetSource() - .getTarget(); + .getTarget(); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBeanTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBeanTests.java index b1c3f2e4a1..74c1abe144 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBeanTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBeanTests.java @@ -59,7 +59,7 @@ void serviceUrl() { this.context.register(PropertyPlaceholderAutoConfiguration.class, TestConfiguration.class); this.context.refresh(); assertThat(this.context.getBean(EurekaClientConfigBean.class).getServiceUrl().toString()) - .isEqualTo("{defaultZone=https://example.com}"); + .isEqualTo("{defaultZone=https://example.com}"); assertThat(getEurekaServiceUrlsForDefaultZone()).isEqualTo("[https://example.com/]"); } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBeanTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBeanTests.java index 109d5e2f9b..2151b6a247 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBeanTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaInstanceConfigBeanTests.java @@ -169,7 +169,8 @@ void testPreferIpAddress() { setupContext(); EurekaInstanceConfigBean instance = getInstanceConfig(); assertThat(getInstanceConfig().getHostname().equals(instance.getIpAddress())) - .as("Wrong hostname: " + instance.getHostname()).isTrue(); + .as("Wrong hostname: " + instance.getHostname()) + .isTrue(); } @@ -184,12 +185,14 @@ void testDefaultVirtualHostName() { @Test void testCustomVirtualHostName() { - TestPropertyValues.of("spring.application.name:myapp", "eureka.instance.virtualHostName=myvirthost", - "eureka.instance.secureVirtualHostName=mysecurevirthost").applyTo(this.context); + TestPropertyValues + .of("spring.application.name:myapp", "eureka.instance.virtualHostName=myvirthost", + "eureka.instance.secureVirtualHostName=mysecurevirthost") + .applyTo(this.context); setupContext(); assertThat(getInstanceConfig().getVirtualHostName()).as("virtualHostName wrong").isEqualTo("myvirthost"); assertThat(getInstanceConfig().getSecureVirtualHostName()).as("secureVirtualHostName wrong") - .isEqualTo("mysecurevirthost"); + .isEqualTo("mysecurevirthost"); } @@ -198,9 +201,9 @@ void testDefaultAppName() { setupContext(); assertThat(getInstanceConfig().getAppname()).as("default app name is wrong").isEqualTo("unknown"); assertThat(getInstanceConfig().getVirtualHostName()).as("default virtual hostname is wrong") - .isEqualTo("unknown"); + .isEqualTo("unknown"); assertThat(getInstanceConfig().getSecureVirtualHostName()).as("default secure virtual hostname is wrong") - .isEqualTo("unknown"); + .isEqualTo("unknown"); } @Test diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaServiceInstanceTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaServiceInstanceTests.java index f497c41836..082a58cce8 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaServiceInstanceTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/EurekaServiceInstanceTests.java @@ -24,8 +24,11 @@ class EurekaServiceInstanceTests { @Test void getSchemeReturnsNonNull() { - InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder().setAppName("test").setHostName("myhost") - .setPort(8080).build(); + InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() + .setAppName("test") + .setHostName("myhost") + .setPort(8080) + .build(); EurekaServiceInstance instance = new EurekaServiceInstance(instanceInfo); Assertions.assertThat(instance.getScheme()).isEqualTo("http"); } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaClientConfigServerAutoConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaClientConfigServerAutoConfigurationTests.java index b663c77fcf..c1e2183c71 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaClientConfigServerAutoConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaClientConfigServerAutoConfigurationTests.java @@ -36,33 +36,35 @@ class EurekaClientConfigServerAutoConfigurationTests { @Test void offByDefault() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaClientConfigServerAutoConfiguration.class)) - .run(c -> assertThat(c.getBeanNamesForType(EurekaInstanceConfigBean.class).length).isEqualTo(0)); + .withConfiguration(AutoConfigurations.of(EurekaClientConfigServerAutoConfiguration.class)) + .run(c -> assertThat(c.getBeanNamesForType(EurekaInstanceConfigBean.class).length).isEqualTo(0)); } @Test void onWhenRequested() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaClientConfigServerAutoConfiguration.class, - UtilAutoConfiguration.class, ConfigServerProperties.class, EurekaInstanceConfigBean.class)) - .withPropertyValues("spring.cloud.config.server.prefix=/config").run(c -> { - assertThat(c.getBeanNamesForType(EurekaInstanceConfig.class).length).isEqualTo(1); - EurekaInstanceConfig instance = c.getBean(EurekaInstanceConfig.class); - assertThat(instance.getMetadataMap().get("configPath")).isEqualTo("/config"); - }); + .withConfiguration(AutoConfigurations.of(EurekaClientConfigServerAutoConfiguration.class, + UtilAutoConfiguration.class, ConfigServerProperties.class, EurekaInstanceConfigBean.class)) + .withPropertyValues("spring.cloud.config.server.prefix=/config") + .run(c -> { + assertThat(c.getBeanNamesForType(EurekaInstanceConfig.class).length).isEqualTo(1); + EurekaInstanceConfig instance = c.getBean(EurekaInstanceConfig.class); + assertThat(instance.getMetadataMap().get("configPath")).isEqualTo("/config"); + }); } @Test void notOverridingMetamapSettings() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaClientConfigServerAutoConfiguration.class, - UtilAutoConfiguration.class, ConfigServerProperties.class, EurekaInstanceConfigBean.class)) - .withPropertyValues("spring.cloud.config.server.prefix=/config") - .withPropertyValues("eureka.instance.metadataMap.configPath=/differentpath").run(c -> { - assertThat(c.getBeanNamesForType(EurekaInstanceConfig.class).length).isEqualTo(1); - EurekaInstanceConfig instance = c.getBean(EurekaInstanceConfig.class); - assertThat(instance.getMetadataMap().get("configPath")).isEqualTo("/differentpath"); - }); + .withConfiguration(AutoConfigurations.of(EurekaClientConfigServerAutoConfiguration.class, + UtilAutoConfiguration.class, ConfigServerProperties.class, EurekaInstanceConfigBean.class)) + .withPropertyValues("spring.cloud.config.server.prefix=/config") + .withPropertyValues("eureka.instance.metadataMap.configPath=/differentpath") + .run(c -> { + assertThat(c.getBeanNamesForType(EurekaInstanceConfig.class).length).isEqualTo(1); + EurekaInstanceConfig instance = c.getBean(EurekaInstanceConfig.class); + assertThat(instance.getMetadataMap().get("configPath")).isEqualTo("/differentpath"); + }); } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationTests.java index cc17a6a23a..1c6a2cf9e3 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationTests.java @@ -63,96 +63,100 @@ public class EurekaConfigServerBootstrapConfigurationTests { @Test public void offByDefault() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .run(this::assertEurekaBeansNotPresent); } @Test public void properBeansCreatedWhenDiscoveryEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=true").run(this::assertEurekaBeansPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=true") + .run(this::assertEurekaBeansPresent); } @Test public void beansNotCreatedWhenDiscoveryNotEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=false") - .run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=false") + .run(this::assertEurekaBeansNotPresent); } @Test public void beansNotCreatedWhenDiscoveryDisabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.disabled").run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.disabled") + .run(this::assertEurekaBeansNotPresent); } @Test public void beansNotCreatedWhenEurekaClientEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("eureka.client.enabled=true").run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("eureka.client.enabled=true") + .run(this::assertEurekaBeansNotPresent); } @Test public void beansNotCreatedWhenEurekaClientNotEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("eureka.client.enabled=false").run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("eureka.client.enabled=false") + .run(this::assertEurekaBeansNotPresent); } @Test public void beansNotCreatedWhenEurekaClientDisabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("eureka.client.disabled").run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("eureka.client.disabled") + .run(this::assertEurekaBeansNotPresent); } @Test public void properBeansCreatedWhenDiscoveryEnabled_EurekaEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true") - .run(this::assertEurekaBeansPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true") + .run(this::assertEurekaBeansPresent); } @Test public void beansNotCreatedWhenDiscoveryEnabled_EurekaNotEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=false") - .run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=false") + .run(this::assertEurekaBeansNotPresent); } @Test public void beansNotCreatedWhenDiscoveryNotEnabled_EurekaEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=false", "eureka.client.enabled=true") - .run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=false", "eureka.client.enabled=true") + .run(this::assertEurekaBeansNotPresent); } @Test public void beansNotCreatedWhenDiscoveryNotEnabled_EurekaNotEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=false", "eureka.client.enabled=false") - .run(this::assertEurekaBeansNotPresent); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=false", "eureka.client.enabled=false") + .run(this::assertEurekaBeansNotPresent); } @Test public void eurekaDnsConfigurationWorks() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true", - "eureka.instance.hostname=eurekaclient1", - "eureka.client.use-dns-for-fetching-service-urls=true", - "eureka.client.eureka-server-d-n-s-name=myeurekahost", - "eureka.client.eureka-server-u-r-l-context=eureka", "eureka.client.eureka-server-port=30000") - .run(context -> assertThat(output) - .contains("Cannot get cnames bound to the region:txt.us-east-1.myeurekahost")); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true", + "eureka.instance.hostname=eurekaclient1", "eureka.client.use-dns-for-fetching-service-urls=true", + "eureka.client.eureka-server-d-n-s-name=myeurekahost", + "eureka.client.eureka-server-u-r-l-context=eureka", "eureka.client.eureka-server-port=30000") + .run(context -> assertThat(output) + .contains("Cannot get cnames bound to the region:txt.us-east-1.myeurekahost")); } @Test @@ -160,40 +164,43 @@ public void eurekaConfigServerInstanceProviderCalled() { // FIXME: why do I need to do this? (fails in maven build without it. TomcatURLStreamHandlerFactory.disable(); new SpringApplicationBuilder(TestConfigDiscoveryConfiguration.class) - .properties("spring.config.use-legacy-processing=true", "spring.cloud.config.discovery.enabled=true", - "eureka.client.enabled=true", - "spring.main.sources=" + TestConfigDiscoveryBootstrapConfiguration.class.getName(), - "logging.level.org.springframework.cloud.netflix.eureka.config=DEBUG") - .run().close(); + .properties("spring.config.use-legacy-processing=true", "spring.cloud.config.discovery.enabled=true", + "eureka.client.enabled=true", + "spring.main.sources=" + TestConfigDiscoveryBootstrapConfiguration.class.getName(), + "logging.level.org.springframework.cloud.netflix.eureka.config=DEBUG") + .run() + .close(); assertThat(output).contains("eurekaConfigServerInstanceProvider finding instances for configserver") - .contains("eurekaConfigServerInstanceProvider found 1 instance(s) for configserver"); + .contains("eurekaConfigServerInstanceProvider found 1 instance(s) for configserver"); } @Test public void eurekaConfigServerInstanceProviderCalledWithRemoteRegions() { TomcatURLStreamHandlerFactory.disable(); new SpringApplicationBuilder(TestConfigDiscoveryConfiguration.class) - .properties("spring.config.use-legacy-processing=true", "spring.cloud.config.discovery.enabled=true", - "eureka.client.enabled=true", "eureka.client.fetchRemoteRegionsRegistry=us-east-1,us-east-2", - "spring.main.sources=" + TestConfigDiscoveryBootstrapConfiguration.class.getName(), - "logging.level.org.springframework.cloud.netflix.eureka.config=DEBUG") - .run().close(); + .properties("spring.config.use-legacy-processing=true", "spring.cloud.config.discovery.enabled=true", + "eureka.client.enabled=true", "eureka.client.fetchRemoteRegionsRegistry=us-east-1,us-east-2", + "spring.main.sources=" + TestConfigDiscoveryBootstrapConfiguration.class.getName(), + "logging.level.org.springframework.cloud.netflix.eureka.config=DEBUG") + .run() + .close(); assertThat(output).contains("eurekaConfigServerInstanceProvider finding instances for configserver") - .contains("eurekaConfigServerInstanceProvider found 1 instance(s) for configserver"); + .contains("eurekaConfigServerInstanceProvider found 1 instance(s) for configserver"); } @Test public void eurekaConfigServerInstanceProviderCalledWithVipAddress() { TomcatURLStreamHandlerFactory.disable(); new SpringApplicationBuilder(TestConfigDiscoveryConfiguration.class) - .properties("spring.config.use-legacy-processing=true", "spring.cloud.config.discovery.enabled=true", - "eureka.client.enabled=true", "eureka.client.registryRefreshSingleVipAddress=vip1", - "eureka.client.fetchRemoteRegionsRegistry=us-east-1,us-east-2", - "spring.main.sources=" + TestConfigDiscoveryBootstrapConfiguration.class.getName(), - "logging.level.org.springframework.cloud.netflix.eureka.config=DEBUG") - .run().close(); + .properties("spring.config.use-legacy-processing=true", "spring.cloud.config.discovery.enabled=true", + "eureka.client.enabled=true", "eureka.client.registryRefreshSingleVipAddress=vip1", + "eureka.client.fetchRemoteRegionsRegistry=us-east-1,us-east-2", + "spring.main.sources=" + TestConfigDiscoveryBootstrapConfiguration.class.getName(), + "logging.level.org.springframework.cloud.netflix.eureka.config=DEBUG") + .run() + .close(); assertThat(output).contains("eurekaConfigServerInstanceProvider finding instances for configserver") - .contains("eurekaConfigServerInstanceProvider found 1 instance(s) for configserver"); + .contains("eurekaConfigServerInstanceProvider found 1 instance(s) for configserver"); } private void assertEurekaBeansPresent(AssertableApplicationContext context) { diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientIntegrationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientIntegrationTests.java index 6de938e26f..b52e84375d 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientIntegrationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientIntegrationTests.java @@ -54,8 +54,11 @@ class EurekaConfigServerBootstrapConfigurationWebClientIntegrationTests { @Test void webClientRespectsCodecProperties() { WebClient webClient = eurekaHttpClient.getWebClient(); - ResponseEntity response = webClient.get().uri("http://localhost:" + port).retrieve() - .toEntity(String.class).block(); + ResponseEntity response = webClient.get() + .uri("http://localhost:" + port) + .retrieve() + .toEntity(String.class) + .block(); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); @@ -75,7 +78,8 @@ public String hello() { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { return http.authorizeHttpRequests(auth -> auth.anyRequest().permitAll()) - .csrf(AbstractHttpConfigurer::disable).build(); + .csrf(AbstractHttpConfigurer::disable) + .build(); } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientTests.java index 735853d28d..a34b3e8f67 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapConfigurationWebClientTests.java @@ -35,27 +35,27 @@ class EurekaConfigServerBootstrapConfigurationWebClientTests { @Test void properBeansCreatedWhenEnabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true", - "eureka.client.webclient.enabled=true") - .run(context -> { - assertThat(context).hasSingleBean(EurekaClientConfigBean.class); - assertThat(context).hasSingleBean(WebClientEurekaHttpClient.class); - assertThat(context).hasSingleBean(ConfigServerInstanceProvider.Function.class); - }); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true", + "eureka.client.webclient.enabled=true") + .run(context -> { + assertThat(context).hasSingleBean(EurekaClientConfigBean.class); + assertThat(context).hasSingleBean(WebClientEurekaHttpClient.class); + assertThat(context).hasSingleBean(ConfigServerInstanceProvider.Function.class); + }); } @Test void properBeansCreatedWhenEnabledWebClientDisabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) - .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true") - .run(context -> { - assertThat(context).hasSingleBean(EurekaClientConfigBean.class); - assertThat(context).doesNotHaveBean(WebClientEurekaHttpClient.class); - assertThat(context).hasSingleBean(RestTemplateEurekaHttpClient.class); - assertThat(context).hasSingleBean(ConfigServerInstanceProvider.Function.class); - }); + .withConfiguration(AutoConfigurations.of(EurekaConfigServerBootstrapConfiguration.class)) + .withPropertyValues("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=true") + .run(context -> { + assertThat(context).hasSingleBean(EurekaClientConfigBean.class); + assertThat(context).doesNotHaveBean(WebClientEurekaHttpClient.class); + assertThat(context).hasSingleBean(RestTemplateEurekaHttpClient.class); + assertThat(context).hasSingleBean(ConfigServerInstanceProvider.Function.class); + }); } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperIntegrationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperIntegrationTests.java index ad08ab30c6..355299a499 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperIntegrationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperIntegrationTests.java @@ -62,7 +62,7 @@ public class EurekaConfigServerBootstrapperIntegrationTests { public static final DockerImageName MOCKSERVER_IMAGE = DockerImageName.parse("mockserver/mockserver") - .withTag("mockserver-" + MockServerClient.class.getPackage().getImplementationVersion()); + .withTag("mockserver-" + MockServerClient.class.getPackage().getImplementationVersion()); @Container static MockServerContainer mockServer = new MockServerContainer(MOCKSERVER_IMAGE); @@ -93,21 +93,25 @@ public void contextLoads() throws JsonProcessingException { try (MockServerClient mockServerClient = new MockServerClient(mockServer.getHost(), mockServer.getMappedPort(MockServerContainer.PORT))) { mockServerClient.when(request().withPath("/application/default")) - .respond(response().withBody(objectMapper.writeValueAsString(environment)) - .withHeader("content-type", "application/json")); + .respond(response().withBody(objectMapper.writeValueAsString(environment)) + .withHeader("content-type", "application/json")); InstanceInfo configServerInstanceInfo = InstanceInfo.Builder.newBuilder() - .setVIPAddress("eureka-configserver").setInstanceId("eureka-configserver") - .setAppName("eureka-configserver").setStatus(InstanceInfo.InstanceStatus.UP) - .enablePort(InstanceInfo.PortType.UNSECURE, true).setHostName("localhost") - .setPort(mockServer.getMappedPort(MockServerContainer.PORT)).build(); + .setVIPAddress("eureka-configserver") + .setInstanceId("eureka-configserver") + .setAppName("eureka-configserver") + .setStatus(InstanceInfo.InstanceStatus.UP) + .enablePort(InstanceInfo.PortType.UNSECURE, true) + .setHostName("localhost") + .setPort(mockServer.getMappedPort(MockServerContainer.PORT)) + .build(); Application configServer = new Application("eureka-configserver", Collections.singletonList(configServerInstanceInfo)); EurekaApplications eurekaApplications = new EurekaApplications("hashcode", 0L, Collections.singletonList(configServer)); mockServerClient.when(request().withPath("/apps/")) - .respond(response() - .withBody("{\"applications\":" + objectMapper.writeValueAsString(eurekaApplications) + "}") - .withHeader("content-type", "application/json")); + .respond(response() + .withBody("{\"applications\":" + objectMapper.writeValueAsString(eurekaApplications) + "}") + .withHeader("content-type", "application/json")); this.context = setup().run(); assertThat(this.context.getEnvironment().getProperty("hello")).isEqualTo("world"); } @@ -129,7 +133,7 @@ public JsonSerializer modifySerializer(SerializationConfig config, BeanDescri SpringApplicationBuilder setup(String... env) { SpringApplicationBuilder builder = new SpringApplicationBuilder(TestConfig.class) - .properties(addDefaultEnv(env)); + .properties(addDefaultEnv(env)); return builder; } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperTests.java index 9f173aa517..683a479353 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaConfigServerBootstrapperTests.java @@ -37,59 +37,67 @@ class EurekaConfigServerBootstrapperTests { @Test void notEnabledReturnsEmptyList() { new SpringApplicationBuilder(TestConfig.class) - .properties("spring.cloud.service-registry.auto-registration.enabled=false") - .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { - ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() - .get(ConfigServerInstanceProvider.Function.class); - assertThat(providerFn.apply("id")).as("Should return empty list").isEmpty(); - })).run().close(); + .properties("spring.cloud.service-registry.auto-registration.enabled=false") + .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { + ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() + .get(ConfigServerInstanceProvider.Function.class); + assertThat(providerFn.apply("id")).as("Should return empty list").isEmpty(); + })) + .run() + .close(); } @Test public void discoveryClientNotEnabledProvidesEmptyList() { new SpringApplicationBuilder(TestConfig.class) - .properties("spring.cloud.config.discovery.enabled=true", "spring.cloud.discovery.enabled=false", - "spring.cloud.service-registry.auto-registration.enabled=false") - .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { - ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() - .get(ConfigServerInstanceProvider.Function.class); - Binder binder = event.getBootstrapContext().get(Binder.class); - BindHandler bindHandler = event.getBootstrapContext().get(BindHandler.class); - assertThat(providerFn.apply("id", binder, bindHandler, mock(Log.class))) - .as("Should return empty list").isEmpty(); - })).run().close(); + .properties("spring.cloud.config.discovery.enabled=true", "spring.cloud.discovery.enabled=false", + "spring.cloud.service-registry.auto-registration.enabled=false") + .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { + ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() + .get(ConfigServerInstanceProvider.Function.class); + Binder binder = event.getBootstrapContext().get(Binder.class); + BindHandler bindHandler = event.getBootstrapContext().get(BindHandler.class); + assertThat(providerFn.apply("id", binder, bindHandler, mock(Log.class))).as("Should return empty list") + .isEmpty(); + })) + .run() + .close(); } @Test public void eurekaClientNotEnabledProvidesEmptyList() { new SpringApplicationBuilder(TestConfig.class) - .properties("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=false", - "spring.cloud.service-registry.auto-registration.enabled=false") - .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { - ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() - .get(ConfigServerInstanceProvider.Function.class); - Binder binder = event.getBootstrapContext().get(Binder.class); - BindHandler bindHandler = event.getBootstrapContext().get(BindHandler.class); - assertThat(providerFn.apply("id", binder, bindHandler, mock(Log.class))) - .as("Should return empty list").isEmpty(); - })).run().close(); + .properties("spring.cloud.config.discovery.enabled=true", "eureka.client.enabled=false", + "spring.cloud.service-registry.auto-registration.enabled=false") + .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { + ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() + .get(ConfigServerInstanceProvider.Function.class); + Binder binder = event.getBootstrapContext().get(Binder.class); + BindHandler bindHandler = event.getBootstrapContext().get(BindHandler.class); + assertThat(providerFn.apply("id", binder, bindHandler, mock(Log.class))).as("Should return empty list") + .isEmpty(); + })) + .run() + .close(); } @Test void enabledAddsInstanceProviderFn() { new SpringApplicationBuilder(TestConfig.class) - .properties("spring.config.import: classpath:bootstrapper.yaml", - ConfigClientProperties.PREFIX + ".enabled=true") - .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { - ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() - .get(ConfigServerInstanceProvider.Function.class); - Binder binder = event.getBootstrapContext().get(Binder.class); - BindHandler bindHandler = event.getBootstrapContext().get(BindHandler.class); - assertThatThrownBy(() -> providerFn.apply("id", binder, bindHandler, mock(Log.class))) - .isInstanceOf(ResourceAccessException.class) - .hasMessageContaining("I/O error on GET request for \"http://localhost:8761/eureka/apps/\"") - .as("Should have tried to connect to Eureka to fetch instances."); - })).run().close(); + .properties("spring.config.import: classpath:bootstrapper.yaml", + ConfigClientProperties.PREFIX + ".enabled=true") + .addBootstrapRegistryInitializer(registry -> registry.addCloseListener(event -> { + ConfigServerInstanceProvider.Function providerFn = event.getBootstrapContext() + .get(ConfigServerInstanceProvider.Function.class); + Binder binder = event.getBootstrapContext().get(Binder.class); + BindHandler bindHandler = event.getBootstrapContext().get(BindHandler.class); + assertThatThrownBy(() -> providerFn.apply("id", binder, bindHandler, mock(Log.class))) + .isInstanceOf(ResourceAccessException.class) + .hasMessageContaining("I/O error on GET request for \"http://localhost:8761/eureka/apps/\"") + .as("Should have tried to connect to Eureka to fetch instances."); + })) + .run() + .close(); } @SpringBootConfiguration diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationNoWebFluxTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationNoWebFluxTests.java index 705d13511a..5ca20754ef 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationNoWebFluxTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationNoWebFluxTests.java @@ -46,7 +46,8 @@ public void contextFailsWithoutWebClient() { try { TomcatURLStreamHandlerFactory.disable(); ctx = new SpringApplicationBuilder(EurekaSampleApplication.class) - .properties("eureka.client.webclient.enabled=true").run(); + .properties("eureka.client.webclient.enabled=true") + .run(); fail("exception not thrown"); } catch (Exception e) { diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationTests.java index fd710ef1d0..93aa5e8fb2 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationTests.java @@ -41,19 +41,21 @@ public class EurekaHttpClientsOptionalArgsConfigurationTests { @Test public void contextLoadsWithRestTemplate() { new WebApplicationContextRunner().withUserConfiguration(EurekaSampleApplication.class) - .withPropertyValues("eureka.client.webclient.enabled=false").run(context -> { - assertThat(context).hasSingleBean(RestTemplateDiscoveryClientOptionalArgs.class); - assertThat(context).doesNotHaveBean(WebClientDiscoveryClientOptionalArgs.class); - }); + .withPropertyValues("eureka.client.webclient.enabled=false") + .run(context -> { + assertThat(context).hasSingleBean(RestTemplateDiscoveryClientOptionalArgs.class); + assertThat(context).doesNotHaveBean(WebClientDiscoveryClientOptionalArgs.class); + }); } @Test public void contextLoadsWithWebClient() { new WebApplicationContextRunner().withUserConfiguration(EurekaSampleApplication.class) - .withPropertyValues("eureka.client.webclient.enabled=true").run(context -> { - assertThat(context).doesNotHaveBean(RestTemplateDiscoveryClientOptionalArgs.class); - assertThat(context).hasSingleBean(WebClientDiscoveryClientOptionalArgs.class); - }); + .withPropertyValues("eureka.client.webclient.enabled=true") + .run(context -> { + assertThat(context).doesNotHaveBean(RestTemplateDiscoveryClientOptionalArgs.class); + assertThat(context).hasSingleBean(WebClientDiscoveryClientOptionalArgs.class); + }); } @Test diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/JerseyClientOptionalArgsConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/JerseyClientOptionalArgsConfigurationTests.java index 1b0b506d8b..1c502ddea2 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/JerseyClientOptionalArgsConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/JerseyClientOptionalArgsConfigurationTests.java @@ -36,13 +36,17 @@ public class JerseyClientOptionalArgsConfigurationTests { @Test void shouldCreateRestTemplateDiscoveryClientOptionalArgsWhenJerseyClientDisabled() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(DiscoveryClientOptionalArgsConfiguration.class)) - .withPropertyValues("eureka.client.jersey.enabled=false").run(context -> { - assertThat(context).hasSingleBean(AbstractDiscoveryClientOptionalArgs.class); - assertThat(context.getBeansOfType(AbstractDiscoveryClientOptionalArgs.class).values().stream() - .findFirst().get()).isInstanceOf(RestTemplateDiscoveryClientOptionalArgs.class); - assertThat(context).hasSingleBean(RestTemplateDiscoveryClientOptionalArgs.class); - }); + .withConfiguration(AutoConfigurations.of(DiscoveryClientOptionalArgsConfiguration.class)) + .withPropertyValues("eureka.client.jersey.enabled=false") + .run(context -> { + assertThat(context).hasSingleBean(AbstractDiscoveryClientOptionalArgs.class); + assertThat(context.getBeansOfType(AbstractDiscoveryClientOptionalArgs.class) + .values() + .stream() + .findFirst() + .get()).isInstanceOf(RestTemplateDiscoveryClientOptionalArgs.class); + assertThat(context).hasSingleBean(RestTemplateDiscoveryClientOptionalArgs.class); + }); } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java index 34e81a556a..060a4f4435 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java @@ -51,7 +51,7 @@ void shouldRegisterService() { System.setProperty("status", "UP"); InstanceInfo.InstanceStatus status = this.discoveryClient.getHealthCheckHandler() - .getStatus(InstanceInfo.InstanceStatus.UNKNOWN); + .getStatus(InstanceInfo.InstanceStatus.UNKNOWN); assertThat(status).isNotNull(); assertThat(status).isEqualTo(InstanceInfo.InstanceStatus.UP); @@ -62,7 +62,7 @@ void shouldMapOutOfServiceToDown() { System.setProperty("status", "OUT_OF_SERVICE"); InstanceInfo.InstanceStatus status = this.discoveryClient.getHealthCheckHandler() - .getStatus(InstanceInfo.InstanceStatus.UNKNOWN); + .getStatus(InstanceInfo.InstanceStatus.UNKNOWN); assertThat(status).isNotNull(); assertThat(status).isEqualTo(InstanceInfo.InstanceStatus.DOWN); diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/AbstractEurekaHttpClientTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/AbstractEurekaHttpClientTests.java index 27463880d7..804790c995 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/AbstractEurekaHttpClientTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/AbstractEurekaHttpClientTests.java @@ -61,13 +61,13 @@ void testSendHeartBeat(String instanceId) { @Test void testSendHeartBeatFourOFour() { assertThat(eurekaHttpClient.sendHeartBeat("fourOFour", "test", info, null).getStatusCode()) - .isEqualTo(HttpStatus.NOT_FOUND.value()); + .isEqualTo(HttpStatus.NOT_FOUND.value()); } @Test void testSendHeartBeatFourOFourWithBody() { assertThat(eurekaHttpClient.sendHeartBeat("fourOFourWithBody", "test", info, null).getStatusCode()) - .isEqualTo(HttpStatus.NOT_FOUND.value()); + .isEqualTo(HttpStatus.NOT_FOUND.value()); } @ParameterizedTest @@ -75,13 +75,13 @@ void testSendHeartBeatFourOFourWithBody() { void testStatusUpdate(String instanceId) { assertThat( eurekaHttpClient.statusUpdate("test", instanceId, InstanceInfo.InstanceStatus.UP, info).getStatusCode()) - .isEqualTo(HttpStatus.OK.value()); + .isEqualTo(HttpStatus.OK.value()); } @Test void testDeleteStatusOverride() { assertThat(eurekaHttpClient.deleteStatusOverride("test", "test", info).getStatusCode()) - .isEqualTo(HttpStatus.OK.value()); + .isEqualTo(HttpStatus.OK.value()); } @Test diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/EurekaServerMockApplication.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/EurekaServerMockApplication.java index 5534f62788..1baa8d31d3 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/EurekaServerMockApplication.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/EurekaServerMockApplication.java @@ -65,26 +65,46 @@ @SpringBootApplication public class EurekaServerMockApplication { - private static final InstanceInfo INFO = InstanceInfo.Builder.newBuilder().setInstanceId("app1instance1") - .setAppName("app1").setAppNameForDeser("app1fordeser").setAppGroupName("app1group") - .setAppGroupNameForDeser("app1group1fordeser").setHostName("app1host1") - .setStatus(InstanceInfo.InstanceStatus.UP).setOverriddenStatus(InstanceInfo.InstanceStatus.DOWN) - .setIPAddr("127.0.0.1").setSID("app1sid").setPort(8080).setSecurePort(4443) - .enablePort(InstanceInfo.PortType.UNSECURE, true).setHomePageUrl("/", "http://localhost/") - .setHomePageUrlForDeser("http://localhost/").setStatusPageUrl("/status", "http://localhost/info") - .setStatusPageUrlForDeser("http://localhost/status") - .setHealthCheckUrls("/ping", "http://localhost/ping", null) - .setHealthCheckUrlsForDeser("http://localhost/ping", null).setVIPAddress("localhost:8080") - .setVIPAddressDeser("localhost:8080").setSecureVIPAddress("localhost:4443") - .setSecureVIPAddressDeser("localhost:4443") - .setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn)) - .setLeaseInfo(LeaseInfo.Builder.newBuilder().setDurationInSecs(30).setRenewalIntervalInSecs(30) - .setEvictionTimestamp(System.currentTimeMillis() + 30000) - .setRenewalTimestamp(System.currentTimeMillis() - 1000) - .setRegistrationTimestamp(System.currentTimeMillis() - 2000).build()) - .add("metadatakey1", "metadatavalue1").setASGName("asg1").setIsCoordinatingDiscoveryServer(false) - .setLastUpdatedTimestamp(System.currentTimeMillis()).setLastDirtyTimestamp(System.currentTimeMillis()) - .setActionType(InstanceInfo.ActionType.ADDED).setNamespace("namespace1").build(); + private static final InstanceInfo INFO = InstanceInfo.Builder.newBuilder() + .setInstanceId("app1instance1") + .setAppName("app1") + .setAppNameForDeser("app1fordeser") + .setAppGroupName("app1group") + .setAppGroupNameForDeser("app1group1fordeser") + .setHostName("app1host1") + .setStatus(InstanceInfo.InstanceStatus.UP) + .setOverriddenStatus(InstanceInfo.InstanceStatus.DOWN) + .setIPAddr("127.0.0.1") + .setSID("app1sid") + .setPort(8080) + .setSecurePort(4443) + .enablePort(InstanceInfo.PortType.UNSECURE, true) + .setHomePageUrl("/", "http://localhost/") + .setHomePageUrlForDeser("http://localhost/") + .setStatusPageUrl("/status", "http://localhost/info") + .setStatusPageUrlForDeser("http://localhost/status") + .setHealthCheckUrls("/ping", "http://localhost/ping", null) + .setHealthCheckUrlsForDeser("http://localhost/ping", null) + .setVIPAddress("localhost:8080") + .setVIPAddressDeser("localhost:8080") + .setSecureVIPAddress("localhost:4443") + .setSecureVIPAddressDeser("localhost:4443") + .setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn)) + .setLeaseInfo(LeaseInfo.Builder.newBuilder() + .setDurationInSecs(30) + .setRenewalIntervalInSecs(30) + .setEvictionTimestamp(System.currentTimeMillis() + 30000) + .setRenewalTimestamp(System.currentTimeMillis() - 1000) + .setRegistrationTimestamp(System.currentTimeMillis() - 2000) + .build()) + .add("metadatakey1", "metadatavalue1") + .setASGName("asg1") + .setIsCoordinatingDiscoveryServer(false) + .setLastUpdatedTimestamp(System.currentTimeMillis()) + .setLastDirtyTimestamp(System.currentTimeMillis()) + .setActionType(InstanceInfo.ActionType.ADDED) + .setNamespace("namespace1") + .build(); /** * Simulates Eureka Server own's serialization. @@ -166,8 +186,11 @@ protected static class TestSecurityConfiguration { @Bean public InMemoryUserDetailsManager userDetailsService() { - UserDetails user = User.withDefaultPasswordEncoder().username("test").password("test").roles("USER") - .build(); + UserDetails user = User.withDefaultPasswordEncoder() + .username("test") + .password("test") + .roles("USER") + .build(); return new InMemoryUserDetailsManager(user); } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java index 8c6f32b820..79e83c1250 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/RestTemplateEurekaHttpClientTests.java @@ -78,7 +78,7 @@ void basicAuth() { RestTemplate restTemplate = restTemplateEurekaHttpClient.getRestTemplate(); List interceptors = restTemplate.getInterceptors(); boolean hasBasicAuth = interceptors.stream() - .anyMatch(interceptor -> interceptor instanceof BasicAuthenticationInterceptor); + .anyMatch(interceptor -> interceptor instanceof BasicAuthenticationInterceptor); assertThat(hasBasicAuth).as("Basic Auth not configured").isTrue(); } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClientTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClientTests.java index 3dd7030cfe..49df864e6a 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClientTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClientTests.java @@ -48,7 +48,7 @@ class WebClientEurekaHttpClientTests extends AbstractEurekaHttpClientTests { @BeforeEach void setup() { eurekaHttpClient = new WebClientTransportClientFactory(WebClient::builder) - .newClient(new DefaultEndpoint(serviceUrl)); + .newClient(new DefaultEndpoint(serviceUrl)); EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(inetUtils); diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactoryTest.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactoryTest.java index 469d83911d..6a757a3f56 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactoryTest.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientTransportClientFactoryTest.java @@ -86,7 +86,7 @@ void testUserInfoWithEncodedCharacters() { String expectedUrl = "http://localhost:8761"; WebClientEurekaHttpClient client = (WebClientEurekaHttpClient) transportClientFatory - .newClient(new DefaultEndpoint("http://test:MyPassword%40@localhost:8761")); + .newClient(new DefaultEndpoint("http://test:MyPassword%40@localhost:8761")); client.getWebClient().get().retrieve().bodyToMono(Void.class).block(Duration.ofSeconds(10)); diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java index 1b6bf181ab..c745e91767 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/loadbalancer/EurekaLoadBalancerClientConfigurationTests.java @@ -76,11 +76,12 @@ void shouldResolveApproximateZoneFromHost() { @Test void disabledViaProperty() { new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(LoadBalancerEurekaAutoConfiguration.class)) - .withPropertyValues("eureka.client.enabled=false").run(context -> { - assertThat(context).doesNotHaveBean(EurekaLoadBalancerProperties.class); - assertThat(context).doesNotHaveBean(LoadBalancerZoneConfig.class); - }); + .withConfiguration(AutoConfigurations.of(LoadBalancerEurekaAutoConfiguration.class)) + .withPropertyValues("eureka.client.enabled=false") + .run(context -> { + assertThat(context).doesNotHaveBean(EurekaLoadBalancerProperties.class); + assertThat(context).doesNotHaveBean(LoadBalancerZoneConfig.class); + }); } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClientConfigurationTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClientConfigurationTests.java index 2a80deab8b..e6aa48b25d 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClientConfigurationTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/reactive/EurekaReactiveDiscoveryClientConfigurationTests.java @@ -36,9 +36,9 @@ class EurekaReactiveDiscoveryClientConfigurationTests { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, - ReactiveCommonsClientAutoConfiguration.class, EurekaClientAutoConfiguration.class, - DiscoveryClientOptionalArgsConfiguration.class, EurekaReactiveDiscoveryClientConfiguration.class)); + .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, + ReactiveCommonsClientAutoConfiguration.class, EurekaClientAutoConfiguration.class, + DiscoveryClientOptionalArgsConfiguration.class, EurekaReactiveDiscoveryClientConfiguration.class)); @Test void shouldWorkWithDefaults() { diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java index 2d64cd5209..fdaf9143a9 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java @@ -67,9 +67,11 @@ void eurekaClientNotShutdownInDeregister() { when(applicationInfoManager.getInfo()).thenReturn(mock(InstanceInfo.class)); EurekaRegistration registration = EurekaRegistration - .builder(new EurekaInstanceConfigBean(new InetUtils(new InetUtilsProperties()))).with(eurekaClient) - .with(applicationInfoManager).with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) - .build(); + .builder(new EurekaInstanceConfigBean(new InetUtils(new InetUtilsProperties()))) + .with(eurekaClient) + .with(applicationInfoManager) + .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) + .build(); registry.deregister(registration); @@ -85,11 +87,18 @@ void eurekaClientGetStatus() { config.setAppname("myapp"); config.setInstanceId("1234"); - InstanceInfo local = InstanceInfo.Builder.newBuilder().setAppName("myapp").setInstanceId("1234").setStatus(DOWN) - .build(); + InstanceInfo local = InstanceInfo.Builder.newBuilder() + .setAppName("myapp") + .setInstanceId("1234") + .setStatus(DOWN) + .build(); - InstanceInfo remote = InstanceInfo.Builder.newBuilder().setAppName("myapp").setInstanceId("1234") - .setStatus(DOWN).setOverriddenStatus(OUT_OF_SERVICE).build(); + InstanceInfo remote = InstanceInfo.Builder.newBuilder() + .setAppName("myapp") + .setInstanceId("1234") + .setStatus(DOWN) + .setOverriddenStatus(OUT_OF_SERVICE) + .build(); CloudEurekaClient eurekaClient = mock(CloudEurekaClient.class); when(eurekaClient.getInstanceInfo(local.getAppName(), local.getId())).thenReturn(remote); @@ -97,9 +106,11 @@ void eurekaClientGetStatus() { ApplicationInfoManager applicationInfoManager = mock(ApplicationInfoManager.class); when(applicationInfoManager.getInfo()).thenReturn(local); - EurekaRegistration registration = EurekaRegistration.builder(config).with(eurekaClient) - .with(applicationInfoManager).with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) - .build(); + EurekaRegistration registration = EurekaRegistration.builder(config) + .with(eurekaClient) + .with(applicationInfoManager) + .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) + .build(); Object status = registry.getStatus(registration); @@ -109,8 +120,9 @@ void eurekaClientGetStatus() { Map map = (Map) status; - assertThat(map).hasSize(2).containsEntry("status", DOWN.toString()).containsEntry("overriddenStatus", - OUT_OF_SERVICE.toString()); + assertThat(map).hasSize(2) + .containsEntry("status", DOWN.toString()) + .containsEntry("overriddenStatus", OUT_OF_SERVICE.toString()); } @SuppressWarnings("unchecked") @@ -127,9 +139,11 @@ void eurekaClientGetStatusNoInstance() { ApplicationInfoManager applicationInfoManager = mock(ApplicationInfoManager.class); when(applicationInfoManager.getInfo()).thenReturn(mock(InstanceInfo.class)); - EurekaRegistration registration = EurekaRegistration.builder(config).with(eurekaClient) - .with(applicationInfoManager).with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) - .build(); + EurekaRegistration registration = EurekaRegistration.builder(config) + .with(eurekaClient) + .with(applicationInfoManager) + .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) + .build(); Object status = registry.getStatus(registration); @@ -160,9 +174,12 @@ void eurekaClientInitializesClientAsynchronously() { when(applicationInfoManager.getInfo()).thenReturn(mock(InstanceInfo.class)); EurekaRegistration registration = EurekaRegistration - .builder(new EurekaInstanceConfigBean(new InetUtils(new InetUtilsProperties()))).with(eurekaClient) - .with(applicationInfoManager).with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) - .with(new SimpleObjectProvider<>(null)).build(); + .builder(new EurekaInstanceConfigBean(new InetUtils(new InetUtilsProperties()))) + .with(eurekaClient) + .with(applicationInfoManager) + .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) + .with(new SimpleObjectProvider<>(null)) + .build(); registry.register(registration); @@ -182,9 +199,12 @@ void eurekaClientInitializesClientSynchronously() { when(applicationInfoManager.getInfo()).thenReturn(mock(InstanceInfo.class)); EurekaRegistration registration = EurekaRegistration - .builder(new EurekaInstanceConfigBean(new InetUtils(new InetUtilsProperties()))).with(eurekaClient) - .with(applicationInfoManager).with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) - .with(new SimpleObjectProvider<>(null)).build(); + .builder(new EurekaInstanceConfigBean(new InetUtils(new InetUtilsProperties()))) + .with(eurekaClient) + .with(applicationInfoManager) + .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) + .with(new SimpleObjectProvider<>(null)) + .build(); registry.register(registration); diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java index 119b05533d..4b579615d8 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java @@ -201,7 +201,7 @@ private void populateApps(Map model) { ArrayList> instanceInfos = new ArrayList<>(); appData.put("instanceInfos", instanceInfos); for (Map.Entry>> entry : instancesByStatus - .entrySet()) { + .entrySet()) { List> value = entry.getValue(); InstanceInfo.InstanceStatus status = entry.getKey(); LinkedHashMap instanceData = new LinkedHashMap<>(); diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java index 748f85a258..dfcdb74915 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java @@ -383,8 +383,9 @@ public ResourceConfig jerseyApplication(Environment environment, ResourceLoader rc.register(new ContainerLifecycleListener() { @Override public void onStartup(Container container) { - ServiceLocator serviceLocator = container.getApplicationHandler().getInjectionManager() - .getInstance(ServiceLocator.class); + ServiceLocator serviceLocator = container.getApplicationHandler() + .getInjectionManager() + .getInstance(ServiceLocator.class); SpringBridge.getSpringBridge().initializeSpringBridge(serviceLocator); serviceLocator.getService(SpringIntoHK2Bridge.class).bridgeSpringBeanFactory(beanFactory); } @@ -483,17 +484,18 @@ private static Jersey3ReplicationClient createReplicationClient(EurekaServerConf String jerseyClientName = "Discovery-PeerNodeClient-" + hostname; EurekaJersey3ClientImpl.EurekaJersey3ClientBuilder clientBuilder = new EurekaJersey3ClientImpl.EurekaJersey3ClientBuilder() - .withClientName(jerseyClientName).withUserAgent("Java-EurekaClient-Replication") - .withEncoderWrapper(serverCodecs.getFullJsonCodec()) - .withDecoderWrapper(serverCodecs.getFullJsonCodec()) - .withConnectionTimeout(config.getPeerNodeConnectTimeoutMs()) - .withReadTimeout(config.getPeerNodeReadTimeoutMs()) - .withMaxConnectionsPerHost(config.getPeerNodeTotalConnectionsPerHost()) - .withMaxTotalConnections(config.getPeerNodeTotalConnections()) - .withConnectionIdleTimeout(config.getPeerNodeConnectionIdleTimeoutSeconds()); + .withClientName(jerseyClientName) + .withUserAgent("Java-EurekaClient-Replication") + .withEncoderWrapper(serverCodecs.getFullJsonCodec()) + .withDecoderWrapper(serverCodecs.getFullJsonCodec()) + .withConnectionTimeout(config.getPeerNodeConnectTimeoutMs()) + .withReadTimeout(config.getPeerNodeReadTimeoutMs()) + .withMaxConnectionsPerHost(config.getPeerNodeTotalConnectionsPerHost()) + .withMaxTotalConnections(config.getPeerNodeTotalConnections()) + .withConnectionIdleTimeout(config.getPeerNodeConnectionIdleTimeoutSeconds()); if (serviceUrl.startsWith("https://") && "true" - .equals(System.getProperty("com.netflix.eureka.shouldSSLConnectionsUseSystemSocketFactory"))) { + .equals(System.getProperty("com.netflix.eureka.shouldSSLConnectionsUseSystemSocketFactory"))) { clientBuilder.withSystemSSLConfiguration(); } jerseyClient = clientBuilder.build(); diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java index 0c27890232..4bfbaae862 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java @@ -1060,80 +1060,83 @@ public int hashCode() { @Override public String toString() { return new ToStringCreator(this).append("aSGCacheExpiryTimeoutMs", this.aSGCacheExpiryTimeoutMs) - .append("aSGQueryTimeoutMs", this.aSGQueryTimeoutMs) - .append("aSGUpdateIntervalMs", this.aSGUpdateIntervalMs).append("aWSAccessId", this.aWSAccessId) - .append("aWSSecretKey", this.aWSSecretKey).append("batchReplication", this.batchReplication) - .append("bindingStrategy", this.bindingStrategy) - .append("deltaRetentionTimerIntervalInMs", this.deltaRetentionTimerIntervalInMs) - .append("disableDelta", this.disableDelta) - .append("disableDeltaForRemoteRegions", this.disableDeltaForRemoteRegions) - .append("disableTransparentFallbackToOtherRegion", this.disableTransparentFallbackToOtherRegion) - .append("eIPBindRebindRetries", this.eIPBindRebindRetries) - .append("eIPBindingRetryIntervalMs", this.eIPBindingRetryIntervalMs) - .append("eIPBindingRetryIntervalMsWhenUnbound", this.eIPBindingRetryIntervalMsWhenUnbound) - .append("enableReplicatedRequestCompression", this.enableReplicatedRequestCompression) - .append("enableSelfPreservation", this.enableSelfPreservation) - .append("evictionIntervalTimerInMs", this.evictionIntervalTimerInMs) - .append("gZipContentFromRemoteRegion", this.gZipContentFromRemoteRegion) - .append("jsonCodecName", this.jsonCodecName) - .append("listAutoScalingGroupsRoleName", this.listAutoScalingGroupsRoleName) - .append("logIdentityHeaders", this.logIdentityHeaders) - .append("maxElementsInPeerReplicationPool", this.maxElementsInPeerReplicationPool) - .append("maxElementsInStatusReplicationPool", this.maxElementsInStatusReplicationPool) - .append("maxIdleThreadAgeInMinutesForPeerReplication", this.maxIdleThreadAgeInMinutesForPeerReplication) - .append("maxIdleThreadInMinutesAgeForStatusReplication", - this.maxIdleThreadInMinutesAgeForStatusReplication) - .append("maxThreadsForPeerReplication", this.maxThreadsForPeerReplication) - .append("maxThreadsForStatusReplication", this.maxThreadsForStatusReplication) - .append("maxTimeForReplication", this.maxTimeForReplication) - .append("minAvailableInstancesForPeerReplication", this.minAvailableInstancesForPeerReplication) - .append("minThreadsForPeerReplication", this.minThreadsForPeerReplication) - .append("minThreadsForStatusReplication", this.minThreadsForStatusReplication) - .append("numberOfReplicationRetries", this.numberOfReplicationRetries) - .append("peerEurekaNodesUpdateIntervalMs", this.peerEurekaNodesUpdateIntervalMs) - .append("peerEurekaStatusRefreshTimeIntervalMs", this.peerEurekaStatusRefreshTimeIntervalMs) - .append("peerNodeConnectTimeoutMs", this.peerNodeConnectTimeoutMs) - .append("peerNodeConnectionIdleTimeoutSeconds", this.peerNodeConnectionIdleTimeoutSeconds) - .append("peerNodeReadTimeoutMs", this.peerNodeReadTimeoutMs) - .append("peerNodeTotalConnections", this.peerNodeTotalConnections) - .append("peerNodeTotalConnectionsPerHost", this.peerNodeTotalConnectionsPerHost) - .append("primeAwsReplicaConnections", this.primeAwsReplicaConnections) - .append("propertyResolver", this.propertyResolver) - .append("rateLimiterBurstSize", this.rateLimiterBurstSize) - .append("rateLimiterEnabled", this.rateLimiterEnabled) - .append("rateLimiterFullFetchAverageRate", this.rateLimiterFullFetchAverageRate) - .append("rateLimiterPrivilegedClients", this.rateLimiterPrivilegedClients) - .append("rateLimiterRegistryFetchAverageRate", this.rateLimiterRegistryFetchAverageRate) - .append("rateLimiterThrottleStandardClients", this.rateLimiterThrottleStandardClients) - .append("registrySyncRetries", this.registrySyncRetries) - .append("registrySyncRetryWaitMs", this.registrySyncRetryWaitMs) - .append("remoteRegionAppWhitelist", this.remoteRegionAppWhitelist) - .append("remoteRegionConnectTimeoutMs", this.remoteRegionConnectTimeoutMs) - .append("remoteRegionConnectionIdleTimeoutSeconds", this.remoteRegionConnectionIdleTimeoutSeconds) - .append("remoteRegionFetchThreadPoolSize", this.remoteRegionFetchThreadPoolSize) - .append("remoteRegionReadTimeoutMs", this.remoteRegionReadTimeoutMs) - .append("remoteRegionRegistryFetchInterval", this.remoteRegionRegistryFetchInterval) - .append("remoteRegionTotalConnections", this.remoteRegionTotalConnections) - .append("remoteRegionTotalConnectionsPerHost", this.remoteRegionTotalConnectionsPerHost) - .append("remoteRegionTrustStore", this.remoteRegionTrustStore) - .append("remoteRegionTrustStorePassword", this.remoteRegionTrustStorePassword) - .append("remoteRegionUrls", this.remoteRegionUrls) - .append("remoteRegionUrlsWithName", this.remoteRegionUrlsWithName) - .append("renewalPercentThreshold", this.renewalPercentThreshold) - .append("renewalThresholdUpdateIntervalMs", this.renewalThresholdUpdateIntervalMs) - .append("responseCacheAutoExpirationInSeconds", this.responseCacheAutoExpirationInSeconds) - .append("responseCacheUpdateIntervalMs", this.responseCacheUpdateIntervalMs) - .append("retentionTimeInMSInDeltaQueue", this.retentionTimeInMSInDeltaQueue) - .append("route53BindRebindRetries", this.route53BindRebindRetries) - .append("route53BindingRetryIntervalMs", this.route53BindingRetryIntervalMs) - .append("route53DomainTTL", this.route53DomainTTL) - .append("syncWhenTimestampDiffers", this.syncWhenTimestampDiffers) - .append("useReadOnlyResponseCache", this.useReadOnlyResponseCache) - .append("waitTimeInMsWhenSyncEmpty", this.waitTimeInMsWhenSyncEmpty) - .append("xmlCodecName", this.xmlCodecName) - .append("initialCapacityOfResponseCache", this.initialCapacityOfResponseCache) - .append("expectedClientRenewalIntervalSeconds", this.expectedClientRenewalIntervalSeconds) - .append("useAwsAsgApi", this.useAwsAsgApi).append("myUrl", this.myUrl).toString(); + .append("aSGQueryTimeoutMs", this.aSGQueryTimeoutMs) + .append("aSGUpdateIntervalMs", this.aSGUpdateIntervalMs) + .append("aWSAccessId", this.aWSAccessId) + .append("aWSSecretKey", this.aWSSecretKey) + .append("batchReplication", this.batchReplication) + .append("bindingStrategy", this.bindingStrategy) + .append("deltaRetentionTimerIntervalInMs", this.deltaRetentionTimerIntervalInMs) + .append("disableDelta", this.disableDelta) + .append("disableDeltaForRemoteRegions", this.disableDeltaForRemoteRegions) + .append("disableTransparentFallbackToOtherRegion", this.disableTransparentFallbackToOtherRegion) + .append("eIPBindRebindRetries", this.eIPBindRebindRetries) + .append("eIPBindingRetryIntervalMs", this.eIPBindingRetryIntervalMs) + .append("eIPBindingRetryIntervalMsWhenUnbound", this.eIPBindingRetryIntervalMsWhenUnbound) + .append("enableReplicatedRequestCompression", this.enableReplicatedRequestCompression) + .append("enableSelfPreservation", this.enableSelfPreservation) + .append("evictionIntervalTimerInMs", this.evictionIntervalTimerInMs) + .append("gZipContentFromRemoteRegion", this.gZipContentFromRemoteRegion) + .append("jsonCodecName", this.jsonCodecName) + .append("listAutoScalingGroupsRoleName", this.listAutoScalingGroupsRoleName) + .append("logIdentityHeaders", this.logIdentityHeaders) + .append("maxElementsInPeerReplicationPool", this.maxElementsInPeerReplicationPool) + .append("maxElementsInStatusReplicationPool", this.maxElementsInStatusReplicationPool) + .append("maxIdleThreadAgeInMinutesForPeerReplication", this.maxIdleThreadAgeInMinutesForPeerReplication) + .append("maxIdleThreadInMinutesAgeForStatusReplication", this.maxIdleThreadInMinutesAgeForStatusReplication) + .append("maxThreadsForPeerReplication", this.maxThreadsForPeerReplication) + .append("maxThreadsForStatusReplication", this.maxThreadsForStatusReplication) + .append("maxTimeForReplication", this.maxTimeForReplication) + .append("minAvailableInstancesForPeerReplication", this.minAvailableInstancesForPeerReplication) + .append("minThreadsForPeerReplication", this.minThreadsForPeerReplication) + .append("minThreadsForStatusReplication", this.minThreadsForStatusReplication) + .append("numberOfReplicationRetries", this.numberOfReplicationRetries) + .append("peerEurekaNodesUpdateIntervalMs", this.peerEurekaNodesUpdateIntervalMs) + .append("peerEurekaStatusRefreshTimeIntervalMs", this.peerEurekaStatusRefreshTimeIntervalMs) + .append("peerNodeConnectTimeoutMs", this.peerNodeConnectTimeoutMs) + .append("peerNodeConnectionIdleTimeoutSeconds", this.peerNodeConnectionIdleTimeoutSeconds) + .append("peerNodeReadTimeoutMs", this.peerNodeReadTimeoutMs) + .append("peerNodeTotalConnections", this.peerNodeTotalConnections) + .append("peerNodeTotalConnectionsPerHost", this.peerNodeTotalConnectionsPerHost) + .append("primeAwsReplicaConnections", this.primeAwsReplicaConnections) + .append("propertyResolver", this.propertyResolver) + .append("rateLimiterBurstSize", this.rateLimiterBurstSize) + .append("rateLimiterEnabled", this.rateLimiterEnabled) + .append("rateLimiterFullFetchAverageRate", this.rateLimiterFullFetchAverageRate) + .append("rateLimiterPrivilegedClients", this.rateLimiterPrivilegedClients) + .append("rateLimiterRegistryFetchAverageRate", this.rateLimiterRegistryFetchAverageRate) + .append("rateLimiterThrottleStandardClients", this.rateLimiterThrottleStandardClients) + .append("registrySyncRetries", this.registrySyncRetries) + .append("registrySyncRetryWaitMs", this.registrySyncRetryWaitMs) + .append("remoteRegionAppWhitelist", this.remoteRegionAppWhitelist) + .append("remoteRegionConnectTimeoutMs", this.remoteRegionConnectTimeoutMs) + .append("remoteRegionConnectionIdleTimeoutSeconds", this.remoteRegionConnectionIdleTimeoutSeconds) + .append("remoteRegionFetchThreadPoolSize", this.remoteRegionFetchThreadPoolSize) + .append("remoteRegionReadTimeoutMs", this.remoteRegionReadTimeoutMs) + .append("remoteRegionRegistryFetchInterval", this.remoteRegionRegistryFetchInterval) + .append("remoteRegionTotalConnections", this.remoteRegionTotalConnections) + .append("remoteRegionTotalConnectionsPerHost", this.remoteRegionTotalConnectionsPerHost) + .append("remoteRegionTrustStore", this.remoteRegionTrustStore) + .append("remoteRegionTrustStorePassword", this.remoteRegionTrustStorePassword) + .append("remoteRegionUrls", this.remoteRegionUrls) + .append("remoteRegionUrlsWithName", this.remoteRegionUrlsWithName) + .append("renewalPercentThreshold", this.renewalPercentThreshold) + .append("renewalThresholdUpdateIntervalMs", this.renewalThresholdUpdateIntervalMs) + .append("responseCacheAutoExpirationInSeconds", this.responseCacheAutoExpirationInSeconds) + .append("responseCacheUpdateIntervalMs", this.responseCacheUpdateIntervalMs) + .append("retentionTimeInMSInDeltaQueue", this.retentionTimeInMSInDeltaQueue) + .append("route53BindRebindRetries", this.route53BindRebindRetries) + .append("route53BindingRetryIntervalMs", this.route53BindingRetryIntervalMs) + .append("route53DomainTTL", this.route53DomainTTL) + .append("syncWhenTimestampDiffers", this.syncWhenTimestampDiffers) + .append("useReadOnlyResponseCache", this.useReadOnlyResponseCache) + .append("waitTimeInMsWhenSyncEmpty", this.waitTimeInMsWhenSyncEmpty) + .append("xmlCodecName", this.xmlCodecName) + .append("initialCapacityOfResponseCache", this.initialCapacityOfResponseCache) + .append("expectedClientRenewalIntervalSeconds", this.expectedClientRenewalIntervalSeconds) + .append("useAwsAsgApi", this.useAwsAsgApi) + .append("myUrl", this.myUrl) + .toString(); } } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceCanceledEvent.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceCanceledEvent.java index c4f01ff6f7..f86edf06d8 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceCanceledEvent.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceCanceledEvent.java @@ -84,9 +84,16 @@ public int hashCode() { @Override public String toString() { - return new StringBuilder("EurekaInstanceCanceledEvent{").append("appName='").append(appName).append("', ") - .append("serverId='").append(serverId).append("', ").append("replication=").append(replication) - .append("}").toString(); + return new StringBuilder("EurekaInstanceCanceledEvent{").append("appName='") + .append(appName) + .append("', ") + .append("serverId='") + .append(serverId) + .append("', ") + .append("replication=") + .append(replication) + .append("}") + .toString(); } } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRegisteredEvent.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRegisteredEvent.java index c6776b7e84..5ae96a7ad6 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRegisteredEvent.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRegisteredEvent.java @@ -87,9 +87,16 @@ public int hashCode() { @Override public String toString() { - return new StringBuilder("EurekaInstanceRegisteredEvent{").append("instanceInfo=").append(instanceInfo) - .append(", ").append("leaseDuration=").append(leaseDuration).append(", ").append("replication=") - .append(replication).append("}").toString(); + return new StringBuilder("EurekaInstanceRegisteredEvent{").append("instanceInfo=") + .append(instanceInfo) + .append(", ") + .append("leaseDuration=") + .append(leaseDuration) + .append(", ") + .append("replication=") + .append(replication) + .append("}") + .toString(); } } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRenewedEvent.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRenewedEvent.java index 2999d7a5eb..d1c481272d 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRenewedEvent.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/event/EurekaInstanceRenewedEvent.java @@ -98,9 +98,19 @@ public int hashCode() { @Override public String toString() { - return new StringBuilder("EurekaInstanceRenewedEvent{").append("appName='").append(appName).append("', ") - .append("serverId='").append(serverId).append("', ").append("instanceInfo=").append(instanceInfo) - .append(", ").append("replication=").append(replication).append("}").toString(); + return new StringBuilder("EurekaInstanceRenewedEvent{").append("appName='") + .append(appName) + .append("', ") + .append("serverId='") + .append(serverId) + .append("', ") + .append("instanceInfo=") + .append(instanceInfo) + .append(", ") + .append("replication=") + .append(replication) + .append("}") + .toString(); } } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/metrics/EurekaInstanceMonitor.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/metrics/EurekaInstanceMonitor.java index 5c029fed59..99bbd624ae 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/metrics/EurekaInstanceMonitor.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/metrics/EurekaInstanceMonitor.java @@ -52,8 +52,8 @@ public class EurekaInstanceMonitor implements SmartApplicationListener { this.instanceRegistry = Objects.requireNonNull(instanceRegistry); this.tagProvider = Objects.requireNonNull(tagProvider); this.eurekaInstances = MultiGauge.builder("eureka.server.instances") - .description("Number of application instances registered with the Eureka server.") - .register(meterRegistry); + .description("Number of application instances registered with the Eureka server.") + .register(meterRegistry); } @Override @@ -66,11 +66,15 @@ public boolean supportsEventType(Class eventType) { @Override public void onApplicationEvent(ApplicationEvent event) { - final Map aggregatedCounts = instanceRegistry.getApplications().getRegisteredApplications().stream() - .flatMap(application -> application.getInstances().stream()) - .collect(Collectors.groupingBy(tagProvider::eurekaInstanceTags, Collectors.counting())); - eurekaInstances.register(aggregatedCounts.entrySet().stream() - .map(entry -> MultiGauge.Row.of(entry.getKey(), entry.getValue())).collect(Collectors.toList()), true); + final Map aggregatedCounts = instanceRegistry.getApplications() + .getRegisteredApplications() + .stream() + .flatMap(application -> application.getInstances().stream()) + .collect(Collectors.groupingBy(tagProvider::eurekaInstanceTags, Collectors.counting())); + eurekaInstances.register(aggregatedCounts.entrySet() + .stream() + .map(entry -> MultiGauge.Row.of(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()), true); } } diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationContextTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationContextTests.java index c4e2f46f69..6e863a1fb5 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationContextTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationContextTests.java @@ -53,7 +53,7 @@ class ApplicationContextTests { void catalogLoads() { @SuppressWarnings("rawtypes") ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/context/eureka/apps", Map.class); + .getForEntity("http://localhost:" + this.port + "/context/eureka/apps", Map.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); String computedPath = entity.getHeaders().getFirst("X-Version-Filter-Computed-Path"); assertThat(computedPath).isEqualTo("/context/eureka/v2/apps"); @@ -62,7 +62,7 @@ void catalogLoads() { @Test void dashboardLoads() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/context/", String.class); + .getForEntity("http://localhost:" + this.port + "/context/", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); String body = entity.getBody(); // System.err.println(body); @@ -75,14 +75,14 @@ void dashboardLoads() { @Test void cssAvailable() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/context/eureka/css/wro.css", String.class); + .getForEntity("http://localhost:" + this.port + "/context/eureka/css/wro.css", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @Test void jsAvailable() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/context/eureka/js/wro.js", String.class); + .getForEntity("http://localhost:" + this.port + "/context/eureka/js/wro.js", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardDisabledTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardDisabledTests.java index be726d1ae4..e4e6e35b36 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardDisabledTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardDisabledTests.java @@ -41,7 +41,7 @@ class ApplicationDashboardDisabledTests { void catalogLoads() { @SuppressWarnings("rawtypes") ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/eureka/apps", Map.class); + .getForEntity("http://localhost:" + this.port + "/eureka/apps", Map.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardPathTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardPathTests.java index 9b1dfe0444..9c375b44ea 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardPathTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationDashboardPathTests.java @@ -41,14 +41,14 @@ class ApplicationDashboardPathTests { void catalogLoads() { @SuppressWarnings("rawtypes") ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/eureka/apps", Map.class); + .getForEntity("http://localhost:" + this.port + "/eureka/apps", Map.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @Test void dashboardLoads() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/dashboard", String.class); + .getForEntity("http://localhost:" + this.port + "/dashboard", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); String body = entity.getBody(); // System.err.println(body); @@ -65,14 +65,14 @@ void dashboardLoads() { @Test void cssAvailable() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/eureka/css/wro.css", String.class); + .getForEntity("http://localhost:" + this.port + "/eureka/css/wro.css", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @Test void jsAvailable() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/eureka/js/wro.js", String.class); + .getForEntity("http://localhost:" + this.port + "/eureka/js/wro.js", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationServletPathTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationServletPathTests.java index 5d624a3682..073f12df05 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationServletPathTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationServletPathTests.java @@ -52,14 +52,14 @@ class ApplicationServletPathTests { void catalogLoads() { @SuppressWarnings("rawtypes") ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/servlet/eureka/apps", Map.class); + .getForEntity("http://localhost:" + this.port + "/servlet/eureka/apps", Map.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @Test void dashboardLoads() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/servlet/", String.class); + .getForEntity("http://localhost:" + this.port + "/servlet/", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); String body = entity.getBody(); // System.err.println(body); @@ -72,14 +72,14 @@ void dashboardLoads() { @Test void cssAvailable() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/servlet/eureka/css/wro.css", String.class); + .getForEntity("http://localhost:" + this.port + "/servlet/eureka/css/wro.css", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @Test void jsAvailable() { ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/servlet/eureka/js/wro.js", String.class); + .getForEntity("http://localhost:" + this.port + "/servlet/eureka/js/wro.js", String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java index c54ce93b13..fe29dbff88 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java @@ -59,7 +59,7 @@ class ApplicationTests { void catalogLoads() { @SuppressWarnings("rawtypes") ResponseEntity entity = new TestRestTemplate() - .getForEntity("http://localhost:" + this.port + "/eureka/apps", Map.class); + .getForEntity("http://localhost:" + this.port + "/eureka/apps", Map.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } @@ -99,12 +99,14 @@ void cssParsedByLess() { @Test void customCodecWorks() throws Exception { assertThat(this.serverCodecs).as("serverCodecs is wrong type") - .isInstanceOf(EurekaServerAutoConfiguration.CloudServerCodecs.class); + .isInstanceOf(EurekaServerAutoConfiguration.CloudServerCodecs.class); CodecWrapper codec = this.serverCodecs.getFullJsonCodec(); assertThat(codec).as("codec is wrong type").isInstanceOf(CloudJacksonJson.class); - InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder().setAppName("fooapp").add("instanceId", "foo") - .build(); + InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() + .setAppName("fooapp") + .add("instanceId", "foo") + .build(); String encoded = codec.encode(instanceInfo); InstanceInfo decoded = codec.decode(encoded, InstanceInfo.class); assertThat(decoded.getInstanceId()).as("instanceId was wrong").isEqualTo("foo"); diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerReplicasTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerReplicasTests.java index c78d197dfe..222d876110 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerReplicasTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerReplicasTests.java @@ -74,9 +74,12 @@ void teardown() throws Exception { @Test void testFilterReplicasNoAuth() { Map model = new HashMap<>(); - StatusInfo statusInfo = StatusInfo.Builder.newBuilder().add("registered-replicas", empty) - .add("available-replicas", noAuthList1).add("unavailable-replicas", noAuthList2) - .withInstanceInfo(this.instanceInfo).build(); + StatusInfo statusInfo = StatusInfo.Builder.newBuilder() + .add("registered-replicas", empty) + .add("available-replicas", noAuthList1) + .add("unavailable-replicas", noAuthList2) + .withInstanceInfo(this.instanceInfo) + .build(); EurekaController controller = new EurekaController(null, new EurekaProperties()); controller.filterReplicas(model, statusInfo); @@ -92,9 +95,12 @@ void testFilterReplicasNoAuth() { @Test void testFilterReplicasAuth() { Map model = new HashMap<>(); - StatusInfo statusInfo = StatusInfo.Builder.newBuilder().add("registered-replicas", authList2) - .add("available-replicas", authList1).add("unavailable-replicas", empty).withInstanceInfo(instanceInfo) - .build(); + StatusInfo statusInfo = StatusInfo.Builder.newBuilder() + .add("registered-replicas", authList2) + .add("available-replicas", authList1) + .add("unavailable-replicas", empty) + .withInstanceInfo(instanceInfo) + .build(); EurekaController controller = new EurekaController(null, new EurekaProperties()); controller.filterReplicas(model, statusInfo); @@ -110,9 +116,12 @@ void testFilterReplicasAuth() { @Test void testFilterReplicasAuthWithCombinationList() { Map model = new HashMap<>(); - StatusInfo statusInfo = StatusInfo.Builder.newBuilder().add("registered-replicas", totalAutoList) - .add("available-replicas", combinationAuthList1).add("unavailable-replicas", combinationAuthList2) - .withInstanceInfo(instanceInfo).build(); + StatusInfo statusInfo = StatusInfo.Builder.newBuilder() + .add("registered-replicas", totalAutoList) + .add("available-replicas", combinationAuthList1) + .add("unavailable-replicas", combinationAuthList2) + .withInstanceInfo(instanceInfo) + .build(); EurekaController controller = new EurekaController(null, new EurekaProperties()); controller.filterReplicas(model, statusInfo); diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerTests.java index d1a3efc8f1..988b84c69f 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaControllerTests.java @@ -55,8 +55,10 @@ void setup() throws Exception { PeerEurekaNodes peerEurekaNodes = mock(PeerEurekaNodes.class); when(peerEurekaNodes.getPeerNodesView()).thenReturn(Collections.emptyList()); - InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder().setAppName("test") - .setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn)).build(); + InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() + .setAppName("test") + .setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn)) + .build(); this.infoManager = mock(ApplicationInfoManager.class); this.original = ApplicationInfoManager.getInstance(); @@ -64,8 +66,11 @@ void setup() throws Exception { when(this.infoManager.getInfo()).thenReturn(instanceInfo); Application myapp = new Application("myapp"); - myapp.addInstance(InstanceInfo.Builder.newBuilder().setAppName("myapp") - .setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn)).setInstanceId("myapp:1").build()); + myapp.addInstance(InstanceInfo.Builder.newBuilder() + .setAppName("myapp") + .setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn)) + .setInstanceId("myapp:1") + .build()); ArrayList applications = new ArrayList<>(); applications.add(myapp); diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaCustomPeerNodesTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaCustomPeerNodesTests.java index 4ace448081..f59bd90e35 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaCustomPeerNodesTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaCustomPeerNodesTests.java @@ -45,7 +45,8 @@ class EurekaCustomPeerNodesTests { @Test void testCustomPeerNodesShouldTakePrecedenceOverDefault() { assertThat(peerEurekaNodes instanceof CustomEurekaPeerNodes) - .as("PeerEurekaNodes should be the user created one").isTrue(); + .as("PeerEurekaNodes should be the user created one") + .isTrue(); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorTests.java index b548c4f6d7..41872218e9 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorTests.java @@ -153,7 +153,7 @@ private static Tags tags(InstanceInfo instanceInfo) { private void assertEurekaInstance(Map meterRegistryCounts) { meterRegistryCounts.forEach((tags, count) -> assertThat((long) meterRegistry.get("eureka.server.instances").tags(tags).gauge().value()) - .isEqualTo(count)); + .isEqualTo(count)); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorWithCustomTagsProviderTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorWithCustomTagsProviderTests.java index bd86521503..ec832013fc 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorWithCustomTagsProviderTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/EurekaInstanceMonitorWithCustomTagsProviderTests.java @@ -84,7 +84,7 @@ private static Tags tags(InstanceInfo instanceInfo) { private void assertEurekaInstance(Map meterRegistryCounts) { meterRegistryCounts.forEach((tags, count) -> assertThat((long) meterRegistry.get("eureka.server.instances").tags(tags).gauge().value()) - .isEqualTo(count)); + .isEqualTo(count)); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryTests.java index a2310a3bf7..d3ac941b0d 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryTests.java @@ -80,7 +80,7 @@ void testRegister() { assertThat(this.testEvents.applicationEvents.get(0) instanceof EurekaInstanceRegisteredEvent).isTrue(); // event details are correct final EurekaInstanceRegisteredEvent registeredEvent = (EurekaInstanceRegisteredEvent) (this.testEvents.applicationEvents - .get(0)); + .get(0)); assertThat(registeredEvent.getInstanceInfo()).isEqualTo(instanceInfo); assertThat(registeredEvent.getLeaseDuration()).isEqualTo(leaseInfo.getDurationInSecs()); assertThat(registeredEvent.getSource()).isEqualTo(instanceRegistry); @@ -95,7 +95,7 @@ void testDefaultLeaseDurationRegisterEvent() { instanceRegistry.register(instanceInfo, false); // instance info duration is set to default final EurekaInstanceRegisteredEvent registeredEvent = (EurekaInstanceRegisteredEvent) (this.testEvents.applicationEvents - .get(0)); + .get(0)); assertThat(registeredEvent.getLeaseDuration()).isEqualTo(LeaseInfo.DEFAULT_LEASE_DURATION); } @@ -112,7 +112,7 @@ void testInternalCancel() { assertThat(this.testEvents.applicationEvents.get(1) instanceof EurekaInstanceCanceledEvent).isTrue(); // event details are correct final EurekaInstanceCanceledEvent registeredEvent = (EurekaInstanceCanceledEvent) (this.testEvents.applicationEvents - .get(1)); + .get(1)); assertThat(registeredEvent.getAppName()).isEqualTo(APP_NAME); assertThat(registeredEvent.getServerId()).isEqualTo(INSTANCE_ID); assertThat(registeredEvent.getSource()).isEqualTo(instanceRegistry); @@ -135,7 +135,7 @@ void testRenew() { assertThat(this.testEvents.applicationEvents.get(3) instanceof EurekaInstanceRenewedEvent).isTrue(); // event details are correct final EurekaInstanceRenewedEvent event1 = (EurekaInstanceRenewedEvent) (this.testEvents.applicationEvents - .get(2)); + .get(2)); assertThat(event1.getAppName()).isEqualTo(APP_NAME); assertThat(event1.getServerId()).isEqualTo(INSTANCE_ID); assertThat(event1.getSource()).isEqualTo(instanceRegistry); @@ -143,7 +143,7 @@ void testRenew() { assertThat(event1.isReplication()).isFalse(); final EurekaInstanceRenewedEvent event2 = (EurekaInstanceRenewedEvent) (this.testEvents.applicationEvents - .get(3)); + .get(3)); assertThat(event2.getInstanceInfo()).isEqualTo(instanceInfo2); } diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesTests.java index a6ef4dfb01..44d5dab09e 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesTests.java @@ -83,8 +83,8 @@ void notUpdatedWhenDnsIsTrue() { this.context.publishEvent(new EnvironmentChangeEvent(new HashSet<>(Arrays.asList(USE_DNS, DEFAULT_ZONE)))); assertThat(serviceUrlMatches("https://default-host1:8678/eureka/")) - .as("PeerEurekaNodes' are updated when eureka.client.use-dns-for-fetching-service-urls is true") - .isFalse(); + .as("PeerEurekaNodes' are updated when eureka.client.use-dns-for-fetching-service-urls is true") + .isFalse(); } @Test @@ -95,8 +95,8 @@ void updatedWhenDnsIsFalse() { this.context.publishEvent(new EnvironmentChangeEvent(new HashSet<>(Arrays.asList(USE_DNS, DEFAULT_ZONE)))); assertThat(serviceUrlMatches("https://default-host2:8678/eureka/")) - .as("PeerEurekaNodes' are not updated when eureka.client.use-dns-for-fetching-service-urls is false") - .isTrue(); + .as("PeerEurekaNodes' are not updated when eureka.client.use-dns-for-fetching-service-urls is false") + .isTrue(); } @Test @@ -108,12 +108,14 @@ void updatedWhenRegionChanged() { "eureka.client.service-url.region2-zone=https://region2-zone-host:8678/eureka/"); this.context.publishEvent(new EnvironmentChangeEvent(Collections.singleton(REGION))); assertThat(serviceUrlMatches("https://region1-zone-host:8678/eureka/")) - .as("PeerEurekaNodes' are not updated when eureka.client.region is changed").isTrue(); + .as("PeerEurekaNodes' are not updated when eureka.client.region is changed") + .isTrue(); changeProperty("eureka.client.region=region2"); this.context.publishEvent(new EnvironmentChangeEvent(Collections.singleton(REGION))); assertThat(serviceUrlMatches("https://region2-zone-host:8678/eureka/")) - .as("PeerEurekaNodes' are not updated when eureka.client.region is changed").isTrue(); + .as("PeerEurekaNodes' are not updated when eureka.client.region is changed") + .isTrue(); } @Test @@ -124,14 +126,17 @@ void updatedWhenAvailabilityZoneChanged() { "eureka.client.service-url.defaultZone=https://default-host3:8678/eureka/"); this.context.publishEvent( new EnvironmentChangeEvent(Collections.singleton("eureka.client.availability-zones.region3"))); - assertThat(this.peerEurekaNodes.getPeerEurekaNodes().get(0).getServiceUrl() - .equals("https://default-host3:8678/eureka/")).isTrue(); + assertThat(this.peerEurekaNodes.getPeerEurekaNodes() + .get(0) + .getServiceUrl() + .equals("https://default-host3:8678/eureka/")).isTrue(); changeProperty("eureka.client.availability-zones.region4=region4-zone"); this.context.publishEvent( new EnvironmentChangeEvent(Collections.singleton("eureka.client.availability-zones.region4"))); assertThat(serviceUrlMatches("https://region4-zone-host:8678/eureka/")) - .as("PeerEurekaNodes' are not updated when eureka.client.availability-zones are changed").isTrue(); + .as("PeerEurekaNodes' are not updated when eureka.client.availability-zones are changed") + .isTrue(); } @Test @@ -168,7 +173,8 @@ protected void updatePeerEurekaNodes(List newPeerUrls) { void peerEurekaNodesIsRefreshablePeerEurekaNodes() { assertThat(this.peerEurekaNodes).isNotNull(); assertThat(this.peerEurekaNodes instanceof RefreshablePeerEurekaNodes) - .as("PeerEurekaNodes should be an instance of RefreshablePeerEurekaNodes").isTrue(); + .as("PeerEurekaNodes should be an instance of RefreshablePeerEurekaNodes") + .isTrue(); } @Test @@ -177,7 +183,7 @@ void serviceUrlsCountAsSoonAsRefreshed() { "eureka.client.service-url.defaultZone=https://defaul-host3:8678/eureka/,http://defaul-host4:8678/eureka/"); forceUpdate(); assertThat(this.peerEurekaNodes.getPeerEurekaNodes().size()).as("PeerEurekaNodes' peer count is incorrect.") - .isEqualTo(2); + .isEqualTo(2); } @Test @@ -185,7 +191,8 @@ void serviceUrlsValueAsSoonAsRefreshed() { changeProperty("eureka.client.service-url.defaultZone=https://defaul-host4:8678/eureka/"); forceUpdate(); assertThat(serviceUrlMatches("https://defaul-host4:8678/eureka/")) - .as("PeerEurekaNodes' new peer[0] is incorrect").isTrue(); + .as("PeerEurekaNodes' new peer[0] is incorrect") + .isTrue(); } @Test @@ -198,7 +205,8 @@ void dashboardUpdatedAsSoonAsRefreshed() { final String body = entity.getBody(); assertThat(body).isNotNull(); assertThat(body.contains("https://defaul-host5:8678/eureka/")) - .as("DS Replicas not updated in the Eureka Server dashboard").isTrue(); + .as("DS Replicas not updated in the Eureka Server dashboard") + .isTrue(); } @Test @@ -206,10 +214,11 @@ void notUpdatedForRelaxedKeys() { changeProperty("eureka.client.use-dns-for-fetching-service-urls=false", "eureka.client.region=unavailable-region", // to force defaultZone "eureka.client.service-url.defaultZone=https://defaul-host6:8678/eureka/"); - this.context.publishEvent( - new EnvironmentChangeEvent(Collections.singleton("eureka.client.serviceUrl.defaultZone"))); + this.context + .publishEvent(new EnvironmentChangeEvent(Collections.singleton("eureka.client.serviceUrl.defaultZone"))); assertThat(serviceUrlMatches("https://defaul-host6:8678/eureka/")) - .as("PeerEurekaNodes' are updated for keys with relaxed binding").isFalse(); + .as("PeerEurekaNodes' are updated for keys with relaxed binding") + .isFalse(); } /* @@ -225,8 +234,8 @@ private void changeProperty(final String... pairs) { private void forceUpdate() { changeProperty("eureka.client.use-dns-for-fetching-service-urls=false", "eureka.client.region=unavailable-region"); // to force defaultZone - this.context.publishEvent( - new EnvironmentChangeEvent(Collections.singleton("eureka.client.service-url.defaultZone"))); + this.context + .publishEvent(new EnvironmentChangeEvent(Collections.singleton("eureka.client.service-url.defaultZone"))); } /* diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesWithCustomFiltersTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesWithCustomFiltersTests.java index 5dabe74d2e..27e414e3f2 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesWithCustomFiltersTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/RefreshablePeerEurekaNodesWithCustomFiltersTests.java @@ -49,14 +49,17 @@ class RefreshablePeerEurekaNodesWithCustomFiltersTests { @Test void testCustomPeerNodesShouldTakePrecedenceOverDefault() { assertThat(peerEurekaNodes instanceof RefreshablePeerEurekaNodes) - .as("PeerEurekaNodes should be an instance of RefreshablePeerEurekaNodes").isTrue(); + .as("PeerEurekaNodes should be an instance of RefreshablePeerEurekaNodes") + .isTrue(); RefreshablePeerEurekaNodes refreshablePeerEurekaNodes = (RefreshablePeerEurekaNodes) peerEurekaNodes; ReplicationClientAdditionalFilters filters = refreshablePeerEurekaNodes.replicationClientAdditionalFilters; assertThat(filters.getFilters()) - .as("PeerEurekaNodes'should have only one filter set on replicationClientAdditionalFilters").hasSize(1); + .as("PeerEurekaNodes'should have only one filter set on replicationClientAdditionalFilters") + .hasSize(1); assertThat(filters.getFilters().iterator().next() instanceof Application.CustomClientFilter) - .as("The type of the filter should be CustomClientFilter as user declared so").isTrue(); + .as("The type of the filter should be CustomClientFilter as user declared so") + .isTrue(); } private static R getField(Class clazz, T target, String fieldName) {