Skip to content

Commit 6eb8df2

Browse files
author
Dave Syer
committed
Replace most of Guava in extended jar
Signed-off-by: Dave Syer <dsyer@vmware.com>
1 parent 140b0a0 commit 6eb8df2

File tree

17 files changed

+106
-71
lines changed

17 files changed

+106
-71
lines changed

extended/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@
3434
<groupId>org.apache.commons</groupId>
3535
<artifactId>commons-lang3</artifactId>
3636
</dependency>
37-
<dependency>
38-
<groupId>com.google.guava</groupId>
39-
<artifactId>guava</artifactId>
40-
</dependency>
4137
<dependency>
4238
<groupId>com.github.vladimir-bukhtoyarov</groupId>
4339
<artifactId>bucket4j-core</artifactId>
@@ -46,6 +42,10 @@
4642
<groupId>com.flipkart.zjsonpatch</groupId>
4743
<artifactId>zjsonpatch</artifactId>
4844
</dependency>
45+
<dependency>
46+
<groupId>com.github.ben-manes.caffeine</groupId>
47+
<artifactId>caffeine</artifactId>
48+
</dependency>
4949
<!-- test dependencies -->
5050
<dependency>
5151
<groupId>junit</groupId>

extended/src/main/java/io/kubernetes/client/extended/controller/Controllers.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,18 @@
1212
*/
1313
package io.kubernetes.client.extended.controller;
1414

15-
import com.google.common.util.concurrent.ThreadFactoryBuilder;
16-
import io.kubernetes.client.common.KubernetesObject;
17-
import io.kubernetes.client.extended.controller.reconciler.Request;
18-
import io.kubernetes.client.openapi.models.V1ObjectMeta;
15+
import java.util.concurrent.Executors;
1916
import java.util.concurrent.ThreadFactory;
17+
import java.util.concurrent.atomic.AtomicInteger;
2018
import java.util.function.Function;
19+
2120
import org.slf4j.Logger;
2221
import org.slf4j.LoggerFactory;
2322

23+
import io.kubernetes.client.common.KubernetesObject;
24+
import io.kubernetes.client.extended.controller.reconciler.Request;
25+
import io.kubernetes.client.openapi.models.V1ObjectMeta;
26+
2427
/** The Controllers is a set of commonly used utility functions for constructing controller. */
2528
public class Controllers {
2629

@@ -50,6 +53,16 @@ Function<ApiType, Request> defaultReflectiveKeyFunc() {
5053
* @return the thread factory
5154
*/
5255
public static ThreadFactory namedControllerThreadFactory(String controllerName) {
53-
return new ThreadFactoryBuilder().setNameFormat(controllerName + "-%d").build();
56+
final ThreadFactory defaultFactory = Executors.defaultThreadFactory();
57+
final AtomicInteger threadNumber = new AtomicInteger(1);
58+
String format = controllerName + "-%d";
59+
return r -> {
60+
Thread thread = defaultFactory.newThread(r);
61+
if (!thread.isDaemon()) {
62+
thread.setDaemon(true);
63+
}
64+
thread.setName(String.format(format, threadNumber.getAndIncrement()));
65+
return thread;
66+
};
5467
}
5568
}

extended/src/main/java/io/kubernetes/client/extended/event/legacy/EventAggregator.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
*/
1313
package io.kubernetes.client.extended.event.legacy;
1414

15-
import com.google.common.cache.Cache;
16-
import com.google.common.cache.CacheBuilder;
1715
import io.kubernetes.client.fluent.Function;
1816
import io.kubernetes.client.openapi.models.CoreV1Event;
1917
import io.kubernetes.client.openapi.models.CoreV1EventBuilder;
@@ -22,6 +20,10 @@
2220
import java.util.Objects;
2321
import java.util.Set;
2422
import java.util.concurrent.ExecutionException;
23+
24+
import com.github.benmanes.caffeine.cache.Cache;
25+
import com.github.benmanes.caffeine.cache.Caffeine;
26+
2527
import org.apache.commons.lang3.tuple.MutablePair;
2628
import org.joda.time.DateTime;
2729

@@ -39,7 +41,7 @@ public EventAggregator(
3941
this.messageFunc = messageFunc;
4042
this.maxEvents = DEFAULT_MAX_EVENT_LOCAL_KEYS;
4143
this.spammingCache =
42-
CacheBuilder.newBuilder()
44+
Caffeine.newBuilder()
4345
.maximumSize(maxLRUCacheEntries)
4446
.expireAfterWrite(DEFAULT_EVENT_AGGREGATE_CACHE_EXPIRATION)
4547
.build();
@@ -58,12 +60,7 @@ public synchronized MutablePair<CoreV1Event, String> aggregate(CoreV1Event event
5860
String aggregatedKey = aggregatedKeys.getLeft();
5961
String localKey = aggregatedKeys.getRight();
6062

61-
AggregatedRecord record;
62-
try {
63-
record = this.spammingCache.get(aggregatedKey, AggregatedRecord::new);
64-
} catch (ExecutionException e) {
65-
throw new IllegalStateException(e);
66-
}
63+
AggregatedRecord record = this.spammingCache.get(aggregatedKey, k -> new AggregatedRecord());
6764
record.lastTimestamp = now;
6865
record.localKeys.add(localKey);
6966

extended/src/main/java/io/kubernetes/client/extended/event/legacy/EventLogger.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,20 @@
1212
*/
1313
package io.kubernetes.client.extended.event.legacy;
1414

15-
import com.google.common.cache.Cache;
16-
import com.google.common.cache.CacheBuilder;
1715
import io.kubernetes.client.custom.V1Patch;
1816
import io.kubernetes.client.openapi.Configuration;
1917
import io.kubernetes.client.openapi.models.CoreV1Event;
2018
import java.util.function.Function;
19+
20+
import com.github.benmanes.caffeine.cache.Cache;
21+
import com.github.benmanes.caffeine.cache.Caffeine;
22+
2123
import org.apache.commons.lang3.tuple.MutablePair;
2224
import org.joda.time.DateTime;
2325

2426
public class EventLogger {
2527
public EventLogger(int lruCacheEntries, Function<CoreV1Event, String> eventKeyFunc) {
26-
this.eventCache = CacheBuilder.newBuilder().maximumSize(lruCacheEntries).build();
28+
this.eventCache = Caffeine.newBuilder().maximumSize(lruCacheEntries).build();
2729
this.eventKeyFunc = eventKeyFunc;
2830
}
2931

extended/src/main/java/io/kubernetes/client/extended/event/legacy/EventSpamFilter.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
*/
1313
package io.kubernetes.client.extended.event.legacy;
1414

15-
import com.google.common.cache.Cache;
16-
import com.google.common.cache.CacheBuilder;
1715
import io.github.bucket4j.Bandwidth;
1816
import io.github.bucket4j.Bucket4j;
1917
import io.github.bucket4j.Refill;
@@ -24,6 +22,9 @@
2422
import java.util.concurrent.ExecutionException;
2523
import java.util.function.Function;
2624

25+
import com.github.benmanes.caffeine.cache.Cache;
26+
import com.github.benmanes.caffeine.cache.Caffeine;
27+
2728
public class EventSpamFilter {
2829

2930
public static final Duration DEFAULT_TOKEN_BUCKET_REFILLING_PERIOD = Duration.ofMinutes(5);
@@ -49,7 +50,7 @@ public EventSpamFilter(
4950
this.capacity = tokenBucketCapacity;
5051
this.refillingTokensPerPeriod = refillingTokensPerPeriod;
5152
this.refillingPeriod = refillingPeriod;
52-
this.spamRecordCache = CacheBuilder.newBuilder().maximumSize(maxLRUCacheEntries).build();
53+
this.spamRecordCache = Caffeine.newBuilder().maximumSize(maxLRUCacheEntries).build();
5354
}
5455

5556
private final long capacity;
@@ -60,12 +61,7 @@ public EventSpamFilter(
6061

6162
public boolean filter(CoreV1Event event) {
6263
String spamKey = spamKeyFunc.apply(event);
63-
SpamRecord record;
64-
try {
65-
record = spamRecordCache.get(spamKey, SpamRecord::new);
66-
} catch (ExecutionException e) {
67-
throw new IllegalStateException(e);
68-
}
64+
SpamRecord record = spamRecordCache.get(spamKey, k -> new SpamRecord());
6965
return record.tokenBucket.tryConsume(1);
7066
}
7167

extended/src/main/java/io/kubernetes/client/extended/event/legacy/ObjectReferenceResolvingEventRecorder.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,15 @@
1212
*/
1313
package io.kubernetes.client.extended.event.legacy;
1414

15-
import com.google.common.base.Strings;
15+
import java.util.HashMap;
16+
import java.util.Map;
17+
import java.util.concurrent.BlockingQueue;
18+
import java.util.concurrent.TimeUnit;
19+
20+
import org.joda.time.DateTime;
21+
import org.slf4j.Logger;
22+
import org.slf4j.LoggerFactory;
23+
1624
import io.kubernetes.client.common.KubernetesObject;
1725
import io.kubernetes.client.extended.event.EventType;
1826
import io.kubernetes.client.openapi.models.CoreV1Event;
@@ -22,13 +30,7 @@
2230
import io.kubernetes.client.openapi.models.V1ObjectMetaBuilder;
2331
import io.kubernetes.client.openapi.models.V1ObjectReference;
2432
import io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder;
25-
import java.util.HashMap;
26-
import java.util.Map;
27-
import java.util.concurrent.BlockingQueue;
28-
import java.util.concurrent.TimeUnit;
29-
import org.joda.time.DateTime;
30-
import org.slf4j.Logger;
31-
import org.slf4j.LoggerFactory;
33+
import io.kubernetes.client.util.Strings;
3234

3335
public class ObjectReferenceResolvingEventRecorder implements EventRecorder {
3436

extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlApply.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
*/
1313
package io.kubernetes.client.extended.kubectl;
1414

15-
import com.google.common.base.Strings;
1615
import io.kubernetes.client.common.KubernetesListObject;
1716
import io.kubernetes.client.common.KubernetesObject;
1817
import io.kubernetes.client.custom.V1Patch;
1918
import io.kubernetes.client.extended.kubectl.exception.KubectlException;
2019
import io.kubernetes.client.openapi.ApiException;
2120
import io.kubernetes.client.util.ModelMapper;
2221
import io.kubernetes.client.util.Namespaces;
22+
import io.kubernetes.client.util.Strings;
2323
import io.kubernetes.client.util.generic.GenericKubernetesApi;
2424
import io.kubernetes.client.util.generic.KubernetesApiResponse;
2525
import io.kubernetes.client.util.generic.options.PatchOptions;

extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlCopy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*/
1313
package io.kubernetes.client.extended.kubectl;
1414

15-
import static com.google.common.base.Strings.isNullOrEmpty;
15+
import static io.kubernetes.client.util.Strings.isNullOrEmpty;
1616

1717
import io.kubernetes.client.Copy;
1818
import io.kubernetes.client.extended.kubectl.exception.KubectlException;

extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlCreate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
*/
1313
package io.kubernetes.client.extended.kubectl;
1414

15-
import com.google.common.base.Strings;
1615
import io.kubernetes.client.common.KubernetesListObject;
1716
import io.kubernetes.client.common.KubernetesObject;
1817
import io.kubernetes.client.extended.kubectl.exception.KubectlException;
1918
import io.kubernetes.client.openapi.ApiException;
2019
import io.kubernetes.client.util.ModelMapper;
2120
import io.kubernetes.client.util.Namespaces;
21+
import io.kubernetes.client.util.Strings;
2222
import io.kubernetes.client.util.generic.GenericKubernetesApi;
2323
import io.kubernetes.client.util.generic.options.CreateOptions;
2424

extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlExec.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@
1212
*/
1313
package io.kubernetes.client.extended.kubectl;
1414

15-
import com.google.common.io.ByteStreams;
15+
import java.io.IOException;
16+
import java.io.InputStream;
17+
import java.io.OutputStream;
18+
1619
import io.kubernetes.client.Exec;
1720
import io.kubernetes.client.extended.kubectl.exception.KubectlException;
1821
import io.kubernetes.client.openapi.ApiException;
1922
import io.kubernetes.client.openapi.models.V1ObjectMeta;
2023
import io.kubernetes.client.openapi.models.V1Pod;
21-
import java.io.IOException;
22-
import java.io.InputStream;
23-
import java.io.OutputStream;
24+
import io.kubernetes.client.util.Streams;
2425

2526
public class KubectlExec extends Kubectl.ResourceAndContainerBuilder<V1Pod, KubectlExec>
2627
implements Kubectl.Executable<Integer> {
@@ -71,7 +72,7 @@ protected static Thread copyAsync(InputStream in, OutputStream out) {
7172
new Runnable() {
7273
public void run() {
7374
try {
74-
ByteStreams.copy(in, out);
75+
Streams.copy(in, out);
7576
} catch (IOException ex) {
7677
ex.printStackTrace();
7778
}

0 commit comments

Comments
 (0)