From 39200dacbbf1a058a66b7541685e6ba8c16b7ba9 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Mon, 4 Jan 2021 16:59:27 +0100 Subject: [PATCH 1/9] fix: properly index otherwise ignored dependency Fixes #272. The core framework dependency needs to be a runtime dependency so that it gets put in the extension-using application. We also need to index the dependency explicitly because Quarkus doesn't do it automatically (as things might get unruly fast). --- .../extension/deployment/QuarkusExtensionProcessor.java | 7 +++++++ operator-framework-quarkus-extension/runtime/pom.xml | 1 - 2 files changed, 7 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 cdf308d5bf..79c673a6f6 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 @@ -21,6 +21,7 @@ import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.GeneratedClassBuildItem; +import io.quarkus.deployment.builditem.IndexDependencyBuildItem; import io.quarkus.gizmo.ClassCreator; import io.quarkus.gizmo.ClassOutput; import io.quarkus.gizmo.MethodCreator; @@ -55,6 +56,12 @@ FeatureBuildItem feature() { return new FeatureBuildItem(FEATURE); } + @BuildStep + void indexSDKDependencies(BuildProducer indexDependency) { + indexDependency.produce( + new IndexDependencyBuildItem("io.javaoperatorsdk", "operator-framework-core")); + } + @BuildStep @Record(ExecutionTime.RUNTIME_INIT) void createConfigurationServiceAndOperator( diff --git a/operator-framework-quarkus-extension/runtime/pom.xml b/operator-framework-quarkus-extension/runtime/pom.xml index f8b30000bb..f058e65eab 100644 --- a/operator-framework-quarkus-extension/runtime/pom.xml +++ b/operator-framework-quarkus-extension/runtime/pom.xml @@ -18,7 +18,6 @@ io.javaoperatorsdk operator-framework-core ${project.version} - compile io.quarkus From 6e97452a164e23490e4f78f5daf79242b44f2fd0 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 5 Jan 2021 14:53:15 +0100 Subject: [PATCH 2/9] feat: add tests (not currently working) --- .../deployment/pom.xml | 16 +++++++++++ .../extension/deployment/TestResource.java | 5 ++++ .../QuarkusExtensionProcessorTest.java | 28 +++++++++++++++++++ .../extension/deployment/TestController.java | 20 +++++++++++++ operator-framework-quarkus-extension/pom.xml | 4 +++ .../runtime/pom.xml | 10 ------- 6 files changed, 73 insertions(+), 10 deletions(-) create mode 100644 operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java create mode 100644 operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java create mode 100644 operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java diff --git a/operator-framework-quarkus-extension/deployment/pom.xml b/operator-framework-quarkus-extension/deployment/pom.xml index fb561c12cd..2fff51c3f4 100644 --- a/operator-framework-quarkus-extension/deployment/pom.xml +++ b/operator-framework-quarkus-extension/deployment/pom.xml @@ -43,6 +43,11 @@ io.quarkus quarkus-smallrye-health-deployment + + io.quarkus + quarkus-junit5-internal + test + @@ -60,6 +65,17 @@ + + org.apache.maven.plugins + maven-surefire-plugin + + + org.jboss.logmanager.LogManager + + ${maven.home} + + + diff --git a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java new file mode 100644 index 0000000000..e5a7be8c86 --- /dev/null +++ b/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java @@ -0,0 +1,5 @@ +package io.javaoperatorsdk.quarkus.extension.deployment; + +import io.fabric8.kubernetes.client.CustomResource; + +public class TestResource extends CustomResource {} diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java new file mode 100644 index 0000000000..f9efc3d5b9 --- /dev/null +++ b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java @@ -0,0 +1,28 @@ +package io.javaoperatorsdk.quarkus.extension.deployment; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import io.javaoperatorsdk.operator.api.config.ConfigurationService; +import io.quarkus.test.QuarkusUnitTest; +import javax.inject.Inject; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +public class QuarkusExtensionProcessorTest { + + @RegisterExtension + static final QuarkusUnitTest config = + new QuarkusUnitTest().setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + + @Inject TestController controller; + @Inject ConfigurationService configurationService; + + @Test + void test() { + assertNotNull(controller); + assertNotNull(configurationService); + assertNotNull(configurationService.getConfigurationFor(controller)); + } +} diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java new file mode 100644 index 0000000000..c660a3581e --- /dev/null +++ b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java @@ -0,0 +1,20 @@ +package io.javaoperatorsdk.quarkus.extension.deployment; + +import io.javaoperatorsdk.operator.api.Context; +import io.javaoperatorsdk.operator.api.DeleteControl; +import io.javaoperatorsdk.operator.api.ResourceController; +import io.javaoperatorsdk.operator.api.UpdateControl; + +public class TestController implements ResourceController { + + @Override + public DeleteControl deleteResource(TestResource resource, Context context) { + return null; + } + + @Override + public UpdateControl createOrUpdateResource( + TestResource resource, Context context) { + return null; + } +} diff --git a/operator-framework-quarkus-extension/pom.xml b/operator-framework-quarkus-extension/pom.xml index 623d2d1dff..e0833a4f3b 100644 --- a/operator-framework-quarkus-extension/pom.xml +++ b/operator-framework-quarkus-extension/pom.xml @@ -47,6 +47,10 @@ maven-compiler-plugin ${compiler-plugin.version} + + maven-surefire-plugin + ${maven.surefire.version} + diff --git a/operator-framework-quarkus-extension/runtime/pom.xml b/operator-framework-quarkus-extension/runtime/pom.xml index f058e65eab..17ed9ac7bf 100644 --- a/operator-framework-quarkus-extension/runtime/pom.xml +++ b/operator-framework-quarkus-extension/runtime/pom.xml @@ -77,16 +77,6 @@ - - maven-surefire-plugin - ${maven.surefire.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - - - From 93b544f272767a7daed94a3650854b64d9c7b8d8 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 12:58:06 +0100 Subject: [PATCH 3/9] feat: inform users that controllers must be annotated with @Controller --- .../extension/deployment/QuarkusExtensionProcessor.java | 7 +++++++ 1 file changed, 7 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 79c673a6f6..9a407c0dc2 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 @@ -139,6 +139,13 @@ private ControllerConfiguration createControllerConfiguration( // generate configuration final var controllerAnnotation = info.classAnnotation(CONTROLLER); + if (controllerAnnotation == null) { + throw new IllegalArgumentException( + resourceControllerClassName + + " is missing the " + + Controller.class.getCanonicalName() + + " annotation"); + } final var crdName = valueOrDefault( controllerAnnotation, "crdName", AnnotationValue::asString, EXCEPTION_SUPPLIER); From 3fc8a38714d2be2e3a112a80890f9fc5e8896c2f Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 12:59:55 +0100 Subject: [PATCH 4/9] fix: add missing annotation --- .../quarkus/extension/deployment/TestController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java index c660a3581e..4d050232b7 100644 --- a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java +++ b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java @@ -1,10 +1,12 @@ package io.javaoperatorsdk.quarkus.extension.deployment; import io.javaoperatorsdk.operator.api.Context; +import io.javaoperatorsdk.operator.api.Controller; import io.javaoperatorsdk.operator.api.DeleteControl; import io.javaoperatorsdk.operator.api.ResourceController; import io.javaoperatorsdk.operator.api.UpdateControl; +@Controller(crdName = "test.example.com") public class TestController implements ResourceController { @Override From 247b02ba595bf1407301edd63e273dff8e209b32 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 13:03:07 +0100 Subject: [PATCH 5/9] fix: use QuarkusProdModeTest to bypass kubernetes extension issues --- .../deployment/QuarkusExtensionProcessorTest.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java index f9efc3d5b9..1d61fc547b 100644 --- a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java +++ b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import io.javaoperatorsdk.operator.api.config.ConfigurationService; -import io.quarkus.test.QuarkusUnitTest; +import io.quarkus.test.QuarkusProdModeTest; import javax.inject.Inject; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.spec.JavaArchive; @@ -13,8 +13,12 @@ public class QuarkusExtensionProcessorTest { @RegisterExtension - static final QuarkusUnitTest config = - new QuarkusUnitTest().setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + static final QuarkusProdModeTest config = + new QuarkusProdModeTest() + .setArchiveProducer( + () -> ShrinkWrap.create(JavaArchive.class).addClasses(TestController.class)) + .setApplicationName("basic-app") + .setApplicationVersion("0.1-SNAPSHOT"); @Inject TestController controller; @Inject ConfigurationService configurationService; From ba20028b09521f19d44afaca2bb5ac221b018090 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 17:50:50 +0100 Subject: [PATCH 6/9] fix: test now uses REST app to verify that beans are properly injected This is needed because we cannot currently use QuarkusUnitTest because of an issue with the kubernetes extension and it's not possible to inject beans in a test using QuarkusProdModeTest. The workaround then is to create a separate app that's started using QuarkusProdModeTest and that exposes some information that we can check over REST about the injected beans to verify that they are indeed properly injected. --- .../deployment/pom.xml | 15 +++++ .../QuarkusExtensionProcessorTest.java | 50 +++++++++++++---- operator-framework-quarkus-extension/pom.xml | 1 + .../tests/pom.xml | 56 +++++++++++++++++++ .../quarkus/it}/TestController.java | 6 +- .../quarkus/it/TestOperatorApp.java | 28 ++++++++++ .../quarkus/it}/TestResource.java | 2 +- 7 files changed, 144 insertions(+), 14 deletions(-) create mode 100644 operator-framework-quarkus-extension/tests/pom.xml rename operator-framework-quarkus-extension/{deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment => tests/src/main/java/io/javaoperatorsdk/quarkus/it}/TestController.java (74%) create mode 100644 operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestOperatorApp.java rename operator-framework-quarkus-extension/{deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment => tests/src/main/java/io/javaoperatorsdk/quarkus/it}/TestResource.java (65%) diff --git a/operator-framework-quarkus-extension/deployment/pom.xml b/operator-framework-quarkus-extension/deployment/pom.xml index 2fff51c3f4..6fb726939b 100644 --- a/operator-framework-quarkus-extension/deployment/pom.xml +++ b/operator-framework-quarkus-extension/deployment/pom.xml @@ -48,6 +48,21 @@ quarkus-junit5-internal test + + io.rest-assured + rest-assured + test + + + org.assertj + assertj-core + test + + + io.javaoperatorsdk + operator-framework-quarkus-tests-support + ${project.version} + diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java index 1d61fc547b..9a00ac24d4 100644 --- a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java +++ b/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java @@ -1,32 +1,60 @@ package io.javaoperatorsdk.quarkus.extension.deployment; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; -import io.javaoperatorsdk.operator.api.config.ConfigurationService; +import io.javaoperatorsdk.quarkus.it.TestController; +import io.javaoperatorsdk.quarkus.it.TestOperatorApp; +import io.javaoperatorsdk.quarkus.it.TestResource; import io.quarkus.test.QuarkusProdModeTest; -import javax.inject.Inject; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +/** + * This tests creates an application based on the application code found in the {@code + * operator-framework-quarkus-tests-support} module. The app is started and accessed over REST to + * assess that injected values are present and what we expect. + */ public class QuarkusExtensionProcessorTest { @RegisterExtension static final QuarkusProdModeTest config = new QuarkusProdModeTest() .setArchiveProducer( - () -> ShrinkWrap.create(JavaArchive.class).addClasses(TestController.class)) + () -> + ShrinkWrap.create(JavaArchive.class) + .addClasses(TestOperatorApp.class, TestController.class)) .setApplicationName("basic-app") - .setApplicationVersion("0.1-SNAPSHOT"); + .setApplicationVersion("0.1-SNAPSHOT") + .setRun(true); - @Inject TestController controller; - @Inject ConfigurationService configurationService; + @Test + void controllerShouldExist() { + // first check that we're not always returning true for any controller name :) + given().when().get("/operator/does_not_exist").then().statusCode(200).body(is("false")); + + // given the name of the TestController, the app should reply true meaning that it is indeed + // injected + given().when().get("/operator/" + TestController.NAME).then().statusCode(200).body(is("true")); + } @Test - void test() { - assertNotNull(controller); - assertNotNull(configurationService); - assertNotNull(configurationService.getConfigurationFor(controller)); + void configurationForControllerShouldExist() { + // check that the config for the test controller can be retrieved and is conform to our + // expectations + final var resourceName = TestResource.class.getCanonicalName(); + given() + .when() + .get("/operator/" + TestController.NAME + "/config") + .then() + .statusCode(200) + .body( + "customResourceClass", equalTo(resourceName), + "doneableClass", equalTo(resourceName + "Doneable"), + "name", equalTo(TestController.NAME), + "crdName", equalTo(TestController.CRD_NAME)); } } diff --git a/operator-framework-quarkus-extension/pom.xml b/operator-framework-quarkus-extension/pom.xml index e0833a4f3b..b04cd947cb 100644 --- a/operator-framework-quarkus-extension/pom.xml +++ b/operator-framework-quarkus-extension/pom.xml @@ -27,6 +27,7 @@ deployment runtime + tests diff --git a/operator-framework-quarkus-extension/tests/pom.xml b/operator-framework-quarkus-extension/tests/pom.xml new file mode 100644 index 0000000000..fbe7d0ac76 --- /dev/null +++ b/operator-framework-quarkus-extension/tests/pom.xml @@ -0,0 +1,56 @@ + + + + operator-framework-quarkus-extension-parent + io.javaoperatorsdk + 1.6.2-SNAPSHOT + + 4.0.0 + + operator-framework-quarkus-tests-support + Operator SDK - Quarkus Extension - Tests Support + + + + 11 + 11 + + + + + io.javaoperatorsdk + operator-framework-quarkus-extension + ${project.version} + + + io.quarkus + quarkus-resteasy-jackson + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + true + + + + io.quarkus + quarkus-maven-plugin + ${quarkus.version} + + + + build + + + + + + + \ No newline at end of file diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java b/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestController.java similarity index 74% rename from operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java rename to operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestController.java index 4d050232b7..d29fc56d6e 100644 --- a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/TestController.java +++ b/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestController.java @@ -1,4 +1,4 @@ -package io.javaoperatorsdk.quarkus.extension.deployment; +package io.javaoperatorsdk.quarkus.it; import io.javaoperatorsdk.operator.api.Context; import io.javaoperatorsdk.operator.api.Controller; @@ -6,8 +6,10 @@ import io.javaoperatorsdk.operator.api.ResourceController; import io.javaoperatorsdk.operator.api.UpdateControl; -@Controller(crdName = "test.example.com") +@Controller(crdName = TestController.CRD_NAME, name = TestController.NAME) public class TestController implements ResourceController { + public static final String NAME = "test"; + public static final String CRD_NAME = "test.example.com"; @Override public DeleteControl deleteResource(TestResource resource, Context context) { diff --git a/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestOperatorApp.java b/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestOperatorApp.java new file mode 100644 index 0000000000..ed6316ab0a --- /dev/null +++ b/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestOperatorApp.java @@ -0,0 +1,28 @@ +package io.javaoperatorsdk.quarkus.it; + +import io.javaoperatorsdk.operator.api.config.ConfigurationService; +import io.javaoperatorsdk.operator.api.config.ControllerConfiguration; +import javax.inject.Inject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +@Path("/operator") +public class TestOperatorApp { + + @Inject TestController controller; + @Inject ConfigurationService configurationService; + + @GET + @Path("{name}") + // @Produces(MediaType.TEXT_PLAIN) + public boolean getController(@PathParam("name") String name) { + return name.equals(controller.getName()); + } + + @GET + @Path("{name}/config") + public ControllerConfiguration getConfig(@PathParam("name") String name) { + return getController(name) ? configurationService.getConfigurationFor(controller) : null; + } +} diff --git a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java b/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestResource.java similarity index 65% rename from operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java rename to operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestResource.java index e5a7be8c86..92a49075b5 100644 --- a/operator-framework-quarkus-extension/deployment/src/main/java/io/javaoperatorsdk/quarkus/extension/deployment/TestResource.java +++ b/operator-framework-quarkus-extension/tests/src/main/java/io/javaoperatorsdk/quarkus/it/TestResource.java @@ -1,4 +1,4 @@ -package io.javaoperatorsdk.quarkus.extension.deployment; +package io.javaoperatorsdk.quarkus.it; import io.fabric8.kubernetes.client.CustomResource; From c585b19aaeb7fc718f731bfd902b2ab153c829b0 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 21:05:31 +0100 Subject: [PATCH 7/9] fix: remove duplicated dependency --- operator-framework-spring-boot-starter-test/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/operator-framework-spring-boot-starter-test/pom.xml b/operator-framework-spring-boot-starter-test/pom.xml index 775b2aefc6..11ad82657d 100644 --- a/operator-framework-spring-boot-starter-test/pom.xml +++ b/operator-framework-spring-boot-starter-test/pom.xml @@ -32,12 +32,6 @@ - - io.fabric8 - kubernetes-server-mock - 4.12.0 - - org.springframework.boot spring-boot-starter From dc0dce7e0280a6374da26651037c61d7a216c52a Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 21:07:40 +0100 Subject: [PATCH 8/9] fix: move test to tests module to avoid cyclic dependency issue --- .../deployment/pom.xml | 31 ------------------- .../tests/pom.xml | 27 ++++++++++++++++ .../it}/QuarkusExtensionProcessorTest.java | 12 +++---- 3 files changed, 31 insertions(+), 39 deletions(-) rename operator-framework-quarkus-extension/{deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment => tests/src/test/java/io/javaoperatorsdk/quarkus/it}/QuarkusExtensionProcessorTest.java (79%) diff --git a/operator-framework-quarkus-extension/deployment/pom.xml b/operator-framework-quarkus-extension/deployment/pom.xml index 6fb726939b..fb561c12cd 100644 --- a/operator-framework-quarkus-extension/deployment/pom.xml +++ b/operator-framework-quarkus-extension/deployment/pom.xml @@ -43,26 +43,6 @@ io.quarkus quarkus-smallrye-health-deployment - - io.quarkus - quarkus-junit5-internal - test - - - io.rest-assured - rest-assured - test - - - org.assertj - assertj-core - test - - - io.javaoperatorsdk - operator-framework-quarkus-tests-support - ${project.version} - @@ -80,17 +60,6 @@ - - org.apache.maven.plugins - maven-surefire-plugin - - - org.jboss.logmanager.LogManager - - ${maven.home} - - - diff --git a/operator-framework-quarkus-extension/tests/pom.xml b/operator-framework-quarkus-extension/tests/pom.xml index fbe7d0ac76..d2f6fd1085 100644 --- a/operator-framework-quarkus-extension/tests/pom.xml +++ b/operator-framework-quarkus-extension/tests/pom.xml @@ -28,6 +28,21 @@ io.quarkus quarkus-resteasy-jackson + + io.quarkus + quarkus-junit5-internal + test + + + io.rest-assured + rest-assured + test + + + org.assertj + assertj-core + test + @@ -51,6 +66,18 @@ + + org.apache.maven.plugins + maven-surefire-plugin + + + + org.jboss.logmanager.LogManager + + ${maven.home} + + + \ No newline at end of file diff --git a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java b/operator-framework-quarkus-extension/tests/src/test/java/io/javaoperatorsdk/quarkus/it/QuarkusExtensionProcessorTest.java similarity index 79% rename from operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java rename to operator-framework-quarkus-extension/tests/src/test/java/io/javaoperatorsdk/quarkus/it/QuarkusExtensionProcessorTest.java index 9a00ac24d4..8b3355c6a0 100644 --- a/operator-framework-quarkus-extension/deployment/src/test/java/io/javaoperatorsdk/quarkus/extension/deployment/QuarkusExtensionProcessorTest.java +++ b/operator-framework-quarkus-extension/tests/src/test/java/io/javaoperatorsdk/quarkus/it/QuarkusExtensionProcessorTest.java @@ -1,12 +1,9 @@ -package io.javaoperatorsdk.quarkus.extension.deployment; +package io.javaoperatorsdk.quarkus.it; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; -import io.javaoperatorsdk.quarkus.it.TestController; -import io.javaoperatorsdk.quarkus.it.TestOperatorApp; -import io.javaoperatorsdk.quarkus.it.TestResource; import io.quarkus.test.QuarkusProdModeTest; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.spec.JavaArchive; @@ -14,9 +11,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; /** - * This tests creates an application based on the application code found in the {@code - * operator-framework-quarkus-tests-support} module. The app is started and accessed over REST to - * assess that injected values are present and what we expect. + * This tests creates and starts an application accessed over REST to assess that injected values + * are present and what we expect. */ public class QuarkusExtensionProcessorTest { @@ -26,7 +22,7 @@ public class QuarkusExtensionProcessorTest { .setArchiveProducer( () -> ShrinkWrap.create(JavaArchive.class) - .addClasses(TestOperatorApp.class, TestController.class)) + .addClasses(TestOperatorApp.class, TestController.class, TestResource.class)) .setApplicationName("basic-app") .setApplicationVersion("0.1-SNAPSHOT") .setRun(true); From e3e3e2f7f3bc1e4716b02fb7fdea419866549074 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 6 Jan 2021 21:09:32 +0100 Subject: [PATCH 9/9] refactor: rename artifact to operator-framework-quarkus-tests --- operator-framework-quarkus-extension/tests/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/operator-framework-quarkus-extension/tests/pom.xml b/operator-framework-quarkus-extension/tests/pom.xml index d2f6fd1085..5c5c183153 100644 --- a/operator-framework-quarkus-extension/tests/pom.xml +++ b/operator-framework-quarkus-extension/tests/pom.xml @@ -9,8 +9,8 @@ 4.0.0 - operator-framework-quarkus-tests-support - Operator SDK - Quarkus Extension - Tests Support + operator-framework-quarkus-tests + Operator SDK - Quarkus Extension - Tests