You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/03/10 19:05:12 UTC

[camel-quarkus] branch master updated (4023353 -> f0aec25)

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git.


    from 4023353  Regenerated docs
     new 7133574  Add GraphQL extension
     new f0aec25  Make the file-watch tests more resilient

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/pr-build.yaml                    |   1 +
 docs/modules/ROOT/pages/extensions/graphql.adoc    |  29 ++++++
 .../pages/list-of-camel-quarkus-extensions.adoc    |   5 +-
 extensions/{azure => graphql}/deployment/pom.xml   |  10 +-
 .../graphql/deployment/GraphQLProcessor.java}      |  22 ++---
 extensions/{azure => graphql}/pom.xml              |   4 +-
 extensions/{ical => graphql}/runtime/pom.xml       |  10 +-
 .../component/graphql/CamelGraphQLConfig.java}     |  16 +--
 .../main/resources/META-INF/quarkus-extension.yaml |   6 +-
 extensions/pom.xml                                 |   1 +
 extensions/readme.adoc                             |   5 +-
 .../camel/quarkus/component/file/it/FileTest.java  |  68 +++++--------
 integration-tests/{olingo4 => graphql}/pom.xml     |  12 +--
 .../component/graphql/it/GraphQLResource.java      | 107 +++++++++++++++++++++
 .../quarkus/component/graphql/it/model/Book.java}  |  28 ++++--
 .../src/main/resources/application.properties}     |   2 +-
 .../src/main/resources/graphql/bookQuery.graphql   |   9 ++
 .../src/main/resources/graphql/schema.graphql      |  28 ++++++
 .../quarkus/component/graphql/it/GraphQLIT.java}   |   4 +-
 .../quarkus/component/graphql/it/GraphQLTest.java} |  15 +--
 integration-tests/pom.xml                          |   1 +
 pom.xml                                            |   1 +
 poms/bom-deployment/pom.xml                        |   5 +
 poms/bom/pom.xml                                   |  10 ++
 24 files changed, 297 insertions(+), 102 deletions(-)
 create mode 100644 docs/modules/ROOT/pages/extensions/graphql.adoc
 copy extensions/{azure => graphql}/deployment/pom.xml (89%)
 copy extensions/{sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java => graphql/deployment/src/main/java/org/apache/camel/quarkus/component/graphql/deployment/GraphQLProcessor.java} (67%)
 copy extensions/{azure => graphql}/pom.xml (94%)
 copy extensions/{ical => graphql}/runtime/pom.xml (91%)
 copy extensions/{sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/CamelSqlConfig.java => graphql/runtime/src/main/java/org/apache/camel/quarkus/component/graphql/CamelGraphQLConfig.java} (62%)
 copy extensions/{http => graphql}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (88%)
 copy integration-tests/{olingo4 => graphql}/pom.xml (92%)
 create mode 100644 integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/GraphQLResource.java
 copy integration-tests/{dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/json/model/PojoA.java => graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/model/Book.java} (67%)
 copy integration-tests/{support/custom-dataformat/src/main/resources/META-INF/services/org/apache/camel/dataformat/my-dataformat => graphql/src/main/resources/application.properties} (93%)
 create mode 100644 integration-tests/graphql/src/main/resources/graphql/bookQuery.graphql
 create mode 100644 integration-tests/graphql/src/main/resources/graphql/schema.graphql
 copy integration-tests/{base64/src/test/java/org/apache/camel/quarkus/component/base64/it/Base64IT.java => graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java} (90%)
 copy integration-tests/{exec/src/test/java/org/apache/camel/quarkus/component/exec/it/ExecTest.java => graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLTest.java} (72%)


[camel-quarkus] 02/02: Make the file-watch tests more resilient

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit f0aec2589f0114678f00b90e43ac24923072c2e9
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Mar 10 17:26:45 2020 +0100

    Make the file-watch tests more resilient
---
 .../camel/quarkus/component/file/it/FileTest.java  | 68 ++++++++--------------
 1 file changed, 24 insertions(+), 44 deletions(-)

diff --git a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
index efb6f62..ace21af 100644
--- a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
+++ b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
@@ -27,6 +27,7 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 import io.restassured.path.json.JsonPath;
+import io.restassured.response.ValidatableResponse;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 
@@ -70,63 +71,42 @@ class FileTest {
         final Path file = dir.resolve("file.txt");
         Files.write(file, "a file content".getBytes(StandardCharsets.UTF_8));
 
-        RestAssured.given()
-                .queryParam("path", dir.toString())
-                .get("/file-watch/get-events")
-                .then()
-                .statusCode(200)
-                .body("type", equalTo("CREATE"))
-                .body("path", equalTo(file.toString()));
+        awaitEvent(dir, file, "CREATE");
 
         Files.write(file, "changed content".getBytes(StandardCharsets.UTF_8));
 
-        RestAssured.given()
-                .queryParam("path", dir.toString())
-                .get("/file-watch/get-events")
-                .then()
-                .statusCode(200)
-                .body("type", equalTo("MODIFY"))
-                .body("path", equalTo(file.toString()));
-
-    }
-
-    @Test
-    public void fileWatchCreateDelete() throws IOException, InterruptedException {
-        final Path dir = Files.createTempDirectory(FileTest.class.getSimpleName()).toAbsolutePath().normalize();
-        RestAssured.given()
-                .queryParam("path", dir.toString())
-                .get("/file-watch/get-events")
-                .then()
-                .statusCode(204);
+        awaitEvent(dir, file, "MODIFY");
 
-        final Path file = dir.resolve("file.txt");
-        Files.write(file, "a file content".getBytes(StandardCharsets.UTF_8));
+        Files.delete(file);
 
-        RestAssured.given()
-                .queryParam("path", dir.toString())
-                .get("/file-watch/get-events")
-                .then()
-                .statusCode(200)
-                .body("type", equalTo("CREATE"))
-                .body("path", equalTo(file.toString()));
+        awaitEvent(dir, file, "DELETE");
 
-        Files.delete(file);
+    }
 
-        /* The DELETE event may be preceded by MODIFY */
+    private static void awaitEvent(final Path dir, final Path file, final String type) {
         Awaitility.await()
                 .pollInterval(10, TimeUnit.MILLISECONDS)
                 .atMost(10, TimeUnit.SECONDS)
                 .until(() -> {
-                    final JsonPath json = RestAssured.given()
+                    final ValidatableResponse response = RestAssured.given()
                             .queryParam("path", dir.toString())
                             .get("/file-watch/get-events")
-                            .then()
-                            .statusCode(200)
-                            .extract()
-                            .jsonPath();
-                    return file.toString().equals(json.getString("path")) && "DELETE".equals(json.getString("type"));
+                            .then();
+                    switch (response.extract().statusCode()) {
+                    case 204:
+                        /*
+                         * the event may come with some delay through all the OS and Java layers so it is
+                         * rather normal to get 204 before getting the expected event
+                         */
+                        return false;
+                    case 200:
+                        final JsonPath json = response
+                                .extract()
+                                .jsonPath();
+                        return file.toString().equals(json.getString("path")) && type.equals(json.getString("type"));
+                    default:
+                        throw new RuntimeException("Unexpected status code " + response.extract().statusCode());
+                    }
                 });
-
     }
-
 }


[camel-quarkus] 01/02: Add GraphQL extension

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 7133574f527e6d80bb0c35078ab58ddf226a1125
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Mar 10 11:22:02 2020 +0000

    Add GraphQL extension
    
    Fixes #801
---
 .github/workflows/pr-build.yaml                    |   1 +
 docs/modules/ROOT/pages/extensions/graphql.adoc    |  29 +++++
 .../pages/list-of-camel-quarkus-extensions.adoc    |   5 +-
 extensions/graphql/deployment/pom.xml              |  79 +++++++++++++
 .../graphql/deployment/GraphQLProcessor.java       |  51 +++++++++
 extensions/graphql/pom.xml                         |  50 +++++++++
 extensions/graphql/runtime/pom.xml                 |  86 +++++++++++++++
 .../component/graphql/CamelGraphQLConfig.java      |  39 +++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  27 +++++
 extensions/pom.xml                                 |   1 +
 extensions/readme.adoc                             |   5 +-
 integration-tests/graphql/pom.xml                  | 122 +++++++++++++++++++++
 .../component/graphql/it/GraphQLResource.java      | 107 ++++++++++++++++++
 .../quarkus/component/graphql/it/model/Book.java   |  56 ++++++++++
 .../src/main/resources/application.properties      |  18 +++
 .../src/main/resources/graphql/bookQuery.graphql   |   9 ++
 .../src/main/resources/graphql/schema.graphql      |  28 +++++
 .../quarkus/component/graphql/it/GraphQLIT.java    |  24 ++++
 .../quarkus/component/graphql/it/GraphQLTest.java  |  39 +++++++
 integration-tests/pom.xml                          |   1 +
 pom.xml                                            |   1 +
 poms/bom-deployment/pom.xml                        |   5 +
 poms/bom/pom.xml                                   |  10 ++
 23 files changed, 791 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index 8784cca..f53320e 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -150,6 +150,7 @@ jobs:
               compression
               dozer
               ftp
+              graphql
               mail
               mustache
               pdf
diff --git a/docs/modules/ROOT/pages/extensions/graphql.adoc b/docs/modules/ROOT/pages/extensions/graphql.adoc
new file mode 100644
index 0000000..060bac0
--- /dev/null
+++ b/docs/modules/ROOT/pages/extensions/graphql.adoc
@@ -0,0 +1,29 @@
+[[graphql]]
+= GraphQL Extension
+
+*Since Camel Quarkus 1.0.0-M5*
+
+The GraphQL component is a GraphQL client that communicates over HTTP and supports queries and mutations.
+
+Maven users will need to add the following dependency to their `pom.xml` for this extension.
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-graphql</artifactId>
+</dependency>
+------------------------------------------------------------
+
+== Usage
+
+The extension provides support for the Camel https://camel.apache.org/components/latest/graphql-component.html[GraphQL Component].
+
+=== Configuration
+
+When configuring `graphql` endpoints to reference query files from the classpath, set the following configuration property to ensure that they are available in native mode.
+
+[source,properties]
+----
+quarkus.camel.graphql.query-files = queries.graphql, classpath:graphql/my-query.graphql
+----
diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 9fd7ab6..c90bf88 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 74 in 64 JAR artifacts (0 deprecated)
+Number of Camel components: 75 in 65 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -123,6 +123,9 @@ Number of Camel components: 74 in 64 JAR artifacts (0 deprecated)
 | link:https://camel.apache.org/components/latest/ftps-component.html[FTPS] (camel-quarkus-ftp) +
 `ftps:host:port/directoryName` | 1.0.0-M1 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.
 
+| xref:extensions/graphql.adoc[GraphQL] (camel-quarkus-graphql) +
+`graphql:httpUri` | 1.0.0-M5 | A Camel GraphQL Component
+
 | xref:extensions/http.adoc[HTTP] (camel-quarkus-http) +
 `http:httpUri` | 1.0.0-M3 | For calling out to external HTTP servers using Apache HTTP Client 4.x.
 
diff --git a/extensions/graphql/deployment/pom.xml b/extensions/graphql/deployment/pom.xml
new file mode 100644
index 0000000..6c3cab4
--- /dev/null
+++ b/extensions/graphql/deployment/pom.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-graphql-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-graphql-deployment</artifactId>
+    <name>Camel Quarkus :: GraphQL :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-graphql</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions/graphql/deployment/src/main/java/org/apache/camel/quarkus/component/graphql/deployment/GraphQLProcessor.java b/extensions/graphql/deployment/src/main/java/org/apache/camel/quarkus/component/graphql/deployment/GraphQLProcessor.java
new file mode 100644
index 0000000..8cec413
--- /dev/null
+++ b/extensions/graphql/deployment/src/main/java/org/apache/camel/quarkus/component/graphql/deployment/GraphQLProcessor.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.graphql.deployment;
+
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
+import org.apache.camel.quarkus.component.graphql.CamelGraphQLConfig;
+
+class GraphQLProcessor {
+
+    private static final String FEATURE = "camel-graphql";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
+        return new ExtensionSslNativeSupportBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    void nativeImageResources(BuildProducer<NativeImageResourceBuildItem> nativeImage, CamelGraphQLConfig config) {
+        if (!config.queryFiles.isPresent()) {
+            return;
+        }
+
+        config.queryFiles.get()
+                .stream()
+                .map(scriptFile -> new NativeImageResourceBuildItem(scriptFile.replace("classpath:", "")))
+                .forEach(nativeImage::produce);
+    }
+}
diff --git a/extensions/graphql/pom.xml b/extensions/graphql/pom.xml
new file mode 100644
index 0000000..8d6f914
--- /dev/null
+++ b/extensions/graphql/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-graphql-parent</artifactId>
+    <name>Camel Quarkus :: GraphQL</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bom-deployment</artifactId>
+                <version>${quarkus.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
diff --git a/extensions/graphql/runtime/pom.xml b/extensions/graphql/runtime/pom.xml
new file mode 100644
index 0000000..3be7baa
--- /dev/null
+++ b/extensions/graphql/runtime/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-graphql-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-graphql</artifactId>
+    <name>Camel Quarkus :: GraphQL :: Runtime</name>
+
+    <properties>
+        <firstVersion>1.0.0-M5</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-httpclient</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-graphql</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions/graphql/runtime/src/main/java/org/apache/camel/quarkus/component/graphql/CamelGraphQLConfig.java b/extensions/graphql/runtime/src/main/java/org/apache/camel/quarkus/component/graphql/CamelGraphQLConfig.java
new file mode 100644
index 0000000..081a3f2
--- /dev/null
+++ b/extensions/graphql/runtime/src/main/java/org/apache/camel/quarkus/component/graphql/CamelGraphQLConfig.java
@@ -0,0 +1,39 @@
+/*
+ * 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.quarkus.component.graphql;
+
+import java.util.List;
+import java.util.Optional;
+
+import io.quarkus.runtime.annotations.ConfigItem;
+import io.quarkus.runtime.annotations.ConfigPhase;
+import io.quarkus.runtime.annotations.ConfigRoot;
+
+@ConfigRoot(name = "camel.graphql", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
+public class CamelGraphQLConfig {
+
+    /**
+     * A comma separated list of paths to files containing GraphQL queries for use by GraphQL endpoints.
+     *
+     * Query files that only need to be accessible from the classpath should be specified on this property.
+     *
+     * Paths can either be schemeless (E.g graphql/my-query.graphql) or be prefixed with the classpath: URI scheme (E.g
+     * classpath:graphql/my-query.graphql). Other URI schemes are not supported.
+     */
+    @ConfigItem
+    public Optional<List<String>> queryFiles;
+}
diff --git a/extensions/graphql/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/graphql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..bfde4b2
--- /dev/null
+++ b/extensions/graphql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,27 @@
+#
+# 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.
+#
+
+---
+name: "Camel Quarkus GraphQL"
+description: "Camel Quarkus GraphQL Support"
+metadata:
+  keywords:
+    - "camel"
+    - "graphql"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+    - "integration"
\ No newline at end of file
diff --git a/extensions/pom.xml b/extensions/pom.xml
index c9a2ca8..655aa41 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -79,6 +79,7 @@
         <module>file</module>
         <module>file-watch</module>
         <module>ftp</module>
+        <module>graphql</module>
         <module>gson</module>
         <module>http</module>
         <module>hystrix</module>
diff --git a/extensions/readme.adoc b/extensions/readme.adoc
index 8066a63..57adb00 100644
--- a/extensions/readme.adoc
+++ b/extensions/readme.adoc
@@ -5,7 +5,7 @@ Apache Camel Quarkus supports the following Camel artifacts as Quarkus Extension
 == Camel Components
 
 // components: START
-Number of Camel components: 74 in 64 JAR artifacts (0 deprecated)
+Number of Camel components: 75 in 65 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -110,6 +110,9 @@ Number of Camel components: 74 in 64 JAR artifacts (0 deprecated)
 | link:https://camel.apache.org/components/latest/ftps-component.html[FTPS] (camel-quarkus-ftp) +
 `ftps:host:port/directoryName` | 1.0.0-M1 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.
 
+| xref:extensions/graphql.adoc[GraphQL] (camel-quarkus-graphql) +
+`graphql:httpUri` | 1.0.0-M5 | A Camel GraphQL Component
+
 | xref:extensions/http.adoc[HTTP] (camel-quarkus-http) +
 `http:httpUri` | 1.0.0-M3 | For calling out to external HTTP servers using Apache HTTP Client 4.x.
 
diff --git a/integration-tests/graphql/pom.xml b/integration-tests/graphql/pom.xml
new file mode 100644
index 0000000..d6406d2
--- /dev/null
+++ b/integration-tests/graphql/pom.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-integration-tests</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-graphql</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: GraphQL</name>
+    <description>Integration tests for Camel Quarkus GraphQL extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-graphql-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-graphql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-vertx-graphql</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                                <configuration>
+                                    <systemProperties>
+                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+                                    </systemProperties>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/GraphQLResource.java b/integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/GraphQLResource.java
new file mode 100644
index 0000000..1f85652
--- /dev/null
+++ b/integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/GraphQLResource.java
@@ -0,0 +1,107 @@
+/*
+ * 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.quarkus.component.graphql.it;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionStage;
+
+import javax.enterprise.event.Observes;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import graphql.GraphQL;
+import graphql.schema.DataFetcher;
+import graphql.schema.DataFetchingEnvironment;
+import graphql.schema.GraphQLSchema;
+import graphql.schema.idl.RuntimeWiring;
+import graphql.schema.idl.SchemaGenerator;
+import graphql.schema.idl.SchemaParser;
+import graphql.schema.idl.TypeDefinitionRegistry;
+import io.vertx.ext.web.Router;
+import io.vertx.ext.web.handler.graphql.GraphQLHandler;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.quarkus.component.graphql.it.model.Book;
+import org.apache.camel.util.json.JsonObject;
+
+@Path("/graphql")
+public class GraphQLResource {
+
+    private static final List<Book> BOOKS = Arrays.asList(
+            new Book("book-1", "Harry Potter and the Philosophers Stone", "author-1"),
+            new Book("book-2", "Moby Dick", "author-2"),
+            new Book("book-3", "Interview with the vampire", "author-3"));
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    public void setupRouter(@Observes Router router) {
+        SchemaParser schemaParser = new SchemaParser();
+        TypeDefinitionRegistry typeDefinitionRegistry = schemaParser.parse(new File("target/classes/graphql/schema.graphql"));
+
+        DataFetcher<CompletionStage<Book>> dataFetcher = environment -> {
+            CompletableFuture<Book> completableFuture = new CompletableFuture<>();
+            Book book = getBookById(environment);
+            completableFuture.complete(book);
+            return completableFuture;
+        };
+
+        RuntimeWiring runtimeWiring = RuntimeWiring.newRuntimeWiring()
+                .type("Query", builder -> builder.dataFetcher("bookById", dataFetcher))
+                .build();
+
+        SchemaGenerator schemaGenerator = new SchemaGenerator();
+        GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);
+
+        GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build();
+
+        router.route("/graphql/server").handler(GraphQLHandler.create(graphQL));
+    }
+
+    @Path("/query")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response multipleQueries(@QueryParam("testPort") int port, @QueryParam("bookId") String bookId) {
+        JsonObject variables = new JsonObject();
+        variables.put("id", bookId);
+
+        producerTemplate.getCamelContext().getRegistry().bind("bookByIdQueryVariables", variables);
+
+        final String result = producerTemplate.requestBody(
+                "graphql://http://localhost:" + port
+                        + "/graphql/server?queryFile=graphql/bookQuery.graphql&operationName=BookById&variables=#bookByIdQueryVariables",
+                null,
+                String.class);
+
+        return Response
+                .ok()
+                .entity(result)
+                .build();
+    }
+
+    private Book getBookById(DataFetchingEnvironment environment) {
+        String bookId = environment.getArgument("id");
+        return BOOKS.stream().filter(book -> book.getId().equals(bookId)).findFirst().orElse(null);
+    }
+}
diff --git a/integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/model/Book.java b/integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/model/Book.java
new file mode 100644
index 0000000..59e3430
--- /dev/null
+++ b/integration-tests/graphql/src/main/java/org/apache/camel/quarkus/component/graphql/it/model/Book.java
@@ -0,0 +1,56 @@
+/*
+ * 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.quarkus.component.graphql.it.model;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+
+@RegisterForReflection
+public class Book {
+    private String id;
+    private String name;
+    private String authorId;
+
+    public Book(String id, String name, String authorId) {
+        this.id = id;
+        this.name = name;
+        this.authorId = authorId;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAuthorId() {
+        return authorId;
+    }
+
+    public void setAuthorId(String authorId) {
+        this.authorId = authorId;
+    }
+}
diff --git a/integration-tests/graphql/src/main/resources/application.properties b/integration-tests/graphql/src/main/resources/application.properties
new file mode 100644
index 0000000..adb4df9
--- /dev/null
+++ b/integration-tests/graphql/src/main/resources/application.properties
@@ -0,0 +1,18 @@
+## ---------------------------------------------------------------------------
+## 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.camel.graphql.query-files=classpath:graphql/bookQuery.graphql
diff --git a/integration-tests/graphql/src/main/resources/graphql/bookQuery.graphql b/integration-tests/graphql/src/main/resources/graphql/bookQuery.graphql
new file mode 100644
index 0000000..1eba989
--- /dev/null
+++ b/integration-tests/graphql/src/main/resources/graphql/bookQuery.graphql
@@ -0,0 +1,9 @@
+query BookById($id: ID) {
+  bookById(id: $id) {
+    id
+    name
+    author {
+      name
+    }
+  }
+}
diff --git a/integration-tests/graphql/src/main/resources/graphql/schema.graphql b/integration-tests/graphql/src/main/resources/graphql/schema.graphql
new file mode 100644
index 0000000..1dee4f6
--- /dev/null
+++ b/integration-tests/graphql/src/main/resources/graphql/schema.graphql
@@ -0,0 +1,28 @@
+schema {
+  query: Query,
+  mutation: Mutation
+}
+
+type Query {
+  bookById(id: ID): Book
+}
+
+type Mutation {
+  addBook(bookInput: BookInput): Book
+}
+
+type Book {
+  id: ID
+  name: String
+  author: Author
+}
+
+type Author {
+  id: ID
+  name: String
+}
+
+input BookInput {
+  name: String
+  authorId: ID
+}
diff --git a/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java b/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java
new file mode 100644
index 0000000..cf6047a
--- /dev/null
+++ b/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java
@@ -0,0 +1,24 @@
+/*
+ * 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.quarkus.component.graphql.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+class GraphQLIT extends GraphQLTest {
+
+}
diff --git a/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLTest.java b/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLTest.java
new file mode 100644
index 0000000..869c1e2
--- /dev/null
+++ b/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLTest.java
@@ -0,0 +1,39 @@
+/*
+ * 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.quarkus.component.graphql.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.is;
+
+@QuarkusTest
+class GraphQLTest {
+
+    @Test
+    public void testGraphQLComponent() {
+        RestAssured
+                .given()
+                .queryParam("testPort", RestAssured.port)
+                .queryParam("bookId", "book-1")
+                .get("/graphql/query")
+                .then()
+                .statusCode(200)
+                .body("data.bookById.name", is("Harry Potter and the Philosophers Stone"));
+    }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index dc1c23b..8702a1b 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -174,6 +174,7 @@
         <module>fhir</module>
         <module>file</module>
         <module>ftp</module>
+        <module>graphql</module>
         <module>http</module>
         <module>hystrix</module>
         <module>infinispan</module>
diff --git a/pom.xml b/pom.xml
index 3ac391d..7c9118d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -246,6 +246,7 @@
                         <excludes>
                             <exclude>**/*.adoc</exclude>
                             <exclude>**/*.csv</exclude>
+                            <exclude>**/*.graphql</exclude>
                             <exclude>**/*.ics</exclude>
                             <exclude>**/*.lock</exclude>
                             <exclude>**/*.mp3</exclude>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index a2cf7cb..9531cdc 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -246,6 +246,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-graphql-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-gson-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 52916ff..812bd8c 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -294,6 +294,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-graphql</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-gson</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -887,6 +892,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-graphql</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-gson</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>