This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 5bb6326e804e camel-graphql: queryFile should be able to load from file
system also
5bb6326e804e is described below
commit 5bb6326e804e5b194f9f4607a8c5fd4fab2dd087
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Oct 16 13:00:00 2025 +0200
camel-graphql: queryFile should be able to load from file system also
---
.../org/apache/camel/catalog/components/graphql.json | 2 +-
.../META-INF/org/apache/camel/component/graphql/graphql.json | 2 +-
.../org/apache/camel/component/graphql/GraphqlEndpoint.java | 11 ++++++++---
.../builder/endpoint/dsl/GraphqlEndpointBuilderFactory.java | 3 ++-
4 files changed, 12 insertions(+), 6 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/graphql.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/graphql.json
index 61fec1150b29..bf28673012e1 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/graphql.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/graphql.json
@@ -33,7 +33,7 @@
"operationName": { "index": 1, "kind": "parameter", "displayName":
"Operation Name", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "The query or mutation name." },
"proxyHost": { "index": 2, "kind": "parameter", "displayName": "Proxy
Host", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The proxy host in the format hostname:port." },
"query": { "index": 3, "kind": "parameter", "displayName": "Query",
"group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The query text." },
- "queryFile": { "index": 4, "kind": "parameter", "displayName": "Query
File", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The query file name located in the classpath."
},
+ "queryFile": { "index": 4, "kind": "parameter", "displayName": "Query
File", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The query file name located in the classpath
(or use file: to load from file system)." },
"queryHeader": { "index": 5, "kind": "parameter", "displayName": "Query
Header", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The name of a header containing the GraphQL
query." },
"variables": { "index": 6, "kind": "parameter", "displayName":
"Variables", "group": "producer", "label": "", "required": false, "type":
"object", "javaType": "org.apache.camel.util.json.JsonObject", "deprecated":
false, "autowired": false, "secret": false, "description": "The JsonObject
instance containing the operation variables." },
"variablesHeader": { "index": 7, "kind": "parameter", "displayName":
"Variables Header", "group": "producer", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "description": "The name of a header
containing a JsonObject instance containing the operation variables." },
diff --git
a/components/camel-graphql/src/generated/resources/META-INF/org/apache/camel/component/graphql/graphql.json
b/components/camel-graphql/src/generated/resources/META-INF/org/apache/camel/component/graphql/graphql.json
index 61fec1150b29..bf28673012e1 100644
---
a/components/camel-graphql/src/generated/resources/META-INF/org/apache/camel/component/graphql/graphql.json
+++
b/components/camel-graphql/src/generated/resources/META-INF/org/apache/camel/component/graphql/graphql.json
@@ -33,7 +33,7 @@
"operationName": { "index": 1, "kind": "parameter", "displayName":
"Operation Name", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "The query or mutation name." },
"proxyHost": { "index": 2, "kind": "parameter", "displayName": "Proxy
Host", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The proxy host in the format hostname:port." },
"query": { "index": 3, "kind": "parameter", "displayName": "Query",
"group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The query text." },
- "queryFile": { "index": 4, "kind": "parameter", "displayName": "Query
File", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The query file name located in the classpath."
},
+ "queryFile": { "index": 4, "kind": "parameter", "displayName": "Query
File", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The query file name located in the classpath
(or use file: to load from file system)." },
"queryHeader": { "index": 5, "kind": "parameter", "displayName": "Query
Header", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "The name of a header containing the GraphQL
query." },
"variables": { "index": 6, "kind": "parameter", "displayName":
"Variables", "group": "producer", "label": "", "required": false, "type":
"object", "javaType": "org.apache.camel.util.json.JsonObject", "deprecated":
false, "autowired": false, "secret": false, "description": "The JsonObject
instance containing the operation variables." },
"variablesHeader": { "index": 7, "kind": "parameter", "displayName":
"Variables Header", "group": "producer", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "description": "The name of a header
containing a JsonObject instance containing the operation variables." },
diff --git
a/components/camel-graphql/src/main/java/org/apache/camel/component/graphql/GraphqlEndpoint.java
b/components/camel-graphql/src/main/java/org/apache/camel/component/graphql/GraphqlEndpoint.java
index f7f5672e3c36..51f7ae915233 100644
---
a/components/camel-graphql/src/main/java/org/apache/camel/component/graphql/GraphqlEndpoint.java
+++
b/components/camel-graphql/src/main/java/org/apache/camel/component/graphql/GraphqlEndpoint.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.graphql;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URI;
import java.util.Arrays;
import java.util.Map;
@@ -33,8 +34,8 @@ import org.apache.camel.spi.UriEndpoint;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriPath;
import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.support.ResourceHelper;
import org.apache.camel.util.IOHelper;
-import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.json.JsonObject;
import org.apache.hc.client5.http.auth.AuthScope;
import org.apache.hc.client5.http.auth.CredentialsStore;
@@ -203,10 +204,14 @@ public class GraphqlEndpoint extends DefaultEndpoint
implements EndpointServiceL
public String getQuery() {
if (query == null && queryFile != null) {
+ InputStream is = null;
try {
- query =
IOHelper.loadText(ObjectHelper.loadResourceAsStream(queryFile,
getClass().getClassLoader()));
+ is =
ResourceHelper.resolveResourceAsInputStream(getCamelContext(), queryFile);
+ query = IOHelper.loadText(is);
} catch (IOException e) {
throw new RuntimeCamelException("Failed to read query file: "
+ queryFile, e);
+ } finally {
+ IOHelper.close(is);
}
}
return query;
@@ -235,7 +240,7 @@ public class GraphqlEndpoint extends DefaultEndpoint
implements EndpointServiceL
}
/**
- * The query file name located in the classpath.
+ * The query file name located in the classpath (or use file: to load from
file system).
*/
public void setQueryFile(String queryFile) {
this.queryFile = queryFile;
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GraphqlEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GraphqlEndpointBuilderFactory.java
index e28df13f7a03..85147f4ee54f 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GraphqlEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GraphqlEndpointBuilderFactory.java
@@ -87,7 +87,8 @@ public interface GraphqlEndpointBuilderFactory {
return this;
}
/**
- * The query file name located in the classpath.
+ * The query file name located in the classpath (or use file: to load
+ * from file system).
*
* The option is a: <code>java.lang.String</code> type.
*