diff --git a/pom.xml b/pom.xml index 1aa5933419..7a57b429df 100644 --- a/pom.xml +++ b/pom.xml @@ -196,6 +196,9 @@ 17 17 + + -Xlint:deprecation + diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentDefaultHeaderTest.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentDefaultHeaderTest.java index f2eabf2b4a..59cfd53039 100644 --- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentDefaultHeaderTest.java +++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentDefaultHeaderTest.java @@ -17,7 +17,7 @@ package org.springframework.cloud.kubernetes.client.default_api; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.util.Collections; import io.kubernetes.client.openapi.ApiClient; @@ -53,7 +53,7 @@ void testApiClientUserAgentDefaultHeader() throws MalformedURLException { assertThat(apiClient).isNotNull(); Request.Builder builder = new Request.Builder(); apiClient.processHeaderParams(Collections.emptyMap(), builder); - assertThat(builder.url(new URL("http://example.com")).build().headers().get("User-Agent")) + assertThat(builder.url(URI.create("http://example.com").toURL()).build().headers().get("User-Agent")) .isEqualTo("Spring-Cloud-Kubernetes-Application"); } diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentNonDefaultHeaderTest.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentNonDefaultHeaderTest.java index 3a1e936e23..630f6d5ef0 100644 --- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentNonDefaultHeaderTest.java +++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/ApiClientUserAgentNonDefaultHeaderTest.java @@ -17,7 +17,7 @@ package org.springframework.cloud.kubernetes.client.default_api; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.util.Collections; import io.kubernetes.client.openapi.ApiClient; @@ -57,7 +57,7 @@ void testApiClientUserAgentDefaultHeader() throws MalformedURLException { assertThat(apiClient).isNotNull(); Request.Builder builder = new Request.Builder(); apiClient.processHeaderParams(Collections.emptyMap(), builder); - assertThat(builder.url(new URL("http://example.com")).build().headers().get("User-Agent")) + assertThat(builder.url(URI.create("http://example.com").toURL()).build().headers().get("User-Agent")) .isEqualTo("non-default"); } diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientFilterMetadataTest.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientFilterMetadataTest.java index 3cf40a0853..28666b6a2a 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientFilterMetadataTest.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientFilterMetadataTest.java @@ -22,6 +22,7 @@ import io.kubernetes.client.informer.cache.Cache; import io.kubernetes.client.informer.cache.Lister; +import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.CoreV1EndpointPort; import io.kubernetes.client.openapi.models.CoreV1EndpointPortBuilder; @@ -34,6 +35,7 @@ import io.kubernetes.client.openapi.models.V1ServicePortBuilder; import io.kubernetes.client.openapi.models.V1ServiceSpecBuilder; import org.assertj.core.util.Strings; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -50,14 +52,14 @@ */ class KubernetesClientDiscoveryClientFilterMetadataTest { - private static final CoreV1Api CORE_V1_API = Mockito.mock(CoreV1Api.class); - - private static final SharedInformerFactoryStub STUB = new SharedInformerFactoryStub(); - private static final SharedInformerStub SERVICE_SHARED_INFORMER_STUB = new SharedInformerStub<>(); private static final SharedInformerStub ENDPOINTS_SHARED_INFORMER_STUB = new SharedInformerStub<>(); + private static CoreV1Api coreV1Api; + + private static SharedInformerFactoryStub sharedInformerFactoryStub; + private Cache servicesCache; private Lister servicesLister; @@ -66,6 +68,15 @@ class KubernetesClientDiscoveryClientFilterMetadataTest { private Lister endpointsLister; + @BeforeAll + static void beforeAll() { + coreV1Api = Mockito.mock(CoreV1Api.class); + ApiClient apiClient = Mockito.mock(ApiClient.class); + Mockito.when(coreV1Api.getApiClient()).thenReturn(apiClient); + + sharedInformerFactoryStub = new SharedInformerFactoryStub(apiClient); + } + @BeforeEach void beforeEach() { servicesCache = new Cache<>(); @@ -85,8 +96,9 @@ void testAllExtraMetadataDisabled() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "lab"), Map.of("l1", "lab"), Map.of(80, "http", 5555, "")); @@ -105,8 +117,9 @@ void testLabelsEnabled() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "v1", "l2", "v2"), Map.of("l1", "lab"), Map.of(80, "http", 5555, "")); @@ -126,8 +139,9 @@ void testLabelsEnabledWithPrefix() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "v1", "l2", "v2"), Map.of("l1", "lab"), Map.of(80, "http", 5555, "")); @@ -147,8 +161,9 @@ void testAnnotationsEnabled() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "v1"), Map.of("a1", "v1", "a2", "v2"), Map.of(80, "http", 5555, "")); @@ -168,8 +183,9 @@ void testAnnotationsEnabledWithPrefix() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "v1"), Map.of("a1", "v1", "a2", "v2"), Map.of(80, "http", 5555, "")); @@ -189,8 +205,9 @@ void testPortsEnabled() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "test", Map.of("l1", "v1"), Map.of("a1", "v1", "a2", "v2"), Map.of(80, "http", 5555, "")); @@ -210,8 +227,9 @@ void testPortsEnabledWithPrefix() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "v1"), Map.of("a1", "v1", "a2", "v2"), Map.of(80, "http", 5555, "")); @@ -231,8 +249,9 @@ void testLabelsAndAnnotationsAndPortsEnabledWithPrefix() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); setup(serviceId, "ns", Map.of("l1", "la1"), Map.of("a1", "an1", "a2", "an2"), Map.of(80, "http", 5555, "")); diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientServiceWithoutPortNameTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientServiceWithoutPortNameTests.java index b2c27721c4..3d0104a510 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientServiceWithoutPortNameTests.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientServiceWithoutPortNameTests.java @@ -22,6 +22,7 @@ import io.kubernetes.client.informer.cache.Cache; import io.kubernetes.client.informer.cache.Lister; +import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.CoreV1EndpointPortBuilder; import io.kubernetes.client.openapi.models.V1EndpointAddressBuilder; @@ -34,6 +35,7 @@ import io.kubernetes.client.openapi.models.V1ServicePortBuilder; import io.kubernetes.client.openapi.models.V1ServiceSpecBuilder; import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -46,15 +48,15 @@ */ class KubernetesClientDiscoveryClientServiceWithoutPortNameTests { - private static final CoreV1Api CORE_V1_API = Mockito.mock(CoreV1Api.class); + private static final SharedInformerStub SERVICE_SHARED_INFORMER_STUB = new SharedInformerStub<>(); - private static final String NAMESPACE = "spring-k8s"; + private static final SharedInformerStub ENDPOINTS_SHARED_INFORMER_STUB = new SharedInformerStub<>(); - private static final SharedInformerFactoryStub STUB = new SharedInformerFactoryStub(); + private static CoreV1Api coreV1Api; - private static final SharedInformerStub SERVICE_SHARED_INFORMER_STUB = new SharedInformerStub<>(); + private static SharedInformerFactoryStub sharedInformerFactoryStub; - private static final SharedInformerStub ENDPOINTS_SHARED_INFORMER_STUB = new SharedInformerStub<>(); + private static final String NAMESPACE = "spring-k8s"; private Cache servicesCache; @@ -64,6 +66,15 @@ class KubernetesClientDiscoveryClientServiceWithoutPortNameTests { private Lister endpointsLister; + @BeforeAll + static void beforeAll() { + coreV1Api = Mockito.mock(CoreV1Api.class); + ApiClient apiClient = Mockito.mock(ApiClient.class); + Mockito.when(coreV1Api.getApiClient()).thenReturn(apiClient); + + sharedInformerFactoryStub = new SharedInformerFactoryStub(apiClient); + } + @BeforeEach void beforeEach() { servicesCache = new Cache<>(); @@ -95,8 +106,9 @@ void testDiscoveryWithoutAServicePortName() { true, 60, false, null, Set.of(), Map.of(), null, KubernetesDiscoveryProperties.Metadata.DEFAULT, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List serviceInstances = discoveryClient.getInstances("no-port-name-service"); Assertions.assertThat(serviceInstances.size()).isEqualTo(1); diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientTests.java index fda7e814ce..95a186aaff 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientTests.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientDiscoveryClientTests.java @@ -24,6 +24,7 @@ import io.kubernetes.client.informer.cache.Cache; import io.kubernetes.client.informer.cache.Lister; +import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.CoreV1EndpointPort; import io.kubernetes.client.openapi.models.CoreV1EndpointPortBuilder; @@ -36,6 +37,7 @@ import io.kubernetes.client.openapi.models.V1Service; import io.kubernetes.client.openapi.models.V1ServiceBuilder; import io.kubernetes.client.openapi.models.V1ServiceSpecBuilder; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -51,13 +53,13 @@ */ class KubernetesClientDiscoveryClientTests { - private static final SharedInformerFactoryStub STUB = new SharedInformerFactoryStub(); - private static final SharedInformerStub SERVICE_SHARED_INFORMER_STUB = new SharedInformerStub<>(); private static final SharedInformerStub ENDPOINTS_SHARED_INFORMER_STUB = new SharedInformerStub<>(); - private static final CoreV1Api CORE_V1_API = Mockito.mock(CoreV1Api.class); + private static CoreV1Api coreV1Api; + + private static SharedInformerFactoryStub sharedInformerFactoryStub; private Cache servicesCache; @@ -67,6 +69,15 @@ class KubernetesClientDiscoveryClientTests { private Lister endpointsLister; + @BeforeAll + static void beforeAll() { + coreV1Api = Mockito.mock(CoreV1Api.class); + ApiClient apiClient = Mockito.mock(ApiClient.class); + Mockito.when(coreV1Api.getApiClient()).thenReturn(apiClient); + + sharedInformerFactoryStub = new SharedInformerFactoryStub(apiClient); + } + @BeforeEach void beforeEach() { servicesCache = new Cache<>(); @@ -97,8 +108,9 @@ void getInstancesShouldBeAbleToHandleEndpointsSingleAddress() { false, null, Set.of(), Map.of(), null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, null, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, null, + x -> true); List instances = discoveryClient.getInstances("id"); @@ -129,8 +141,9 @@ void getInstancesShouldBeAbleToHandleEndpointsSingleAddressAndMultiplePorts() { false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint"); @@ -164,8 +177,9 @@ void getInstancesShouldBeAbleToHandleEndpointsMultipleAddresses() { false, null, Set.of(443, 8443), labels, null, metadata, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint"); @@ -202,8 +216,9 @@ void getInstancesShouldBeAbleToHandleEndpointsFromMultipleNamespaces() { null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint"); @@ -243,8 +258,9 @@ void instanceWithoutSubsetsShouldBeSkipped() { false, null, Set.of(), Map.of(), null, KubernetesDiscoveryProperties.Metadata.DEFAULT, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint1"); @@ -270,8 +286,9 @@ void getInstancesShouldBeAbleToHandleEndpointsSingleAddressAndMultiplePortsUsing false, null, Set.of(443, 8443), Map.of(), null, KubernetesDiscoveryProperties.Metadata.DEFAULT, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint2"); @@ -303,8 +320,9 @@ void instanceWithMultiplePortsAndMisconfiguredPrimaryPortNameInLabelWithoutFallb false, null, Set.of(443, 8443), Map.of(), null, KubernetesDiscoveryProperties.Metadata.DEFAULT, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint3"); @@ -335,8 +353,9 @@ void instanceWithMultiplePortsAndMisconfiguredGenericPrimaryPortNameWithoutFallb false, null, Set.of(443, 8443), Map.of(), "oops", KubernetesDiscoveryProperties.Metadata.DEFAULT, 0, true, false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint4"); @@ -368,8 +387,9 @@ void instanceWithMultiplePortsAndWithoutPrimaryPortNameSpecifiedShouldFallBackTo false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint5"); @@ -398,8 +418,9 @@ void instanceWithMultiplePortsAndWithoutPrimaryPortNameSpecifiedOrHttpsPortShoul setup(serviceId, serviceType, namespace, labels, ips, uuids, names, protocols, ports, appProtocols); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), KubernetesDiscoveryProperties.DEFAULT, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), + KubernetesDiscoveryProperties.DEFAULT, coreV1Api, x -> true); List instances = discoveryClient.getInstances("endpoint5"); @@ -432,8 +453,9 @@ void instanceWithMultiplePortsAndWithoutPrimaryPortNameSpecifiedShouldLogWarning false, null); KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint5"); @@ -465,8 +487,9 @@ public void instanceWithoutPorts() { KubernetesDiscoveryProperties properties = KubernetesDiscoveryProperties.DEFAULT; KubernetesClientInformerDiscoveryClient discoveryClient = new KubernetesClientInformerDiscoveryClient( - List.of(STUB), List.of(servicesLister), List.of(endpointsLister), List.of(SERVICE_SHARED_INFORMER_STUB), - List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, CORE_V1_API, x -> true); + List.of(sharedInformerFactoryStub), List.of(servicesLister), List.of(endpointsLister), + List.of(SERVICE_SHARED_INFORMER_STUB), List.of(ENDPOINTS_SHARED_INFORMER_STUB), properties, coreV1Api, + x -> true); List instances = discoveryClient.getInstances("endpoint5"); diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/SharedInformerFactoryStub.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/SharedInformerFactoryStub.java index 063ce969d1..6caf1f4015 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/SharedInformerFactoryStub.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/SharedInformerFactoryStub.java @@ -17,12 +17,17 @@ package org.springframework.cloud.kubernetes.client.discovery; import io.kubernetes.client.informer.SharedInformerFactory; +import io.kubernetes.client.openapi.ApiClient; /** * @author wind57 */ final class SharedInformerFactoryStub extends SharedInformerFactory { + SharedInformerFactoryStub(ApiClient apiClient) { + super(apiClient); + } + @Override public void startAllRegisteredInformers() { diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ProfileActivationAwareYamlPropertiesFactoryBean.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ProfileActivationAwareYamlPropertiesFactoryBean.java index e462c06a72..98aaf6f34e 100644 --- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ProfileActivationAwareYamlPropertiesFactoryBean.java +++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ProfileActivationAwareYamlPropertiesFactoryBean.java @@ -28,6 +28,7 @@ import java.util.Properties; import java.util.stream.Collectors; +import jakarta.annotation.Nullable; import org.apache.commons.logging.LogFactory; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.reader.UnicodeReader; @@ -36,7 +37,6 @@ import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.Resource; import org.springframework.core.log.LogAccessor; -import org.springframework.lang.Nullable; import org.springframework.util.StringUtils; import static org.springframework.beans.factory.config.YamlProcessor.DocumentMatcher; diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/configdata/KubernetesConfigDataLocationResolver.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/configdata/KubernetesConfigDataLocationResolver.java index 8f413b0091..d1c7b28f50 100644 --- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/configdata/KubernetesConfigDataLocationResolver.java +++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/configdata/KubernetesConfigDataLocationResolver.java @@ -22,7 +22,6 @@ import java.util.Map; import jakarta.annotation.Nonnull; -import reactor.util.annotation.NonNull; import org.springframework.boot.context.config.ConfigDataLocation; import org.springframework.boot.context.config.ConfigDataLocationNotFoundException; @@ -68,7 +67,7 @@ public final boolean isResolvable(@Nonnull ConfigDataLocationResolverContext con } @Override - public final List resolve(@NonNull ConfigDataLocationResolverContext context, + public final List resolve(@Nonnull ConfigDataLocationResolverContext context, @Nonnull ConfigDataLocation location) throws ConfigDataLocationNotFoundException, ConfigDataResourceNotFoundException { return Collections.emptyList(); @@ -76,7 +75,7 @@ public final List resolve(@NonNull ConfigDataLocat @Override public final List resolveProfileSpecific( - @Nonnull ConfigDataLocationResolverContext resolverContext, @NonNull ConfigDataLocation location, + @Nonnull ConfigDataLocationResolverContext resolverContext, @Nonnull ConfigDataLocation location, @Nonnull Profiles profiles) throws ConfigDataLocationNotFoundException { ConfigDataPropertiesHolder properties = ConfigDataPropertiesHolder.of(resolverContext); diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml index 5fa611edcc..da4969fd54 100644 --- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml +++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml @@ -73,7 +73,7 @@ dockerfile-maven-plugin 1.4.13 - ${docker.registry.organization}/${artifactId} + ${docker.registry.organization}/${project.artifactId} ${project.version} ${env.DOCKER_HUB_USERNAME} ${env.DOCKER_HUB_PASSWORD} diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/pom.xml b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/pom.xml index f332764357..8ba273edc8 100644 --- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/pom.xml +++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/pom.xml @@ -86,7 +86,7 @@ dockerfile-maven-plugin 1.4.13 - ${docker.registry.organization}/${artifactId} + ${docker.registry.organization}/${project.artifactId} ${project.version} ${env.DOCKER_HUB_USERNAME} ${env.DOCKER_HUB_PASSWORD} diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-discoveryserver/pom.xml b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-discoveryserver/pom.xml index f68b199be8..a22c3297c6 100644 --- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-discoveryserver/pom.xml +++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-discoveryserver/pom.xml @@ -67,7 +67,7 @@ dockerfile-maven-plugin 1.4.13 - ${docker.registry.organization}/${artifactId} + ${docker.registry.organization}/${project.artifactId} ${project.version} ${env.DOCKER_HUB_USERNAME} ${env.DOCKER_HUB_PASSWORD} diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadConfigMapTest.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadConfigMapTest.java index 09e180dbef..da933ebd50 100644 --- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadConfigMapTest.java +++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadConfigMapTest.java @@ -128,7 +128,7 @@ void test(CapturedOutput output) { // is triggered Mockito.reset(kubernetesClient); ConfigMap configMapOne = configMap(CONFIG_MAP_NAME, Map.of("a", "b")); - operation.resource(configMapOne).replace(); + operation.resource(configMapOne).update(); // it passes while reading 'configMapThatWillPass' Awaitility.await() diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadSecretTest.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadSecretTest.java index d9fe60958e..a8a2388119 100644 --- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadSecretTest.java +++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/EventReloadSecretTest.java @@ -130,7 +130,7 @@ void test(CapturedOutput output) { // is triggered Mockito.reset(kubernetesClient); Secret secretOne = secret(SECRET_NAME, Map.of("a", "b")); - operation.resource(secretOne).replace(); + operation.resource(secretOne).update(); // it passes while reading 'secretOne' Awaitility.await() diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/PollingReloadConfigMapAndSecretTest.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/PollingReloadConfigMapAndSecretTest.java index c2ade0925f..45f9399fcb 100644 --- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/PollingReloadConfigMapAndSecretTest.java +++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload_it/PollingReloadConfigMapAndSecretTest.java @@ -163,7 +163,7 @@ private static void replaceConfigMap(String name, Map data) { mockClient.configMaps() .inNamespace(NAMESPACE) .resource(new ConfigMapBuilder().withNewMetadata().withName(name).endMetadata().addToData(data).build()) - .createOrReplace(); + .update(); } @TestConfiguration diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/sources_order/SourcesOrder.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/sources_order/SourcesOrder.java index cb23e0be66..7bc9498840 100644 --- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/sources_order/SourcesOrder.java +++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/sources_order/SourcesOrder.java @@ -72,13 +72,15 @@ static void setUpBeforeClass(KubernetesClient mockClient) { private static void createSecret(String name, Map data) { mockClient.secrets() .inNamespace("spring-k8s") - .create(new SecretBuilder().withNewMetadata().withName(name).endMetadata().addToData(data).build()); + .resource(new SecretBuilder().withNewMetadata().withName(name).endMetadata().addToData(data).build()) + .create(); } private static void createConfigmap(String name, Map data) { mockClient.configMaps() .inNamespace("spring-k8s") - .create(new ConfigMapBuilder().withNewMetadata().withName(name).endMetadata().addToData(data).build()); + .resource(new ConfigMapBuilder().withNewMetadata().withName(name).endMetadata().addToData(data).build()) + .create(); } /** diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8ConfigServerBootstrapperTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8ConfigServerBootstrapperTests.java index 06f1ca4475..850f720e80 100644 --- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8ConfigServerBootstrapperTests.java +++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8ConfigServerBootstrapperTests.java @@ -96,7 +96,7 @@ public void before() throws JsonProcessingException { .endSubset() .build(); - mockClient.endpoints().inNamespace("test").create(endPoint); + mockClient.endpoints().inNamespace("test").resource(endPoint).create(); Service service = new ServiceBuilder().withNewMetadata() .withName("spring-cloud-kubernetes-configserver") @@ -106,7 +106,7 @@ public void before() throws JsonProcessingException { .withSpec(new ServiceSpecBuilder().withType("NodePort").build()) .build(); - mockClient.services().inNamespace("test").create(service); + mockClient.services().inNamespace("test").resource(service).create(); Environment environment = new Environment("test", "default"); Map properties = new HashMap<>(); diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8DiscoveryClientOneTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8DiscoveryClientOneTests.java index 806a26df3d..ee62b9781c 100644 --- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8DiscoveryClientOneTests.java +++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8DiscoveryClientOneTests.java @@ -750,7 +750,7 @@ public void instanceWithoutPorts() { .endSubset() .build(); - mockClient.endpoints().inNamespace("test").create(endPoint1); + mockClient.endpoints().inNamespace("test").resource(endPoint1).create(); Service service = new ServiceBuilder().withSpec(new ServiceSpecBuilder().withType("ClusterIP").build()) .withNewMetadata() @@ -761,7 +761,7 @@ public void instanceWithoutPorts() { .endMetadata() .build(); - mockClient.services().inNamespace("test").create(service); + mockClient.services().inNamespace("test").resource(service).create(); final KubernetesDiscoveryProperties properties = KubernetesDiscoveryProperties.DEFAULT; diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/Fabric8ConfigMapConfigTreeIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/Fabric8ConfigMapConfigTreeIT.java index 56747ee322..d8358eff96 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/Fabric8ConfigMapConfigTreeIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/Fabric8ConfigMapConfigTreeIT.java @@ -119,7 +119,7 @@ void test() { "spring-cloud-kubernetes-fabric8-client-reload"); configMapConfigTree.getMetadata().setAnnotations(existingAnnotations); - util.client().configMaps().resource(configMapConfigTree).createOrReplace(); + util.client().configMaps().resource(configMapConfigTree).update(); await().atMost(Duration.ofSeconds(180)) .pollInterval(Duration.ofSeconds(1))