Skip to content

Commit 83da1c1

Browse files
committed
feat: make it possible to replace existing configuration
1 parent b82e7d2 commit 83da1c1

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java

+14-3
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,21 @@ public AbstractConfigurationService(Version version) {
1717
}
1818

1919
protected <R extends CustomResource> void register(ControllerConfiguration<R> config) {
20+
put(config, true);
21+
}
22+
23+
protected <R extends CustomResource> void replace(ControllerConfiguration<R> config) {
24+
put(config, false);
25+
}
26+
27+
private <R extends CustomResource> void put(ControllerConfiguration<R> config,
28+
boolean failIfExisting) {
2029
final var name = config.getName();
21-
final var existing = configurations.get(name);
22-
if (existing != null) {
23-
throwExceptionOnNameCollision(config.getAssociatedControllerClassName(), existing);
30+
if (failIfExisting) {
31+
final var existing = configurations.get(name);
32+
if (existing != null) {
33+
throwExceptionOnNameCollision(config.getAssociatedControllerClassName(), existing);
34+
}
2435
}
2536
configurations.put(name, config);
2637
}

0 commit comments

Comments
 (0)