From 3dcc202b13285da1e74cc294212038d786594c14 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 18 Dec 2020 14:56:05 +0100 Subject: [PATCH 1/4] fix: wrong Function class being passed --- .../extension/deployment/QuarkusExtensionProcessor.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java index 42c58d759e..f367a3b775 100644 --- a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java +++ b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java @@ -112,15 +112,15 @@ private ControllerConfiguration createControllerConfiguration( .superClass(crDoneableClassName) .build()) { - MethodCreator ctor = cc.getMethodCreator("", void.class.getName(), crType); + final var functionName = io.fabric8.kubernetes.api.builder.Function.class.getName(); + MethodCreator ctor = + cc.getMethodCreator("", void.class.getName(), crType, functionName); ctor.setModifiers(Modifier.PUBLIC); - final var functionName = Function.class.getName(); ctor.invokeSpecialMethod( MethodDescriptor.ofConstructor(crDoneableClassName, crType, functionName), ctor.getThis(), ctor.getMethodParam(0), - ctor.invokeStaticMethod( - MethodDescriptor.ofMethod(functionName, "identity", functionName))); + ctor.getMethodParam(1)); } // generate configuration From 21a461be0403cf7e304eb799f74a29e07c4ec535 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 18 Dec 2020 16:43:07 +0100 Subject: [PATCH 2/4] fix: doneable implementation is now properly parameterized --- .../extension/deployment/QuarkusExtensionProcessor.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java index f367a3b775..0b9f8fa688 100644 --- a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java +++ b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java @@ -1,5 +1,6 @@ package io.javaoperatorsdk.quarkus.extension.deployment; +import io.fabric8.kubernetes.client.CustomResource; import io.fabric8.kubernetes.client.CustomResourceDoneable; import io.javaoperatorsdk.operator.ControllerUtils; import io.javaoperatorsdk.operator.api.Controller; @@ -107,6 +108,10 @@ private ControllerConfiguration createControllerConfiguration( final var crDoneableClassName = CustomResourceDoneable.class.getName(); try (ClassCreator cc = ClassCreator.builder() + .signature( + String.format( + "Lio/fabric8/kubernetes/client/CustomResourceDoneable;", + crType.replace('.', '/'))) .classOutput(classOutput) .className(doneableClassName) .superClass(crDoneableClassName) From e74da079884b52a122e64fa437e570e302de03c7 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 18 Dec 2020 16:45:05 +0100 Subject: [PATCH 3/4] fix: need to call super with a CustomResource as first arg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This isn't clear why but otherwise the constructor from the super class won't be found… :( --- .../extension/deployment/QuarkusExtensionProcessor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java index 0b9f8fa688..015d05c374 100644 --- a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java +++ b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java @@ -122,7 +122,8 @@ private ControllerConfiguration createControllerConfiguration( cc.getMethodCreator("", void.class.getName(), crType, functionName); ctor.setModifiers(Modifier.PUBLIC); ctor.invokeSpecialMethod( - MethodDescriptor.ofConstructor(crDoneableClassName, crType, functionName), + MethodDescriptor.ofConstructor( + crDoneableClassName, CustomResource.class.getName(), functionName), ctor.getThis(), ctor.getMethodParam(0), ctor.getMethodParam(1)); From d036fe92cb74a7d2815c3ab418058af6885c1f85 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 18 Dec 2020 17:27:10 +0100 Subject: [PATCH 4/4] fix: need to return null from constructor --- .../quarkus/extension/deployment/QuarkusExtensionProcessor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java index 015d05c374..cdf308d5bf 100644 --- a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java +++ b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessor.java @@ -127,6 +127,7 @@ private ControllerConfiguration createControllerConfiguration( ctor.getThis(), ctor.getMethodParam(0), ctor.getMethodParam(1)); + ctor.returnValue(null); } // generate configuration