This is an automated email from the ASF dual-hosted git repository. nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers in repository https://gitbox.apache.org/repos/asf/camel.git
commit f07d2b79de79221ca294c3836a2f1d9587a46882 Author: Nicolas Filotto <nfilo...@talend.com> AuthorDate: Mon Apr 4 17:38:21 2022 +0200 CAMEL-17792: Add doc about the message headers of camel-resteasy --- .../org/apache/camel/component/resteasy/resteasy.json | 13 +++++++++++++ .../src/main/docs/resteasy-component.adoc | 3 +++ .../camel/component/resteasy/ResteasyConstants.java | 17 +++++++++++++++++ .../camel/component/resteasy/ResteasyEndpoint.java | 3 ++- .../camel/component/resteasy/ResteasyProducer.java | 6 +++--- .../resteasy/servlet/ResteasyCamelServlet.java | 4 ++-- 6 files changed, 40 insertions(+), 6 deletions(-) diff --git a/components/camel-resteasy/src/generated/resources/org/apache/camel/component/resteasy/resteasy.json b/components/camel-resteasy/src/generated/resources/org/apache/camel/component/resteasy/resteasy.json index 7c5202837dc..f4c848eb078 100644 --- a/components/camel-resteasy/src/generated/resources/org/apache/camel/component/resteasy/resteasy.json +++ b/components/camel-resteasy/src/generated/resources/org/apache/camel/component/resteasy/resteasy.json @@ -43,6 +43,19 @@ "redirectHandlingDisabled": { "kind": "property", "displayName": "Redirect Handling Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables automatic redirect handling" }, "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." } }, + "headers": { + "CamelResteasyProxyMethod": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The resteasy method to process the request" }, + "CamelResteasyProxyMethodArgs": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.util.ArrayList", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The proxy method params" }, + "CamelResteasyLogin": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The username" }, + "CamelResteasyPassword": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The password" }, + "CamelResteasyContextPath": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The context path" }, + "CamelResteasyHttpMethod": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The resteasy method to process the request" }, + "CamelResteasyHttpRequest": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http request" }, + "CamelResteasyProxyProducerException": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Exception", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The proxy client exception" }, + "CamelHttpQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http query" }, + "Content-Type": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "CamelHttpPath": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http path" } + }, "properties": { "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The url of the HTTP endpoint to call." }, "disableStreamCache": { "kind": "parameter", "displayName": "Disable Stream Cache", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Determines whether or not the raw input stream from Servlet is cached or not (Camel will read the stream into a in memory\/overflow to file, Stream caching) cache. By default Camel will cache the Servlet inpu [...] diff --git a/components/camel-resteasy/src/main/docs/resteasy-component.adoc b/components/camel-resteasy/src/main/docs/resteasy-component.adoc index 7700e4a2fe8..17121651884 100644 --- a/components/camel-resteasy/src/main/docs/resteasy-component.adoc +++ b/components/camel-resteasy/src/main/docs/resteasy-component.adoc @@ -49,6 +49,9 @@ include::partial$component-endpoint-options.adoc[] // endpoint options: END +// component headers: START +include::partial$component-endpoint-headers.adoc[] +// component headers: END === Usage diff --git a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyConstants.java b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyConstants.java index a572b851c3c..7f8ab940368 100644 --- a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyConstants.java +++ b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyConstants.java @@ -16,20 +16,37 @@ */ package org.apache.camel.component.resteasy; +import org.apache.camel.Exchange; +import org.apache.camel.spi.Metadata; + /** * Constants used in the Resteasy component * */ public final class ResteasyConstants { + @Metadata(label = "producer", description = "The resteasy method to process the request", javaType = "String") public static final String RESTEASY_PROXY_METHOD = "CamelResteasyProxyMethod"; + @Metadata(label = "producer", description = "The proxy method params", javaType = "java.util.ArrayList") public static final String RESTEASY_PROXY_METHOD_PARAMS = "CamelResteasyProxyMethodArgs"; + @Metadata(label = "producer", description = "The username", javaType = "String") public static final String RESTEASY_USERNAME = "CamelResteasyLogin"; + @Metadata(label = "producer", description = "The password", javaType = "String") public static final String RESTEASY_PASSWORD = "CamelResteasyPassword"; + @Metadata(description = "The context path", javaType = "String") public static final String RESTEASY_CONTEXT_PATH = "CamelResteasyContextPath"; public static final String RESTEASY_RESPONSE = "CamelResteasyResponse"; + @Metadata(label = "producer", description = "The resteasy method to process the request", javaType = "String") public static final String RESTEASY_HTTP_METHOD = "CamelResteasyHttpMethod"; + @Metadata(description = "The http request", javaType = "String") public static final String RESTEASY_HTTP_REQUEST = "CamelResteasyHttpRequest"; + @Metadata(label = "producer", description = "The proxy client exception", javaType = "Exception") public static final String RESTEASY_PROXY_PRODUCER_EXCEPTION = "CamelResteasyProxyProducerException"; + @Metadata(label = "producer", description = "The http query", javaType = "String") + public static final String HTTP_QUERY = Exchange.HTTP_QUERY; + @Metadata(label = "producer", description = "The content type", javaType = "String") + public static final String CONTENT_TYPE = Exchange.CONTENT_TYPE; + @Metadata(description = "The http path", javaType = "String") + public static final String HTTP_PATH = Exchange.HTTP_PATH; /** * Utility classes should not have a public constructor. diff --git a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyEndpoint.java b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyEndpoint.java index 4798ff4e5c8..1676c70b1de 100644 --- a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyEndpoint.java +++ b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyEndpoint.java @@ -34,7 +34,8 @@ import org.slf4j.LoggerFactory; * Expose REST endpoints and access external REST servers. */ @UriEndpoint(firstVersion = "3.4.0", scheme = "resteasy", extendsScheme = "http", - title = "Resteasy", syntax = "resteasy:httpUri", category = { Category.REST }) + title = "Resteasy", syntax = "resteasy:httpUri", category = { Category.REST }, + headersClass = ResteasyConstants.class) @Metadata(excludeProperties = "clientConnectionManager,connectionsPerRoute,connectionTimeToLive," + "httpBinding,httpClientConfigurer,httpConfiguration,httpContext,httpRegistry,maxTotalConnections,connectionRequestTimeout," + "connectTimeout,socketTimeout,cookieStore,x509HostnameVerifier,sslContextParameters," diff --git a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyProducer.java b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyProducer.java index 8d289c0de46..4fddd18039c 100644 --- a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyProducer.java +++ b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/ResteasyProducer.java @@ -61,12 +61,12 @@ public class ResteasyProducer extends DefaultProducer { ResteasyEndpoint resteasyEndpoint = ObjectHelper.cast(ResteasyEndpoint.class, getEndpoint()); Map<String, String> parameters = getParameters(exchange, resteasyEndpoint); - String query = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class); + String query = exchange.getIn().getHeader(ResteasyConstants.HTTP_QUERY, String.class); String uri = resteasyEndpoint.buildUri(); if (query != null) { LOG.debug("Adding query: {} to uri: {}", query, uri); uri = addQueryToUri(uri, query); - LOG.debug("URI: {} populated via Exchange.HTTP_QUERY header", uri); + LOG.debug("URI: {} populated via ResteasyConstants.HTTP_QUERY header", uri); } WebTarget resteasyWebTarget = createWebClientTarget(uri); @@ -247,7 +247,7 @@ public class ResteasyProducer extends DefaultProducer { String body = exchange.getIn().getBody(String.class); LOG.debug("Body in producer: {}", body); - String mediaType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class); + String mediaType = exchange.getIn().getHeader(ResteasyConstants.CONTENT_TYPE, String.class); LOG.debug("Populate Resteasy request from exchange body: {} using media type {}", body, mediaType); diff --git a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/servlet/ResteasyCamelServlet.java b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/servlet/ResteasyCamelServlet.java index 419251cd4a8..fccd37f9776 100644 --- a/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/servlet/ResteasyCamelServlet.java +++ b/components/camel-resteasy/src/main/java/org/apache/camel/component/resteasy/servlet/ResteasyCamelServlet.java @@ -241,11 +241,11 @@ public class ResteasyCamelServlet extends HttpServletDispatcher implements HttpR // Maybe send request to camel also for some logging or something exchange.getIn().setHeader(ResteasyConstants.RESTEASY_HTTP_REQUEST, httpServletRequest); - String httpPath = (String) exchange.getIn().getHeader(Exchange.HTTP_PATH); + String httpPath = (String) exchange.getIn().getHeader(ResteasyConstants.HTTP_PATH); // here we just remove the CamelServletContextPath part from the HTTP_PATH if (contextPath != null && httpPath.startsWith(contextPath)) { - exchange.getIn().setHeader(Exchange.HTTP_PATH, + exchange.getIn().setHeader(ResteasyConstants.HTTP_PATH, httpPath.substring(contextPath.length())); }