Skip to content

Commit 94ec012

Browse files
committed
simplify informer/lister interface
1 parent 6ecb8a3 commit 94ec012

10 files changed

+80
-111
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package io.kubernetes.client.informer;
22

33
public interface ClusterScopeInformer<T> extends BasicInformer<T> {
4-
ClusterScopeLister<T> lister();
4+
Lister<T> lister();
55
}

util/src/main/java/io/kubernetes/client/informer/ClusterScopeLister.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

util/src/main/java/io/kubernetes/client/informer/Lister.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,4 @@ public interface Lister<T> {
77
List<T> list();
88

99
T get(String name);
10-
11-
List<T> list(String namespace);
12-
13-
T get(String namespace, String name);
1410
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package io.kubernetes.client.informer;
22

33
public interface NamespacedInformer<T> extends BasicInformer<T> {
4-
NamespacedLister<T> lister();
4+
Lister<T> lister(String namespace);
55
}

util/src/main/java/io/kubernetes/client/informer/NamespacedLister.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

util/src/main/java/io/kubernetes/client/informer/SharedInformerFactory.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import com.squareup.okhttp.Call;
55
import io.kubernetes.client.*;
66
import io.kubernetes.client.informer.exception.BuildInformerException;
7-
import io.kubernetes.client.informer.impl.DefaultClusterScopedInformer;
8-
import io.kubernetes.client.informer.impl.DefaultNamespacedInformer;
7+
import io.kubernetes.client.informer.impl.DefaultInfomer;
98
import io.kubernetes.client.informer.impl.DefaultSharedIndexInformer;
109
import io.kubernetes.client.util.Watch;
1110
import io.swagger.annotations.ApiParam;
@@ -22,7 +21,7 @@
2221

2322
public class SharedInformerFactory {
2423

25-
private Map<Class, BasicInformer> informers;
24+
private Map<Class, DefaultInfomer> informers;
2625
private Map<Class, Boolean> startedInformers;
2726
private ExecutorService informerExecutor;
2827

@@ -63,12 +62,12 @@ public <T> ClusterScopeInformer<T> informerForClusterScopeResource(
6362
public <T> ClusterScopeInformer<T> informerForClusterScopeResource(
6463
Class clientClass, Class<T> resourceClass, long resyncPeriod) throws BuildInformerException {
6564
if (this.informers.containsKey(resourceClass)) {
66-
return (ClusterScopeInformer<T>) this.informers.get(resourceClass);
65+
return this.informers.get(resourceClass);
6766
}
6867
ListerWatcher<T> listerWatcher = listWatcherFor(clientClass, resourceClass, false, false);
6968
DefaultSharedIndexInformer<T> indexInformer =
7069
new DefaultSharedIndexInformer<>(listerWatcher, resourceClass, resyncPeriod);
71-
DefaultClusterScopedInformer<T> informer = new DefaultClusterScopedInformer<>(indexInformer);
70+
DefaultInfomer<T> informer = new DefaultInfomer<>(indexInformer);
7271
this.informers.put(resourceClass, informer);
7372
return informer;
7473
}
@@ -103,13 +102,13 @@ public <T> NamespacedInformer<T> informerForNamespacedResource(
103102
Class clientClass, Class<T> resourceClass, String namespace, long resyncPeriod)
104103
throws BuildInformerException {
105104
if (this.informers.containsKey(resourceClass)) {
106-
return (NamespacedInformer<T>) this.informers.get(resourceClass);
105+
return this.informers.get(resourceClass);
107106
}
108107
boolean allnamespace = (namespace == null || namespace.length() == 0);
109108
ListerWatcher<T> listerWatcher = listWatcherFor(clientClass, resourceClass, true, allnamespace);
110109
DefaultSharedIndexInformer<T> indexInformer =
111110
new DefaultSharedIndexInformer<>(listerWatcher, resourceClass, resyncPeriod);
112-
NamespacedInformer<T> informer = new DefaultNamespacedInformer<>(indexInformer);
111+
DefaultInfomer<T> informer = new DefaultInfomer<>(indexInformer);
113112
this.informers.put(resourceClass, informer);
114113
return informer;
115114
}

util/src/main/java/io/kubernetes/client/informer/impl/DefaultClusterScopedInformer.java

Lines changed: 0 additions & 33 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.kubernetes.client.informer.impl;
2+
3+
import io.kubernetes.client.informer.*;
4+
5+
public class DefaultInfomer<T> implements NamespacedInformer<T>, ClusterScopeInformer<T> {
6+
7+
private SharedIndexInformer<T> sharedIndexInformer;
8+
9+
public DefaultInfomer(SharedIndexInformer<T> informer) {
10+
this.sharedIndexInformer = informer;
11+
}
12+
13+
// Returns a lister for clusterscope
14+
@Override
15+
public Lister<T> lister() {
16+
return new DefaultLister(sharedIndexInformer.getIndexer(), null);
17+
}
18+
19+
// Returns a lister for namespace
20+
@Override
21+
public Lister<T> lister(String namespace) {
22+
return new DefaultLister(sharedIndexInformer.getIndexer(), namespace);
23+
}
24+
25+
@Override
26+
public SharedIndexInformer<T> informer() {
27+
return null;
28+
}
29+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package io.kubernetes.client.informer.impl;
2+
3+
import io.kubernetes.client.informer.Lister;
4+
import io.kubernetes.client.informer.cache.Cache;
5+
import io.kubernetes.client.informer.cache.Indexer;
6+
import java.util.List;
7+
8+
public class DefaultLister<T> implements Lister<T> {
9+
10+
private String namespace;
11+
12+
private String indexName;
13+
14+
private Indexer<T> indexer;
15+
16+
DefaultLister(Indexer<T> indexer, String namespace) {
17+
this(indexer, Cache.NAMESPACE_INDEX, namespace);
18+
}
19+
20+
DefaultLister(Indexer<T> indexer, String indexName, String namespace) {
21+
this.indexer = indexer;
22+
this.indexName = indexName;
23+
this.namespace = namespace;
24+
}
25+
26+
@Override
27+
public List<T> list() {
28+
if (namespace == null || namespace.length() == 0) {
29+
return indexer.list();
30+
} else {
31+
return indexer.byIndex(this.indexName, namespace);
32+
}
33+
}
34+
35+
@Override
36+
public T get(String name) {
37+
String key = name;
38+
if (!(namespace == null || namespace.length() == 0)) {
39+
key = namespace + "/" + name;
40+
}
41+
return indexer.getByKey(key);
42+
}
43+
}

util/src/main/java/io/kubernetes/client/informer/impl/DefaultNamespacedInformer.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)