Skip to content

Commit b235620

Browse files
committed
refactor: simplify
1 parent 7e0c89e commit b235620

File tree

3 files changed

+18
-29
lines changed

3 files changed

+18
-29
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,37 @@
1616
@SuppressWarnings("rawtypes")
1717
public class DefaultManagedWorkflow<P extends HasMetadata> implements ManagedWorkflow<P> {
1818

19-
private final Set<SpecDependentResourceNode> topLevelResources;
20-
private final Set<SpecDependentResourceNode> bottomLevelResources;
19+
private final Set<String> topLevelResources;
20+
private final Set<String> bottomLevelResources;
2121
private final Set<SpecDependentResourceNode> nodes;
2222
private final boolean hasCleaner;
2323

24+
@SuppressWarnings("unchecked")
2425
DefaultManagedWorkflow(Set<SpecDependentResourceNode> dependentResourceSpecs,
2526
boolean hasCleaner) {
2627
this.hasCleaner = hasCleaner;
2728
topLevelResources = new HashSet<>(dependentResourceSpecs.size());
28-
bottomLevelResources = new HashSet<>(dependentResourceSpecs);
29+
bottomLevelResources =
30+
dependentResourceSpecs.stream().map(SpecDependentResourceNode::getName).collect(
31+
Collectors.toSet());
2932
nodes = dependentResourceSpecs;
3033
dependentResourceSpecs.forEach(drn -> {
3134
// add cycle detection?
3235
if (drn.getDependsOn().isEmpty()) {
33-
topLevelResources.add(drn);
36+
topLevelResources.add(drn.getName());
3437
} else {
35-
for (SpecDependentResourceNode dependsOn : (List<SpecDependentResourceNode>) drn
36-
.getDependsOn()) {
38+
for (String dependsOn : (List<String>) drn.getDependsOn()) {
3739
bottomLevelResources.remove(dependsOn);
3840
}
3941
}
4042
});
4143
}
4244

43-
Set<SpecDependentResourceNode> getTopLevelResources() {
45+
Set<String> getTopLevelResources() {
4446
return topLevelResources;
4547
}
4648

47-
Set<SpecDependentResourceNode> getBottomLevelResources() {
49+
Set<String> getBottomLevelResources() {
4850
return bottomLevelResources;
4951
}
5052

@@ -68,17 +70,14 @@ public Workflow<P> resolve(KubernetesClient client,
6870
final var map = nodes.stream()
6971
.map(spec -> createDRN(client, configuration, spec))
7072
.collect(Collectors.toMap(DependentResourceNode::getName, Function.identity()));
71-
final var bottom = bottomLevelResources.stream()
72-
.map(spec -> createDRN(client, configuration, spec)).collect(
73-
Collectors.toSet());
74-
final var top = topLevelResources.stream()
75-
.map(spec -> createDRN(client, configuration, spec))
76-
.collect(Collectors.toSet());
73+
final var bottom = bottomLevelResources.stream().map(map::get).collect(Collectors.toSet());
74+
final var top = topLevelResources.stream().map(map::get).collect(Collectors.toSet());
7775
return new Workflow<>(map, bottom, top,
7876
ExecutorServiceManager.instance().workflowExecutorService(),
7977
THROW_EXCEPTION_AUTOMATICALLY_DEFAULT, hasCleaner);
8078
}
8179

80+
@SuppressWarnings("unchecked")
8281
private DependentResourceNode createDRN(
8382
KubernetesClient client, ControllerConfiguration<P> configuration,
8483
SpecDependentResourceNode spec) {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/SpecDependentResourceNode.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414

1515
class SpecDependentResourceNode<R, P extends HasMetadata> {
1616
private final DependentResourceSpec<R, P> spec;
17-
private final List<SpecDependentResourceNode> dependsOn = new LinkedList<>();
18-
private final List<SpecDependentResourceNode> parents = new LinkedList<>();
17+
private final List<String> dependsOn = new LinkedList<>();
1918

2019
public SpecDependentResourceNode(DependentResourceSpec<R, P> spec) {
2120
this.spec = spec;
@@ -53,15 +52,10 @@ String getName() {
5352
}
5453

5554
public void addDependsOnRelation(SpecDependentResourceNode node) {
56-
node.parents.add(this);
57-
dependsOn.add(node);
55+
dependsOn.add(node.getName());
5856
}
5957

60-
public List<SpecDependentResourceNode> getDependsOn() {
58+
public List<String> getDependsOn() {
6159
return dependsOn;
6260
}
63-
64-
public List<SpecDependentResourceNode> getParents() {
65-
return parents;
66-
}
6761
}

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupportTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,8 @@ void createsWorkflow() {
142142

143143
assertThat(workflow.nodes()).map(SpecDependentResourceNode::getName)
144144
.containsExactlyInAnyOrder(NAME_1, NAME_2, NAME_3, NAME_4);
145-
assertThat(workflow.getTopLevelResources())
146-
.map(SpecDependentResourceNode::getName)
147-
.containsExactly(NAME_1);
148-
assertThat(workflow.getBottomLevelResources())
149-
.map(SpecDependentResourceNode::getName)
150-
.containsExactly(NAME_4);
145+
assertThat(workflow.getTopLevelResources()).containsExactly(NAME_1);
146+
assertThat(workflow.getBottomLevelResources()).containsExactly(NAME_4);
151147
}
152148

153149
}

0 commit comments

Comments
 (0)