From 699d9438490e0c6d42dfe88bedde69d40f8dc6dc Mon Sep 17 00:00:00 2001 From: Ioannis Canellos Date: Mon, 16 Jan 2017 20:52:00 +0200 Subject: [PATCH] #12: Remove occurrences of guava. --- pom.xml | 1 - .../ArchaiusConfigMapSourceConfiguration.java | 7 ++-- spring-cloud-kubernetes-ribbon/pom.xml | 5 --- .../ribbon/KubernetesConfigKey.java | 3 +- .../cloud/kubernetes/ribbon/Types.java | 36 +++++++++++++++++++ .../ribbon/KubernetesConfigKeyTest.java | 27 ++++++++++++++ 6 files changed, 68 insertions(+), 11 deletions(-) create mode 100644 spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/Types.java create mode 100644 spring-cloud-kubernetes-ribbon/src/test/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKeyTest.java diff --git a/pom.xml b/pom.xml index 7a691b27..3e4b914e 100644 --- a/pom.xml +++ b/pom.xml @@ -209,7 +209,6 @@ io.reactivex:* io.zipkin.java:* io.netty:* - com.google.guava:* commons-*:* diff --git a/spring-cloud-kubernetes-archaius/src/main/java/org/springframework/cloud/kubernetes/archaius/ArchaiusConfigMapSourceConfiguration.java b/spring-cloud-kubernetes-archaius/src/main/java/org/springframework/cloud/kubernetes/archaius/ArchaiusConfigMapSourceConfiguration.java index c60cd9ac..b7b6651c 100644 --- a/spring-cloud-kubernetes-archaius/src/main/java/org/springframework/cloud/kubernetes/archaius/ArchaiusConfigMapSourceConfiguration.java +++ b/spring-cloud-kubernetes-archaius/src/main/java/org/springframework/cloud/kubernetes/archaius/ArchaiusConfigMapSourceConfiguration.java @@ -17,7 +17,6 @@ package org.springframework.cloud.kubernetes.archaius; -import com.google.common.base.Strings; import com.netflix.config.WatchedConfigurationSource; import com.netflix.config.WatchedUpdateListener; import com.netflix.config.WatchedUpdateResult; @@ -26,8 +25,10 @@ import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientException; import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; + import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.StringUtils; import java.io.Closeable; import java.io.IOException; @@ -72,14 +73,14 @@ public class ArchaiusConfigMapSourceConfiguration implements InitializingBean, D public void start() { - ConfigMap map = Strings.isNullOrEmpty(namespace) + ConfigMap map = StringUtils.isEmpty(namespace) ? client.configMaps().withName(name).get() : client.configMaps().inNamespace(namespace).withName(name).get(); if (map != null) { currentData.set(asObjectMap(map.getData())); } - watch = Strings.isNullOrEmpty(namespace) + watch = StringUtils.isEmpty(namespace) ? client.configMaps().withName(name).watch(watcher) : client.configMaps().inNamespace(namespace).withName(namespace).watch(watcher); started.set(true); diff --git a/spring-cloud-kubernetes-ribbon/pom.xml b/spring-cloud-kubernetes-ribbon/pom.xml index c930af98..456904b0 100644 --- a/spring-cloud-kubernetes-ribbon/pom.xml +++ b/spring-cloud-kubernetes-ribbon/pom.xml @@ -98,11 +98,6 @@ true - - com.google.guava - guava - - org.springframework.boot spring-boot-starter-test diff --git a/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKey.java b/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKey.java index 37c98957..4df09787 100644 --- a/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKey.java +++ b/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKey.java @@ -26,7 +26,6 @@ import java.util.Set; import org.springframework.util.Assert; -import com.google.common.reflect.TypeToken; import com.netflix.client.config.IClientConfigKey; public abstract class KubernetesConfigKey implements IClientConfigKey { @@ -93,7 +92,7 @@ public abstract class KubernetesConfigKey implements IClientConfigKey { Assert.isTrue(superclass instanceof ParameterizedType, superclass + " isn't parameterized"); Type runtimeType = ((ParameterizedType) superclass).getActualTypeArguments()[0]; - type = (Class) TypeToken.of(runtimeType).getRawType(); + type = (Class) Types.rawType(runtimeType); } @Override diff --git a/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/Types.java b/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/Types.java new file mode 100644 index 00000000..89eedf0a --- /dev/null +++ b/spring-cloud-kubernetes-ribbon/src/main/java/org/springframework/cloud/kubernetes/ribbon/Types.java @@ -0,0 +1,36 @@ +package org.springframework.cloud.kubernetes.ribbon; + + +import java.lang.reflect.GenericArrayType; +import java.lang.reflect.Type; +import java.lang.reflect.TypeVariable; +import java.lang.reflect.WildcardType; +import java.util.Set; + +final class Types { + + private Types() { + //Utlity + } + + static Class rawType(Type type) { + if (type instanceof Class) { + return (Class) type; + } else if (type instanceof TypeVariable) { + return rawType(firstOrObject(((TypeVariable) type).getBounds())); + } else if (type instanceof WildcardType) { + return rawType(firstOrObject(((WildcardType) type).getUpperBounds())); + } else if (type instanceof GenericArrayType) { + return rawType(((GenericArrayType) type).getGenericComponentType()); + } + return Object.class; + } + + private static Type firstOrObject(Type[] types) { + if (types.length > 0) { + return rawType(types[0]); + } else { + return Void.class; + } + } +} diff --git a/spring-cloud-kubernetes-ribbon/src/test/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKeyTest.java b/spring-cloud-kubernetes-ribbon/src/test/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKeyTest.java new file mode 100644 index 00000000..549635b7 --- /dev/null +++ b/spring-cloud-kubernetes-ribbon/src/test/java/org/springframework/cloud/kubernetes/ribbon/KubernetesConfigKeyTest.java @@ -0,0 +1,27 @@ +package org.springframework.cloud.kubernetes.ribbon; + + +import org.junit.Assert; +import org.junit.Test; + +public class KubernetesConfigKeyTest { + + private class TypeOne {} + + @Test + public void testTypes() { + //with class + KubernetesConfigKey key1 = new KubernetesConfigKey("key1"){}; + + //with type variable + KubernetesConfigKey key2 = new KubernetesConfigKey("key2"){}; + + //with type variable with no bounds + KubernetesConfigKey key3 = new KubernetesConfigKey("key3"){}; + + Assert.assertEquals(String.class, key1.type()); + Assert.assertEquals(TypeOne.class, key2.type()); + Assert.assertEquals(Object.class, key3.type()); + } + +} \ No newline at end of file