From e8360c67a49dda53d213766aca7e3d8722b0826b Mon Sep 17 00:00:00 2001 From: soroosh Date: Fri, 1 Jan 2021 23:13:30 +0100 Subject: [PATCH 1/5] use full class name of the controller as name instead of simple name --- .../javaoperatorsdk/operator/api/ResourceController.java | 4 ++-- .../config/runtime/DefaultConfigurationService.java | 5 +---- .../javaoperatorsdk/operator/IntegrationTestSupport.java | 2 +- .../config/runtime/DefaultConfigurationServiceTest.java | 8 +++----- .../operator/sample/MySQLSchemaOperator.java | 2 +- .../operator/sample/PureJavaApplicationRunner.java | 2 +- .../java/io/javaoperatorsdk/operator/sample/Config.java | 2 +- .../javaoperatorsdk/operator/sample/TomcatOperator.java | 2 +- .../operator/sample/WebServerOperator.java | 2 +- 9 files changed, 12 insertions(+), 17 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/ResourceController.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/ResourceController.java index 15f618dd19..29622d3219 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/ResourceController.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/ResourceController.java @@ -51,7 +51,7 @@ default String getName() { } } - // otherwise, use the lower-cased class name - return clazz.getSimpleName().toLowerCase(Locale.ROOT); + // otherwise, use the lower-cased full class name + return clazz.getCanonicalName().toLowerCase(Locale.ROOT); } } diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java index ecaf7f356d..ea9f2efd40 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java @@ -9,12 +9,9 @@ public class DefaultConfigurationService implements ConfigurationService { - private static final ConfigurationService instance = new DefaultConfigurationService(); private final Map configurations = new ConcurrentHashMap<>(); - public static ConfigurationService instance() { - return instance; - } + public static final ConfigurationService INSTANCE = new DefaultConfigurationService(); @Override public ControllerConfiguration getConfigurationFor( diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java index 6f54d6aa80..0d2986e1c1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java @@ -54,7 +54,7 @@ public void initialize( CustomResourceDefinitionContext crdContext = CustomResourceDefinitionContext.fromCrd(crd); this.controller = controller; - final var configurationService = DefaultConfigurationService.instance(); + final var configurationService = DefaultConfigurationService.INSTANCE; final var config = configurationService.getConfigurationFor(controller); Class doneableClass = config.getDoneableClass(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java index 1844cb6c3d..102cdbb14b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java @@ -22,8 +22,7 @@ public class DefaultConfigurationServiceTest { @Test public void returnsValuesFromControllerAnnotationFinalizer() { final var controller = new TestCustomResourceController(); - final var configuration = - DefaultConfigurationService.instance().getConfigurationFor(controller); + final var configuration = DefaultConfigurationService.INSTANCE.getConfigurationFor(controller); assertEquals(TestCustomResourceController.CRD_NAME, configuration.getCRDName()); assertEquals( ControllerUtils.getDefaultFinalizerName(configuration.getCRDName()), @@ -36,8 +35,7 @@ public void returnsValuesFromControllerAnnotationFinalizer() { @Test public void returnCustomerFinalizerNameIfSet() { final var controller = new TestCustomFinalizerController(); - final var configuration = - DefaultConfigurationService.instance().getConfigurationFor(controller); + final var configuration = DefaultConfigurationService.INSTANCE.getConfigurationFor(controller); assertEquals(CUSTOM_FINALIZER_NAME, configuration.getFinalizer()); } @@ -46,7 +44,7 @@ public void supportsInnerClassCustomResources() { final var controller = new TestCustomFinalizerController(); assertDoesNotThrow( () -> { - DefaultConfigurationService.instance().getConfigurationFor(controller).getDoneableClass(); + DefaultConfigurationService.INSTANCE.getConfigurationFor(controller).getDoneableClass(); }); } diff --git a/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java b/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java index dd6aacfb64..ccdfc40ad5 100644 --- a/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java +++ b/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java @@ -23,7 +23,7 @@ public static void main(String[] args) throws IOException { Config config = new ConfigBuilder().withNamespace(null).build(); KubernetesClient client = new DefaultKubernetesClient(config); - Operator operator = new Operator(client, DefaultConfigurationService.instance()); + Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); operator.registerControllerForAllNamespaces(new SchemaController(client)); new FtBasic(new TkFork(new FkRegex("/health", "ALL GOOD!")), 8080).start(Exit.NEVER); diff --git a/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java b/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java index e2ab96617b..034c311c3a 100644 --- a/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java +++ b/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java @@ -9,7 +9,7 @@ public class PureJavaApplicationRunner { public static void main(String[] args) { KubernetesClient client = new DefaultKubernetesClient(); - Operator operator = new Operator(client, DefaultConfigurationService.instance()); + Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); operator.registerController(new CustomServiceController(client)); } } diff --git a/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java b/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java index 239fb64816..51bdab9023 100644 --- a/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java +++ b/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java @@ -25,7 +25,7 @@ public CustomServiceController customServiceController(KubernetesClient client) // Register all controller beans @Bean public Operator operator(KubernetesClient client, List controllers) { - Operator operator = new Operator(client, DefaultConfigurationService.instance()); + Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); controllers.forEach(c -> operator.registerControllerForAllNamespaces(c)); return operator; } diff --git a/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java b/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java index 579c7fed7e..f80f71cdc5 100644 --- a/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java +++ b/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java @@ -22,7 +22,7 @@ public static void main(String[] args) throws IOException { Config config = new ConfigBuilder().withNamespace(null).build(); KubernetesClient client = new DefaultKubernetesClient(config); - Operator operator = new Operator(client, DefaultConfigurationService.instance()); + Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); TomcatController tomcatController = new TomcatController(client); operator.registerControllerForAllNamespaces(tomcatController); diff --git a/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java b/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java index db06f88e6a..b226a123e2 100644 --- a/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java +++ b/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java @@ -23,7 +23,7 @@ public static void main(String[] args) throws IOException { Config config = new ConfigBuilder().withNamespace(null).build(); KubernetesClient client = new DefaultKubernetesClient(config); - Operator operator = new Operator(client, DefaultConfigurationService.instance()); + Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); operator.registerControllerForAllNamespaces(new WebServerController(client)); new FtBasic(new TkFork(new FkRegex("/health", "ALL GOOD!")), 8080).start(Exit.NEVER); From 080fbeee2695e9763204abd8e78c3c48083a4bb1 Mon Sep 17 00:00:00 2001 From: soroosh Date: Fri, 1 Jan 2021 23:17:48 +0100 Subject: [PATCH 2/5] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bbf28ff1ec..21bfb57d48 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ public class Runner { public static void main(String[] args) { Operator operator = new Operator(new DefaultKubernetesClient(), - DefaultConfigurationService.instance()); + DefaultConfigurationService.INSTANCE); operator.register(new WebServerController()); } } From 8ccee4d760fd9516864636fc8b7d469232e928ec Mon Sep 17 00:00:00 2001 From: soroosh Date: Sat, 2 Jan 2021 13:40:01 +0100 Subject: [PATCH 3/5] revert instance reference --- .../runtime/DefaultConfigurationService.java | 5 ++++- .../operator/IntegrationTestSupport.java | 2 +- .../DefaultConfigurationServiceTest.java | 8 +++++--- .../operator/sample/MySQLSchemaOperator.java | 2 +- .../sample/PureJavaApplicationRunner.java | 18 +++++++++++------- .../operator/sample/Config.java | 2 +- .../operator/sample/TomcatOperator.java | 2 +- .../operator/sample/WebServerOperator.java | 2 +- 8 files changed, 25 insertions(+), 16 deletions(-) diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java index ea9f2efd40..ecaf7f356d 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationService.java @@ -9,9 +9,12 @@ public class DefaultConfigurationService implements ConfigurationService { + private static final ConfigurationService instance = new DefaultConfigurationService(); private final Map configurations = new ConcurrentHashMap<>(); - public static final ConfigurationService INSTANCE = new DefaultConfigurationService(); + public static ConfigurationService instance() { + return instance; + } @Override public ControllerConfiguration getConfigurationFor( diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java index 0d2986e1c1..6f54d6aa80 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IntegrationTestSupport.java @@ -54,7 +54,7 @@ public void initialize( CustomResourceDefinitionContext crdContext = CustomResourceDefinitionContext.fromCrd(crd); this.controller = controller; - final var configurationService = DefaultConfigurationService.INSTANCE; + final var configurationService = DefaultConfigurationService.instance(); final var config = configurationService.getConfigurationFor(controller); Class doneableClass = config.getDoneableClass(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java index 102cdbb14b..1844cb6c3d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java @@ -22,7 +22,8 @@ public class DefaultConfigurationServiceTest { @Test public void returnsValuesFromControllerAnnotationFinalizer() { final var controller = new TestCustomResourceController(); - final var configuration = DefaultConfigurationService.INSTANCE.getConfigurationFor(controller); + final var configuration = + DefaultConfigurationService.instance().getConfigurationFor(controller); assertEquals(TestCustomResourceController.CRD_NAME, configuration.getCRDName()); assertEquals( ControllerUtils.getDefaultFinalizerName(configuration.getCRDName()), @@ -35,7 +36,8 @@ public void returnsValuesFromControllerAnnotationFinalizer() { @Test public void returnCustomerFinalizerNameIfSet() { final var controller = new TestCustomFinalizerController(); - final var configuration = DefaultConfigurationService.INSTANCE.getConfigurationFor(controller); + final var configuration = + DefaultConfigurationService.instance().getConfigurationFor(controller); assertEquals(CUSTOM_FINALIZER_NAME, configuration.getFinalizer()); } @@ -44,7 +46,7 @@ public void supportsInnerClassCustomResources() { final var controller = new TestCustomFinalizerController(); assertDoesNotThrow( () -> { - DefaultConfigurationService.INSTANCE.getConfigurationFor(controller).getDoneableClass(); + DefaultConfigurationService.instance().getConfigurationFor(controller).getDoneableClass(); }); } diff --git a/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java b/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java index ccdfc40ad5..dd6aacfb64 100644 --- a/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java +++ b/samples/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java @@ -23,7 +23,7 @@ public static void main(String[] args) throws IOException { Config config = new ConfigBuilder().withNamespace(null).build(); KubernetesClient client = new DefaultKubernetesClient(config); - Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); + Operator operator = new Operator(client, DefaultConfigurationService.instance()); operator.registerControllerForAllNamespaces(new SchemaController(client)); new FtBasic(new TkFork(new FkRegex("/health", "ALL GOOD!")), 8080).start(Exit.NEVER); diff --git a/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java b/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java index 034c311c3a..21212a84c9 100644 --- a/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java +++ b/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java @@ -1,15 +1,19 @@ package io.javaoperatorsdk.operator.sample; -import io.fabric8.kubernetes.client.DefaultKubernetesClient; -import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.Operator; -import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService; +import java.util.concurrent.atomic.LongAccumulator; public class PureJavaApplicationRunner { public static void main(String[] args) { - KubernetesClient client = new DefaultKubernetesClient(); - Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); - operator.registerController(new CustomServiceController(client)); + // KubernetesClient client = new DefaultKubernetesClient(); + // Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); + // operator.registerController(new CustomServiceController(client)); + + final var acc = new LongAccumulator(Long::min, Integer.MAX_VALUE); + acc.accumulate(10); + acc.accumulate(20); + acc.accumulate(90); + + System.out.println(acc.get()); } } diff --git a/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java b/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java index 51bdab9023..239fb64816 100644 --- a/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java +++ b/samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java @@ -25,7 +25,7 @@ public CustomServiceController customServiceController(KubernetesClient client) // Register all controller beans @Bean public Operator operator(KubernetesClient client, List controllers) { - Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); + Operator operator = new Operator(client, DefaultConfigurationService.instance()); controllers.forEach(c -> operator.registerControllerForAllNamespaces(c)); return operator; } diff --git a/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java b/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java index f80f71cdc5..579c7fed7e 100644 --- a/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java +++ b/samples/tomcat/src/main/java/io/javaoperatorsdk/operator/sample/TomcatOperator.java @@ -22,7 +22,7 @@ public static void main(String[] args) throws IOException { Config config = new ConfigBuilder().withNamespace(null).build(); KubernetesClient client = new DefaultKubernetesClient(config); - Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); + Operator operator = new Operator(client, DefaultConfigurationService.instance()); TomcatController tomcatController = new TomcatController(client); operator.registerControllerForAllNamespaces(tomcatController); diff --git a/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java b/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java index b226a123e2..db06f88e6a 100644 --- a/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java +++ b/samples/webserver/src/main/java/io/javaoperatorsdk/operator/sample/WebServerOperator.java @@ -23,7 +23,7 @@ public static void main(String[] args) throws IOException { Config config = new ConfigBuilder().withNamespace(null).build(); KubernetesClient client = new DefaultKubernetesClient(config); - Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); + Operator operator = new Operator(client, DefaultConfigurationService.instance()); operator.registerControllerForAllNamespaces(new WebServerController(client)); new FtBasic(new TkFork(new FkRegex("/health", "ALL GOOD!")), 8080).start(Exit.NEVER); From 418cf5d196f0dad95869c26a7715a1a1573c0710 Mon Sep 17 00:00:00 2001 From: soroosh Date: Sat, 2 Jan 2021 13:41:00 +0100 Subject: [PATCH 4/5] revert instance reference --- .../sample/PureJavaApplicationRunner.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java b/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java index 21212a84c9..e2ab96617b 100644 --- a/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java +++ b/samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java @@ -1,19 +1,15 @@ package io.javaoperatorsdk.operator.sample; -import java.util.concurrent.atomic.LongAccumulator; +import io.fabric8.kubernetes.client.DefaultKubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.operator.Operator; +import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService; public class PureJavaApplicationRunner { public static void main(String[] args) { - // KubernetesClient client = new DefaultKubernetesClient(); - // Operator operator = new Operator(client, DefaultConfigurationService.INSTANCE); - // operator.registerController(new CustomServiceController(client)); - - final var acc = new LongAccumulator(Long::min, Integer.MAX_VALUE); - acc.accumulate(10); - acc.accumulate(20); - acc.accumulate(90); - - System.out.println(acc.get()); + KubernetesClient client = new DefaultKubernetesClient(); + Operator operator = new Operator(client, DefaultConfigurationService.instance()); + operator.registerController(new CustomServiceController(client)); } } From 130d0a402ea4eeb39a570cb51279484d124af1c1 Mon Sep 17 00:00:00 2001 From: soroosh Date: Sat, 2 Jan 2021 13:41:26 +0100 Subject: [PATCH 5/5] revert instance reference --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 21bfb57d48..bbf28ff1ec 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ public class Runner { public static void main(String[] args) { Operator operator = new Operator(new DefaultKubernetesClient(), - DefaultConfigurationService.INSTANCE); + DefaultConfigurationService.instance()); operator.register(new WebServerController()); } }