diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index c66ea21aa..c7e992f70 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -112,6 +112,7 @@ jobs: native-image-project: - :camel-k-quarkus-itests-core - :camel-k-quarkus-itests-cron + - :camel-k-quarkus-itests-master - :camel-k-quarkus-itests-kamelet - :camel-k-quarkus-itests-knative - :camel-k-quarkus-itests-loader-xml diff --git a/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentProcessor.java b/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentProcessor.java index 2884b8a44..8091756ca 100644 --- a/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentProcessor.java +++ b/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentProcessor.java @@ -27,6 +27,7 @@ import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem; import org.apache.camel.k.Constants; +import org.apache.camel.k.ContextCustomizer; import org.apache.camel.k.SourceDefinition; import org.apache.camel.k.core.quarkus.RuntimeRecorder; import org.apache.camel.quarkus.core.deployment.spi.CamelContextCustomizerBuildItem; @@ -57,9 +58,17 @@ List servicePatterns() { } @BuildStep - List registerClasses() { - return List.of( - new ReflectiveClassBuildItem(true, false, SourceDefinition.class) + List registerClasses(CombinedIndexBuildItem index) { + return List.of( + new ReflectiveClassBuildItem( + true, + false, + SourceDefinition.class), + new ReflectiveClassBuildItem( + true, + false, + getAllKnownImplementors(index.getIndex(), ContextCustomizer.class, ci -> ci.name().toString()) + .toArray(String[]::new)) ); } diff --git a/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentSupport.java b/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentSupport.java index 5715ba2a1..768fd26c7 100644 --- a/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentSupport.java +++ b/camel-k-quarkus/camel-k-quarkus-core/deployment/src/main/java/org/apache/camel/k/core/quarkus/deployment/DeploymentSupport.java @@ -35,62 +35,62 @@ private DeploymentSupport() { public static Iterable getAllKnownImplementors(IndexView view, String name) { return view.getAllKnownImplementors(DotName.createSimple(name)); } - public static Iterable getAllKnownImplementors(IndexView view, String name, Function mapper) { - return stream(getAllKnownImplementors(view, name)).map(mapper).collect(Collectors.toList()); + public static Stream getAllKnownImplementors(IndexView view, String name, Function mapper) { + return stream(getAllKnownImplementors(view, name)).map(mapper); } public static Iterable getAllKnownImplementors(IndexView view, Class type) { return view.getAllKnownImplementors(DotName.createSimple(type.getName())); } - public static Iterable getAllKnownImplementors(IndexView view, Class type, Function mapper) { - return stream(getAllKnownImplementors(view, type)).map(mapper).collect(Collectors.toList()); + public static Stream getAllKnownImplementors(IndexView view, Class type, Function mapper) { + return stream(getAllKnownImplementors(view, type)).map(mapper); } public static Iterable getAllKnownImplementors(IndexView view, DotName type) { return view.getAllKnownImplementors(type); } - public static Iterable getAllKnownImplementors(IndexView view, DotName type, Function mapper) { - return stream(getAllKnownImplementors(view, type)).map(mapper).collect(Collectors.toList()); + public static Stream getAllKnownImplementors(IndexView view, DotName type, Function mapper) { + return stream(getAllKnownImplementors(view, type)).map(mapper); } public static Iterable getAllKnownSubclasses(IndexView view, String name) { return view.getAllKnownSubclasses(DotName.createSimple(name)); } - public static Iterable getAllKnownSubclasses(IndexView view, String name, Function mapper) { - return stream(getAllKnownSubclasses(view, name)).map(mapper).collect(Collectors.toList()); + public static Stream getAllKnownSubclasses(IndexView view, String name, Function mapper) { + return stream(getAllKnownSubclasses(view, name)).map(mapper); } public static Iterable getAllKnownSubclasses(IndexView view, Class type) { return view.getAllKnownSubclasses(DotName.createSimple(type.getName())); } - public static Iterable getAllKnownSubclasses(IndexView view, Class type, Function mapper) { - return stream(getAllKnownSubclasses(view, type)).map(mapper).collect(Collectors.toList()); + public static Stream getAllKnownSubclasses(IndexView view, Class type, Function mapper) { + return stream(getAllKnownSubclasses(view, type)).map(mapper); } public static Iterable getAllKnownSubclasses(IndexView view, DotName type) { return view.getAllKnownSubclasses(type); } - public static Iterable getAllKnownSubclasses(IndexView view, DotName type, Function mapper) { - return stream(getAllKnownSubclasses(view, type)).map(mapper).collect(Collectors.toList()); + public static Stream getAllKnownSubclasses(IndexView view, DotName type, Function mapper) { + return stream(getAllKnownSubclasses(view, type)).map(mapper); } public static Iterable getAnnotated(IndexView view, String name) { return getAnnotated(view, DotName.createSimple(name)); } - public static Iterable getAnnotated(IndexView view, String name, Function mapper) { - return stream(getAnnotated(view, name)).map(mapper).collect(Collectors.toList()); + public static Stream getAnnotated(IndexView view, String name, Function mapper) { + return stream(getAnnotated(view, name)).map(mapper); } public static Iterable getAnnotated(IndexView view, Class type) { return getAnnotated(view, DotName.createSimple(type.getName())); } - public static Iterable getAnnotated(IndexView view, Class type, Function mapper) { - return stream(getAnnotated(view, type)).map(mapper).collect(Collectors.toList()); + public static Stream getAnnotated(IndexView view, Class type, Function mapper) { + return stream(getAnnotated(view, type)).map(mapper); } public static Iterable getAnnotated(IndexView view, DotName type) { diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/pom.xml b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/pom.xml new file mode 100644 index 000000000..2d783cfd6 --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/pom.xml @@ -0,0 +1,163 @@ + + + + + org.apache.camel.k + camel-k-quarkus-itests + 1.5.1-SNAPSHOT + + 4.0.0 + + camel-k-quarkus-itests-master + + + + org.apache.camel.k + camel-k-runtime-quarkus + + + org.apache.camel.k + camel-k-quarkus-master + + + + + io.quarkus + quarkus-jsonb + + + io.quarkus + quarkus-resteasy + + + io.quarkus + quarkus-resteasy-jsonb + + + + + io.quarkus + quarkus-junit5 + test + + + io.rest-assured + rest-assured + test + + + org.assertj + assertj-core + test + + + org.hamcrest + hamcrest-core + test + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper-maven-plugin-version} + + + reserve-network-port + + reserve-network-port + + process-resources + + + test.http.port.jvm + test.http.port.native + + + + + + + io.quarkus + quarkus-maven-plugin + ${quarkus-version} + + + + build + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + ${test.http.port.jvm} + org.jboss.logmanager.LogManager + + + + + + + + + native + + + native + + + + native + --language:js + + + + + org.apache.maven.plugins + maven-failsafe-plugin + + + + integration-test + verify + + + + ${test.http.port.native} + ${project.build.directory}/${project.build.finalName}-runner + + + + + + + + + + + + diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/main/java/org/apache/camel/k/quarkus/master/Application.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/main/java/org/apache/camel/k/quarkus/master/Application.java new file mode 100644 index 000000000..3135739d6 --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/main/java/org/apache/camel/k/quarkus/master/Application.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.quarkus.master; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.json.Json; +import javax.json.JsonObject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.apache.camel.CamelContext; +import org.apache.camel.component.kubernetes.cluster.KubernetesClusterService; + +@Path("/test") +@ApplicationScoped +public class Application { + @Inject + CamelContext context; + + @GET + @Path("/inspect") + @Produces(MediaType.APPLICATION_JSON) + public JsonObject findCronInterceptor() { + KubernetesClusterService service = context.hasService(KubernetesClusterService.class); + + return Json.createObjectBuilder() + .add("cluster-service", service != null ? service.getClass().getName() : "") + .add("cluster-service-cm", service != null ? service.getConfigMapName() : "") + + .build(); + } +} diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/main/resources/application.properties b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/main/resources/application.properties new file mode 100644 index 000000000..95370157d --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/main/resources/application.properties @@ -0,0 +1,33 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- + +# +# Quarkus +# +quarkus.log.console.enable = true +quarkus.banner.enabled = false + +# +# Quarkus :: Camel +# +quarkus.camel.routes-discovery.enabled = false + +# +# Camel K +# +camel.k.customizer.master.enabled = true +camel.k.customizer.master.config-map-name = camel-k-cm \ No newline at end of file diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/test/java/org/apache/camel/k/quarkus/master/MasterIT.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/test/java/org/apache/camel/k/quarkus/master/MasterIT.java new file mode 100644 index 000000000..97a79250a --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/test/java/org/apache/camel/k/quarkus/master/MasterIT.java @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.quarkus.master; + +import io.quarkus.test.junit.NativeImageTest; + +@NativeImageTest +public class MasterIT extends MasterTest { +} \ No newline at end of file diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/test/java/org/apache/camel/k/quarkus/master/MasterTest.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/test/java/org/apache/camel/k/quarkus/master/MasterTest.java new file mode 100644 index 000000000..3db2a721a --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-master/src/test/java/org/apache/camel/k/quarkus/master/MasterTest.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.quarkus.master; + +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.path.json.JsonPath; +import org.apache.camel.component.kubernetes.cluster.KubernetesClusterService; +import org.junit.jupiter.api.Test; + +import static io.restassured.RestAssured.when; +import static org.assertj.core.api.Assertions.assertThat; + +@QuarkusTest +public class MasterTest { + @Test + public void hasClusterService() { + JsonPath path = when() + .get("/test/inspect") + .then() + .statusCode(200) + .extract().jsonPath(); + + assertThat(path.getString("cluster-service")).isEqualTo(KubernetesClusterService.class.getName()); + assertThat(path.getString("cluster-service-cm")).isEqualTo("camel-k-cm"); + } +} diff --git a/camel-k-quarkus/camel-k-quarkus-itests/pom.xml b/camel-k-quarkus/camel-k-quarkus-itests/pom.xml index 1f0d0766d..bc5052555 100644 --- a/camel-k-quarkus/camel-k-quarkus-itests/pom.xml +++ b/camel-k-quarkus/camel-k-quarkus-itests/pom.xml @@ -31,6 +31,7 @@ camel-k-quarkus-itests-core camel-k-quarkus-itests-cron + camel-k-quarkus-itests-master camel-k-quarkus-itests-kamelet camel-k-quarkus-itests-knative camel-k-quarkus-itests-loader-support diff --git a/camel-k-quarkus/camel-k-quarkus-master/deployment/pom.xml b/camel-k-quarkus/camel-k-quarkus-master/deployment/pom.xml new file mode 100644 index 000000000..1806f9674 --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-master/deployment/pom.xml @@ -0,0 +1,67 @@ + + + + + org.apache.camel.k + camel-k-quarkus-master-parent + 1.5.1-SNAPSHOT + + 4.0.0 + + camel-k-quarkus-master-deployment + + + + org.apache.camel.k + camel-k-quarkus-core-deployment + + + org.apache.camel.k + camel-k-quarkus-master + + + org.apache.camel.quarkus + camel-quarkus-master-deployment + + + org.apache.camel.quarkus + camel-quarkus-kubernetes-deployment + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.quarkus + quarkus-extension-processor + ${quarkus-version} + + + + + + + + diff --git a/camel-k-quarkus/camel-k-quarkus-master/deployment/src/main/java/org/apache/camel/k/quarkus/master/deployment/Feature.java b/camel-k-quarkus/camel-k-quarkus-master/deployment/src/main/java/org/apache/camel/k/quarkus/master/deployment/Feature.java new file mode 100644 index 000000000..bae68549a --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-master/deployment/src/main/java/org/apache/camel/k/quarkus/master/deployment/Feature.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.quarkus.master.deployment; + +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.FeatureBuildItem; + +public class Feature { + private static final String FEATURE = "camel-k-runtime-master"; + + @BuildStep + FeatureBuildItem feature() { + return new FeatureBuildItem(FEATURE); + } +} diff --git a/camel-k-quarkus/camel-k-quarkus-master/pom.xml b/camel-k-quarkus/camel-k-quarkus-master/pom.xml new file mode 100644 index 000000000..7071c227c --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-master/pom.xml @@ -0,0 +1,36 @@ + + + + + org.apache.camel.k + camel-k-quarkus + 1.5.1-SNAPSHOT + + 4.0.0 + pom + + camel-k-quarkus-master-parent + + + runtime + deployment + + + diff --git a/camel-k-quarkus/camel-k-quarkus-master/runtime/pom.xml b/camel-k-quarkus/camel-k-quarkus-master/runtime/pom.xml new file mode 100644 index 000000000..6dfc96091 --- /dev/null +++ b/camel-k-quarkus/camel-k-quarkus-master/runtime/pom.xml @@ -0,0 +1,94 @@ + + + + + org.apache.camel.k + camel-k-quarkus-master-parent + 1.5.1-SNAPSHOT + + 4.0.0 + + camel-k-quarkus-master + + + + org.apache.camel.k + camel-k-quarkus-core + + + org.apache.camel.k + camel-k-runtime-master + + + org.apache.camel.quarkus + camel-quarkus-master + + + org.apache.camel.quarkus + camel-quarkus-kubernetes + + + + + + + io.quarkus + quarkus-bootstrap-maven-plugin + ${quarkus-version} + + + + extension-descriptor + + + ${project.groupId}:${project.artifactId}-deployment:${project.version} + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.quarkus + quarkus-extension-processor + ${quarkus-version} + + + + + + org.jboss.jandex + jandex-maven-plugin + + + make-index + + jandex + + + + + + + + diff --git a/camel-k-quarkus/pom.xml b/camel-k-quarkus/pom.xml index e201c25c2..291932566 100644 --- a/camel-k-quarkus/pom.xml +++ b/camel-k-quarkus/pom.xml @@ -59,6 +59,7 @@ camel-k-quarkus-kamelet camel-k-quarkus-knative camel-k-quarkus-cron + camel-k-quarkus-master camel-k-runtime-quarkus diff --git a/camel-k-runtime-bom/pom.xml b/camel-k-runtime-bom/pom.xml index 7fe92acfe..3803eb914 100644 --- a/camel-k-runtime-bom/pom.xml +++ b/camel-k-runtime-bom/pom.xml @@ -306,7 +306,16 @@ camel-k-quarkus-cron-deployment ${project.version} - + + org.apache.camel.k + camel-k-quarkus-master + ${project.version} + + + org.apache.camel.k + camel-k-quarkus-master-deployment + ${project.version} + diff --git a/pom.xml b/pom.xml index 878841841..fb3c0fe62 100644 --- a/pom.xml +++ b/pom.xml @@ -535,7 +535,17 @@ org.apache.camel.k - camel-k-quarkus-knative-cron + camel-k-quarkus-cron-deployment + ${project.version} + + + org.apache.camel.k + camel-k-quarkus-master + ${project.version} + + + org.apache.camel.k + camel-k-quarkus-master-deployment ${project.version} diff --git a/tooling/camel-k-maven-plugin/src/it/generate-catalog-main/verify.groovy b/tooling/camel-k-maven-plugin/src/it/generate-catalog-main/verify.groovy index 442d980e6..6ad2b0d58 100644 --- a/tooling/camel-k-maven-plugin/src/it/generate-catalog-main/verify.groovy +++ b/tooling/camel-k-maven-plugin/src/it/generate-catalog-main/verify.groovy @@ -36,6 +36,8 @@ new File(basedir, "catalog.yaml").withReader { assert catalog.spec.runtime.capabilities['circuit-breaker'].dependencies[0].artifactId == 'camel-microprofile-fault-tolerance' assert catalog.spec.runtime.capabilities['tracing'].dependencies[0].groupId == 'org.apache.camel.k' assert catalog.spec.runtime.capabilities['tracing'].dependencies[0].artifactId == 'camel-k-runtime-tracing' + assert catalog.spec.runtime.capabilities['master'].dependencies[0].groupId == 'org.apache.camel.k' + assert catalog.spec.runtime.capabilities['master'].dependencies[0].artifactId == 'camel-k-runtime-master' assert catalog.metadata.labels['camel.apache.org/runtime.version'] == runtimeVersion diff --git a/tooling/camel-k-maven-plugin/src/it/generate-catalog-quarkus/verify.groovy b/tooling/camel-k-maven-plugin/src/it/generate-catalog-quarkus/verify.groovy index 7a80bcca2..5212f4511 100644 --- a/tooling/camel-k-maven-plugin/src/it/generate-catalog-quarkus/verify.groovy +++ b/tooling/camel-k-maven-plugin/src/it/generate-catalog-quarkus/verify.groovy @@ -37,6 +37,8 @@ new File(basedir, "catalog.yaml").withReader { assert catalog.spec.runtime.capabilities['circuit-breaker'].dependencies[0].artifactId == 'camel-quarkus-microprofile-fault-tolerance' assert catalog.spec.runtime.capabilities['tracing'].dependencies[0].groupId == 'org.apache.camel.quarkus' assert catalog.spec.runtime.capabilities['tracing'].dependencies[0].artifactId == 'camel-quarkus-opentracing' + assert catalog.spec.runtime.capabilities['master'].dependencies[0].groupId == 'org.apache.camel.quarkus' + assert catalog.spec.runtime.capabilities['master'].dependencies[0].artifactId == 'camel-quarkus-master' assert catalog.metadata.labels['camel.apache.org/runtime.version'] == runtimeVersion diff --git a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java index a6d323331..dec5ecb0c 100644 --- a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java +++ b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java @@ -145,6 +145,10 @@ public void execute() throws MojoExecutionException, MojoFailureException { "tracing", CamelCapability.forArtifact( "org.apache.camel.k", "camel-k-runtime-tracing")); + runtimeSpec.putCapability( + "master", + CamelCapability.forArtifact( + "org.apache.camel.k", "camel-k-runtime-master")); break; case "quarkus": catalog.setRuntimeProvider(new QuarkusRuntimeProvider()); @@ -176,6 +180,10 @@ public void execute() throws MojoExecutionException, MojoFailureException { "tracing", CamelCapability.forArtifact( "org.apache.camel.quarkus", "camel-quarkus-opentracing")); + runtimeSpec.putCapability( + "master", + CamelCapability.forArtifact( + "org.apache.camel.quarkus", "camel-quarkus-master")); break; default: throw new IllegalArgumentException("catalog.runtime parameter value [" + runtime + "] is not supported!");