Skip to content

Commit 3cf9920

Browse files
committed
factory
1 parent 917ebee commit 3cf9920

File tree

5 files changed

+50
-31
lines changed

5 files changed

+50
-31
lines changed

caffein-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeinBoundedCache.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package io.javaoperatorsdk.operator.processing.event.source.cache;
22

3-
import java.util.HashSet;
4-
import java.util.Set;
5-
63
import com.github.benmanes.caffeine.cache.Cache;
74

85
public class CaffeinBoundedCache<K, R> implements BoundedCache<K, R> {

caffein-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeinBoundedItemStore.java

Lines changed: 0 additions & 4 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package io.javaoperatorsdk.operator.processing.event.source.cache;
2+
3+
import java.time.Duration;
4+
5+
import io.fabric8.kubernetes.api.model.HasMetadata;
6+
import io.fabric8.kubernetes.client.KubernetesClient;
7+
8+
import com.github.benmanes.caffeine.cache.Cache;
9+
import com.github.benmanes.caffeine.cache.Caffeine;
10+
11+
public class CaffeinBoundedItemStores {
12+
13+
public static <R extends HasMetadata> BoundedItemStore<R> boundedItemStore(
14+
KubernetesClient client, Class<R> rClass,
15+
Duration accessExpireDuration, long cacheMaxSize) {
16+
Cache<String, R> cache = Caffeine.newBuilder()
17+
.expireAfterAccess(accessExpireDuration)
18+
.maximumSize(cacheMaxSize)
19+
.build();
20+
return boundedItemStore(client, rClass, cache);
21+
}
22+
23+
public static <R extends HasMetadata> BoundedItemStore<R> boundedItemStore(
24+
KubernetesClient client, Class<R> rClass,
25+
Duration accessExpireDuration) {
26+
Cache<String, R> cache = Caffeine.newBuilder()
27+
.expireAfterAccess(accessExpireDuration)
28+
.build();
29+
return boundedItemStore(client, rClass, cache);
30+
}
31+
32+
public static <R extends HasMetadata> BoundedItemStore<R> boundedItemStore(
33+
KubernetesClient client, Class<R> rClass, Cache<String, R> cache) {
34+
return new BoundedItemStore<>(client,
35+
new CaffeinBoundedCache<>(cache), rClass);
36+
}
37+
38+
}

caffein-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeinBoundedCacheIT.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.event.source.cache;
22

3-
import java.util.concurrent.TimeUnit;
3+
import java.time.Duration;
44
import java.util.stream.IntStream;
55

66
import org.junit.jupiter.api.Test;
@@ -14,9 +14,6 @@
1414
import io.javaoperatorsdk.operator.processing.event.source.cache.sample.BoundedCacheTestReconciler;
1515
import io.javaoperatorsdk.operator.processing.event.source.cache.sample.BoundedCacheTestSpec;
1616

17-
import com.github.benmanes.caffeine.cache.Cache;
18-
import com.github.benmanes.caffeine.cache.Caffeine;
19-
2017
import static io.javaoperatorsdk.operator.processing.event.source.cache.sample.BoundedCacheTestReconciler.DATA_KEY;
2118
import static org.assertj.core.api.Assertions.assertThat;
2219
import static org.awaitility.Awaitility.await;
@@ -30,14 +27,10 @@ class CaffeinBoundedCacheIT {
3027
@RegisterExtension
3128
LocallyRunOperatorExtension extension =
3229
LocallyRunOperatorExtension.builder().withReconciler(new BoundedCacheTestReconciler(), o -> {
33-
Cache<String, BoundedCacheTestCustomResource> cache = Caffeine.newBuilder()
34-
.expireAfterAccess(1, TimeUnit.MINUTES)
35-
.maximumSize(1)
36-
.build();
37-
BoundedItemStore<BoundedCacheTestCustomResource> boundedItemStore =
38-
new BoundedItemStore<>(new KubernetesClientBuilder().build(),
39-
new CaffeinBoundedCache<>(cache), BoundedCacheTestCustomResource.class);
40-
o.withItemStore(boundedItemStore);
30+
o.withItemStore(CaffeinBoundedItemStores.boundedItemStore(
31+
new KubernetesClientBuilder().build(), BoundedCacheTestCustomResource.class,
32+
Duration.ofMinutes(1),
33+
1));
4134
})
4235
.build();
4336

caffein-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/BoundedCacheTestReconciler.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.javaoperatorsdk.operator.processing.event.source.cache.sample;
22

3+
import java.time.Duration;
34
import java.util.Map;
4-
import java.util.concurrent.TimeUnit;
55

66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
@@ -10,17 +10,14 @@
1010
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
1111
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
1212
import io.fabric8.kubernetes.client.KubernetesClient;
13+
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
1314
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
1415
import io.javaoperatorsdk.operator.api.reconciler.*;
1516
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1617
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
17-
import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore;
18-
import io.javaoperatorsdk.operator.processing.event.source.cache.CaffeinBoundedCache;
18+
import io.javaoperatorsdk.operator.processing.event.source.cache.CaffeinBoundedItemStores;
1919
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
2020

21-
import com.github.benmanes.caffeine.cache.Cache;
22-
import com.github.benmanes.caffeine.cache.Caffeine;
23-
2421
@ControllerConfiguration
2522
public class BoundedCacheTestReconciler implements Reconciler<BoundedCacheTestCustomResource>,
2623
EventSourceInitializer<BoundedCacheTestCustomResource>, KubernetesClientAware {
@@ -66,13 +63,11 @@ private void createConfigMap(BoundedCacheTestCustomResource resource) {
6663
@Override
6764
public Map<String, EventSource> prepareEventSources(
6865
EventSourceContext<BoundedCacheTestCustomResource> context) {
69-
Cache<String, ConfigMap> cache = Caffeine.newBuilder()
70-
.expireAfterAccess(1, TimeUnit.MINUTES)
71-
.maximumSize(1)
72-
.build();
7366

74-
BoundedItemStore<ConfigMap> boundedItemStore = new BoundedItemStore<>(client,
75-
new CaffeinBoundedCache<>(cache), ConfigMap.class);
67+
var boundedItemStore =
68+
CaffeinBoundedItemStores.boundedItemStore(new KubernetesClientBuilder().build(),
69+
ConfigMap.class, Duration.ofMinutes(1),
70+
1);
7671

7772
var es = new InformerEventSource<>(InformerConfiguration.from(ConfigMap.class, context)
7873
.withItemStore(boundedItemStore)

0 commit comments

Comments
 (0)