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 463c0106985 Merging files that are being reformatted during 'mvn 
install' (#12516)
463c0106985 is described below

commit 463c01069853a398f4da63deef120713bfa9a333
Author: Craig Ziesman <craig.zies...@gmail.com>
AuthorDate: Wed Dec 20 23:20:33 2023 -0600

    Merging files that are being reformatted during 'mvn install' (#12516)
    
    Co-authored-by: Craig Ziesman <czies...@redhat.com>
---
 .../camel/dataformat/csv/CsvRecordConverter.java   |   2 +-
 .../component/cxf/jaxrs/DefaultCxfRsBinding.java   | 550 ++++++++++-----------
 .../org/apache/camel/http/base/HttpHelper.java     |   1 -
 .../transform/AvroPojoDataTypeTransformerTest.java |   4 +-
 .../jasypt/JasytPropertiesParserCustomAlgTest.java |  18 +-
 .../camel/component/kafka/KafkaComponent.java      |   1 -
 .../messagehistory/MicrometerMessageHistory.java   |   2 +-
 .../rest/openapi/WireMockJettyServerFactory.java   |  15 +-
 .../camel/component/stream/StreamConsumer.java     |  27 +-
 .../thrift/server/ThriftMethodHandler.java         |   1 -
 .../component/vertx/http/VertxHttpEndpoint.java    |   1 -
 etc/scripts/sign.sh                                |   5 +-
 .../NettyHttpClientChunkedResponseTest.java        |   1 -
 13 files changed, 312 insertions(+), 316 deletions(-)

diff --git 
a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvRecordConverter.java
 
b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvRecordConverter.java
index 6f03d48da20..fad456ff62b 100644
--- 
a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvRecordConverter.java
+++ 
b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvRecordConverter.java
@@ -32,7 +32,7 @@ public interface CsvRecordConverter<T> {
      * Converts the CSV record into another type.
      *
      * @param  csvRecord CSV record to convert
-     * @return        converted CSV record
+     * @return           converted CSV record
      */
     T convertRecord(CSVRecord csvRecord);
 }
diff --git 
a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
 
b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
index 35c977ce85a..2bf3e08af8f 100644
--- 
a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
+++ 
b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
@@ -18,12 +18,12 @@ package org.apache.camel.component.cxf.jaxrs;
 
 import java.lang.reflect.Method;
 import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.List;
 import java.util.TreeMap;
-import java.util.Arrays;
 
 import jakarta.ws.rs.client.Entity;
 import jakarta.ws.rs.core.HttpHeaders;
@@ -60,278 +60,278 @@ import org.slf4j.LoggerFactory;
  * Default strategy to bind between Camel and CXF exchange for RESTful 
resources.
  */
 public class DefaultCxfRsBinding implements CxfRsBinding, 
HeaderFilterStrategyAware {
-       private static final Logger LOG = 
LoggerFactory.getLogger(DefaultCxfRsBinding.class);
-
-       private HeaderFilterStrategy headerFilterStrategy;
-
-       private String contentLanguage;
-
-       public DefaultCxfRsBinding() {
-       }
-
-       @Override
-       public Object populateCxfRsResponseFromExchange(
-                       Exchange camelExchange,
-                       org.apache.cxf.message.Exchange cxfExchange)
-                       throws Exception {
-               // Need to check if the exchange has the exception
-               if (camelExchange.isFailed() && camelExchange.getException() != 
null) {
-                       throw camelExchange.getException();
-               }
-
-               org.apache.camel.Message response;
-               if (camelExchange.getPattern().isOutCapable()) {
-                       response = camelExchange.getMessage();
-               } else {
-                       response = camelExchange.getIn();
-                       LOG.trace("Get the response from the in message");
-               }
-
-               Object o = response.getBody();
-               if (!(o instanceof Response)) {
-                       //not a JAX-RS Response object, we need to set the 
headers from the Camel values
-
-                       if (response.getHeader(CxfConstants.PROTOCOL_HEADERS) 
!= null) {
-                               Map<String, Object> headers
-                                               = CastUtils.cast((Map<?, ?>) 
response.getHeader(CxfConstants.PROTOCOL_HEADERS));
-                               if (!ObjectHelper.isEmpty(cxfExchange) && 
!ObjectHelper.isEmpty(cxfExchange.getOutMessage())) {
-                                       
cxfExchange.getOutMessage().putIfAbsent(CxfConstants.PROTOCOL_HEADERS,
-                                                       new 
TreeMap<>(String.CASE_INSENSITIVE_ORDER));
-                               }
-                               final Map<String, List<String>> cxfHeaders = 
CastUtils
-                                               .cast((Map<?, ?>) 
cxfExchange.getOutMessage().get(CxfConstants.PROTOCOL_HEADERS));
-
-                               for (Map.Entry<String, Object> ent : 
headers.entrySet()) {
-                                       List<String> v;
-                                       if (ent.getValue() instanceof List) {
-                                               v = CastUtils.cast((List<?>) 
ent.getValue());
-                                       } else {
-                                               v = 
Arrays.asList(ent.getValue().toString());
-                                       }
-                                       cxfHeaders.put(ent.getKey(), v);
-                               }
-                       }
-
-                       if (response.getHeader(CxfConstants.HTTP_RESPONSE_CODE) 
!= null
-                                       && 
!cxfExchange.containsKey(org.apache.cxf.message.Message.RESPONSE_CODE)) {
-                               
cxfExchange.put(org.apache.cxf.message.Message.RESPONSE_CODE,
-                                               
response.getHeader(CxfConstants.HTTP_RESPONSE_CODE, Integer.class));
-                       }
-                       if (response.getHeader(CxfConstants.CONTENT_TYPE) != 
null
-                                       && 
!cxfExchange.containsKey(org.apache.cxf.message.Message.CONTENT_TYPE)) {
-                               if (!ObjectHelper.isEmpty(cxfExchange) && 
!ObjectHelper.isEmpty(cxfExchange.getOutMessage())) {
-                                       
cxfExchange.getOutMessage().putIfAbsent(CxfConstants.PROTOCOL_HEADERS,
-                                                       new 
TreeMap<>(String.CASE_INSENSITIVE_ORDER));
-                               }
-                               final Map<String, List<String>> cxfHeaders = 
CastUtils
-                                               .cast((Map<?, ?>) 
cxfExchange.getOutMessage().get(CxfConstants.PROTOCOL_HEADERS));
-
-                               if 
(!cxfHeaders.containsKey(CxfConstants.CONTENT_TYPE)) {
-                                       List<String> a = Arrays.asList((String) 
response.getHeader(CxfConstants.CONTENT_TYPE));
-                                       
cxfHeaders.put(CxfConstants.CONTENT_TYPE, a);
-                                       
cxfExchange.getOutMessage().put(CxfConstants.CONTENT_TYPE, 
response.getHeader(CxfConstants.CONTENT_TYPE));
-                               }
-                       }
-               }
-               return o;
-       }
-
-       @Override
-       public void populateExchangeFromCxfRsRequest(
-                       org.apache.cxf.message.Exchange cxfExchange,
-                       Exchange camelExchange, Method method, Object[] 
paramArray) {
-               Message camelMessage = camelExchange.getIn();
-               //Copy the CXF message header into the Camel inMessage
-               org.apache.cxf.message.Message cxfMessage = 
cxfExchange.getInMessage();
-
-               
CxfHeaderHelper.copyHttpHeadersFromCxfToCamel(headerFilterStrategy, cxfMessage, 
camelMessage, camelExchange);
-
-               // TODO move to CxfHeaderHelper and use header filter strategy 
and CXF_TO_CAMEL_HEADERS
-               // setup the charset from content-type header
-               setCharsetWithContentType(camelExchange);
-
-               //copy the protocol header
-               copyProtocolHeader(cxfMessage, camelMessage, 
camelMessage.getExchange());
-
-               
camelMessage.setHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS, 
method.getReturnType());
-
-               
camelMessage.setHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_GENERIC_TYPE, 
method.getGenericReturnType());
-
-               copyOperationResourceInfoStack(cxfMessage, camelMessage);
-
-               camelMessage.setHeader(CxfConstants.OPERATION_NAME, 
method.getName());
-
-               camelMessage.setHeader(CxfConstants.CAMEL_CXF_MESSAGE, 
cxfMessage);
-
-               camelMessage.setBody(new MessageContentsList(paramArray));
-
-               // propagate the security subject from CXF security context
-               SecurityContext securityContext = 
cxfMessage.get(SecurityContext.class);
-               if (securityContext instanceof LoginSecurityContext
-                               && ((LoginSecurityContext) 
securityContext).getSubject() != null) {
-                       
camelExchange.getIn().getHeaders().put(CxfConstants.AUTHENTICATION,
-                                       ((LoginSecurityContext) 
securityContext).getSubject());
-               } else if (securityContext != null && 
securityContext.getUserPrincipal() != null) {
-                       Subject subject = new Subject();
-                       
subject.getPrincipals().add(securityContext.getUserPrincipal());
-                       
camelExchange.getIn().getHeaders().put(CxfConstants.AUTHENTICATION, subject);
-               }
-       }
-
-       protected void setCharsetWithContentType(Exchange camelExchange) {
-               // setup the charset from content-type header
-               String contentTypeHeader = 
ExchangeHelper.getContentType(camelExchange);
-               if (contentTypeHeader != null) {
-                       String charset = 
HttpHeaderHelper.findCharset(contentTypeHeader);
-                       String normalizedEncoding = 
HttpHeaderHelper.mapCharset(charset, StandardCharsets.UTF_8.name());
-                       if (normalizedEncoding != null) {
-                               
camelExchange.setProperty(ExchangePropertyKey.CHARSET_NAME, normalizedEncoding);
-                       }
-               }
-       }
-
-       @Override
-       public MultivaluedMap<String, String> bindCamelHeadersToRequestHeaders(
-                       Map<String, Object> camelHeaders,
-                       Exchange camelExchange)
-                       throws Exception {
-
-               MultivaluedMap<String, String> answer = new MetadataMap<>();
-               
CxfHeaderHelper.propagateCamelHeadersToCxfHeaders(headerFilterStrategy, 
camelHeaders, answer, camelExchange);
-               return answer;
-       }
-
-       /**
-        * This method call Message.getBody({@link MessageContentsList}) to 
allow an appropriate converter to kick in even
-        * through we only read the first element off the MessageContextList. 
If that returns null, we check the body to see
-        * if it is a List or an array and then return the first element. If 
that fails, we will simply return the object.
-        */
-       @Override
-       public Object bindCamelMessageBodyToRequestBody(Message camelMessage, 
Exchange camelExchange)
-                       throws Exception {
-
-               Object request = 
camelMessage.getBody(MessageContentsList.class);
-               if (request instanceof MessageContentsList mcl) {
-                       return mcl.get(0);
-               }
-
-               request = camelMessage.getBody();
-               if (request instanceof List) {
-                       request = ((List<?>) request).get(0);
-               } else if (request instanceof byte[] byteArray) {
-                       return byteArray;
-               } else if (request != null && request.getClass().isArray()) {
-                       request = ((Object[]) request)[0];
-               }
-
-               return request;
-       }
-
-       /**
-        * We will return an empty Map unless the response parameter is a 
{@link Response} object.
-        */
-       @Override
-       public Map<String, Object> bindResponseHeadersToCamelHeaders(Object 
response, Exchange camelExchange)
-                       throws Exception {
-
-               Map<String, Object> answer = new HashMap<>();
-               if (response instanceof Response) {
-                       Map<String, List<Object>> responseHeaders = ((Response) 
response).getMetadata();
-                       
CxfHeaderHelper.propagateCxfHeadersToCamelHeaders(headerFilterStrategy, 
responseHeaders, answer, camelExchange);
-               }
-
-               return answer;
-       }
-
-       @Override
-       public Entity<Object> bindCamelMessageToRequestEntity(Object body, 
Message camelMessage, Exchange camelExchange)
-                       throws Exception {
-               return bindCamelMessageToRequestEntity(body, camelMessage, 
camelExchange, null);
-       }
-
-       @Override
-       public Entity<Object> bindCamelMessageToRequestEntity(
-                       Object body, Message camelMessage, Exchange 
camelExchange,
-                       WebClient webClient)
-                       throws Exception {
-               if (body == null) {
-                       return null;
-               }
-               String contentType = 
camelMessage.getHeader(CxfConstants.CONTENT_TYPE, String.class);
-               if (contentType == null) {
-                       contentType = MediaType.WILDCARD;
-               }
-               String contentEncoding = 
camelMessage.getHeader(CxfConstants.CONTENT_ENCODING, String.class);
-               if (webClient != null && contentLanguage == null) {
-                       try {
-                               Method getStateMethod = 
AbstractClient.class.getDeclaredMethod("getState");
-                               getStateMethod.setAccessible(true);
-                               ClientState clientState = (ClientState) 
getStateMethod.invoke(webClient);
-                               if 
(clientState.getRequestHeaders().containsKey(HttpHeaders.CONTENT_LANGUAGE)) {
-                                       contentLanguage = 
clientState.getRequestHeaders()
-                                                       
.getFirst(HttpHeaders.CONTENT_LANGUAGE);
-                                       if (contentLanguage != null) {
-                                               return Entity.entity(body, new 
Variant(
-                                                               
MediaType.valueOf(contentType),
-                                                               new 
Locale(contentLanguage), contentEncoding));
-                                       }
-                               }
-                       } catch (Exception ex) {
-                               LOG.warn(
-                                               "Cannot retrieve 
CONTENT_LANGUAGE from WebClient. This exception is ignored, and US Locale will 
be used",
-                                               ex);
-                       }
-               }
-               contentLanguage = Locale.US.getLanguage();
-               return Entity.entity(body, new 
Variant(MediaType.valueOf(contentType), Locale.US, contentEncoding));
-       }
-
-       /**
-        * By default, we just return the response object.
-        */
-       @Override
-       public Object bindResponseToCamelBody(Object response, Exchange 
camelExchange) throws Exception {
-               return response;
-       }
-
-       @Override
-       public HeaderFilterStrategy getHeaderFilterStrategy() {
-               return headerFilterStrategy;
-       }
-
-       @Override
-       public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
-               headerFilterStrategy = strategy;
-       }
-
-       @SuppressWarnings("unchecked")
-       protected void copyProtocolHeader(org.apache.cxf.message.Message 
cxfMessage, Message camelMessage, Exchange camelExchange) {
-               Map<String, List<String>> headers
-                               = (Map<String, List<String>>) 
cxfMessage.get(CxfConstants.PROTOCOL_HEADERS);
-               for (Map.Entry<String, List<String>> entry : 
headers.entrySet()) {
-                       // just make sure the first String element is not null
-                       if 
(headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), 
entry.getValue(), camelExchange)
-                                       || entry.getValue().isEmpty()) {
-                               LOG.trace("Drop CXF message protocol header: 
{}={}", entry.getKey(), entry.getValue());
-                       } else if (entry.getKey().startsWith(":")) {
-                               /* Ignore HTTP/2 pseudo headers such as :status 
*/
-                               continue;
-                       } else {
-                               // just put the first String element, as the 
complex one is filtered
-                               camelMessage.setHeader(entry.getKey(), 
entry.getValue().get(0));
-                       }
-                       continue;
-               }
-       }
-
-       protected void 
copyOperationResourceInfoStack(org.apache.cxf.message.Message cxfMessage, 
Message camelMessage) {
-               OperationResourceInfoStack stack = 
cxfMessage.get(OperationResourceInfoStack.class);
-               if (stack != null) {
-                       // make a copy of the operation resource info for 
looking up the sub resource location
-                       OperationResourceInfoStack copyStack = 
(OperationResourceInfoStack) stack.clone();
-                       
camelMessage.setHeader(CxfConstants.CAMEL_CXF_RS_OPERATION_RESOURCE_INFO_STACK, 
copyStack);
-
-               }
-       }
+    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultCxfRsBinding.class);
+
+    private HeaderFilterStrategy headerFilterStrategy;
+
+    private String contentLanguage;
+
+    public DefaultCxfRsBinding() {
+    }
+
+    @Override
+    public Object populateCxfRsResponseFromExchange(
+            Exchange camelExchange,
+            org.apache.cxf.message.Exchange cxfExchange)
+            throws Exception {
+        // Need to check if the exchange has the exception
+        if (camelExchange.isFailed() && camelExchange.getException() != null) {
+            throw camelExchange.getException();
+        }
+
+        org.apache.camel.Message response;
+        if (camelExchange.getPattern().isOutCapable()) {
+            response = camelExchange.getMessage();
+        } else {
+            response = camelExchange.getIn();
+            LOG.trace("Get the response from the in message");
+        }
+
+        Object o = response.getBody();
+        if (!(o instanceof Response)) {
+            //not a JAX-RS Response object, we need to set the headers from 
the Camel values
+
+            if (response.getHeader(CxfConstants.PROTOCOL_HEADERS) != null) {
+                Map<String, Object> headers
+                        = CastUtils.cast((Map<?, ?>) 
response.getHeader(CxfConstants.PROTOCOL_HEADERS));
+                if (!ObjectHelper.isEmpty(cxfExchange) && 
!ObjectHelper.isEmpty(cxfExchange.getOutMessage())) {
+                    
cxfExchange.getOutMessage().putIfAbsent(CxfConstants.PROTOCOL_HEADERS,
+                            new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
+                }
+                final Map<String, List<String>> cxfHeaders = CastUtils
+                        .cast((Map<?, ?>) 
cxfExchange.getOutMessage().get(CxfConstants.PROTOCOL_HEADERS));
+
+                for (Map.Entry<String, Object> ent : headers.entrySet()) {
+                    List<String> v;
+                    if (ent.getValue() instanceof List) {
+                        v = CastUtils.cast((List<?>) ent.getValue());
+                    } else {
+                        v = Arrays.asList(ent.getValue().toString());
+                    }
+                    cxfHeaders.put(ent.getKey(), v);
+                }
+            }
+
+            if (response.getHeader(CxfConstants.HTTP_RESPONSE_CODE) != null
+                    && 
!cxfExchange.containsKey(org.apache.cxf.message.Message.RESPONSE_CODE)) {
+                cxfExchange.put(org.apache.cxf.message.Message.RESPONSE_CODE,
+                        response.getHeader(CxfConstants.HTTP_RESPONSE_CODE, 
Integer.class));
+            }
+            if (response.getHeader(CxfConstants.CONTENT_TYPE) != null
+                    && 
!cxfExchange.containsKey(org.apache.cxf.message.Message.CONTENT_TYPE)) {
+                if (!ObjectHelper.isEmpty(cxfExchange) && 
!ObjectHelper.isEmpty(cxfExchange.getOutMessage())) {
+                    
cxfExchange.getOutMessage().putIfAbsent(CxfConstants.PROTOCOL_HEADERS,
+                            new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
+                }
+                final Map<String, List<String>> cxfHeaders = CastUtils
+                        .cast((Map<?, ?>) 
cxfExchange.getOutMessage().get(CxfConstants.PROTOCOL_HEADERS));
+
+                if (!cxfHeaders.containsKey(CxfConstants.CONTENT_TYPE)) {
+                    List<String> a = Arrays.asList((String) 
response.getHeader(CxfConstants.CONTENT_TYPE));
+                    cxfHeaders.put(CxfConstants.CONTENT_TYPE, a);
+                    cxfExchange.getOutMessage().put(CxfConstants.CONTENT_TYPE, 
response.getHeader(CxfConstants.CONTENT_TYPE));
+                }
+            }
+        }
+        return o;
+    }
+
+    @Override
+    public void populateExchangeFromCxfRsRequest(
+            org.apache.cxf.message.Exchange cxfExchange,
+            Exchange camelExchange, Method method, Object[] paramArray) {
+        Message camelMessage = camelExchange.getIn();
+        //Copy the CXF message header into the Camel inMessage
+        org.apache.cxf.message.Message cxfMessage = cxfExchange.getInMessage();
+
+        CxfHeaderHelper.copyHttpHeadersFromCxfToCamel(headerFilterStrategy, 
cxfMessage, camelMessage, camelExchange);
+
+        // TODO move to CxfHeaderHelper and use header filter strategy and 
CXF_TO_CAMEL_HEADERS
+        // setup the charset from content-type header
+        setCharsetWithContentType(camelExchange);
+
+        //copy the protocol header
+        copyProtocolHeader(cxfMessage, camelMessage, 
camelMessage.getExchange());
+
+        camelMessage.setHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS, 
method.getReturnType());
+
+        
camelMessage.setHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_GENERIC_TYPE, 
method.getGenericReturnType());
+
+        copyOperationResourceInfoStack(cxfMessage, camelMessage);
+
+        camelMessage.setHeader(CxfConstants.OPERATION_NAME, method.getName());
+
+        camelMessage.setHeader(CxfConstants.CAMEL_CXF_MESSAGE, cxfMessage);
+
+        camelMessage.setBody(new MessageContentsList(paramArray));
+
+        // propagate the security subject from CXF security context
+        SecurityContext securityContext = 
cxfMessage.get(SecurityContext.class);
+        if (securityContext instanceof LoginSecurityContext
+                && ((LoginSecurityContext) securityContext).getSubject() != 
null) {
+            camelExchange.getIn().getHeaders().put(CxfConstants.AUTHENTICATION,
+                    ((LoginSecurityContext) securityContext).getSubject());
+        } else if (securityContext != null && 
securityContext.getUserPrincipal() != null) {
+            Subject subject = new Subject();
+            subject.getPrincipals().add(securityContext.getUserPrincipal());
+            
camelExchange.getIn().getHeaders().put(CxfConstants.AUTHENTICATION, subject);
+        }
+    }
+
+    protected void setCharsetWithContentType(Exchange camelExchange) {
+        // setup the charset from content-type header
+        String contentTypeHeader = 
ExchangeHelper.getContentType(camelExchange);
+        if (contentTypeHeader != null) {
+            String charset = HttpHeaderHelper.findCharset(contentTypeHeader);
+            String normalizedEncoding = HttpHeaderHelper.mapCharset(charset, 
StandardCharsets.UTF_8.name());
+            if (normalizedEncoding != null) {
+                camelExchange.setProperty(ExchangePropertyKey.CHARSET_NAME, 
normalizedEncoding);
+            }
+        }
+    }
+
+    @Override
+    public MultivaluedMap<String, String> bindCamelHeadersToRequestHeaders(
+            Map<String, Object> camelHeaders,
+            Exchange camelExchange)
+            throws Exception {
+
+        MultivaluedMap<String, String> answer = new MetadataMap<>();
+        
CxfHeaderHelper.propagateCamelHeadersToCxfHeaders(headerFilterStrategy, 
camelHeaders, answer, camelExchange);
+        return answer;
+    }
+
+    /**
+     * This method call Message.getBody({@link MessageContentsList}) to allow 
an appropriate converter to kick in even
+     * through we only read the first element off the MessageContextList. If 
that returns null, we check the body to see
+     * if it is a List or an array and then return the first element. If that 
fails, we will simply return the object.
+     */
+    @Override
+    public Object bindCamelMessageBodyToRequestBody(Message camelMessage, 
Exchange camelExchange)
+            throws Exception {
+
+        Object request = camelMessage.getBody(MessageContentsList.class);
+        if (request instanceof MessageContentsList mcl) {
+            return mcl.get(0);
+        }
+
+        request = camelMessage.getBody();
+        if (request instanceof List) {
+            request = ((List<?>) request).get(0);
+        } else if (request instanceof byte[] byteArray) {
+            return byteArray;
+        } else if (request != null && request.getClass().isArray()) {
+            request = ((Object[]) request)[0];
+        }
+
+        return request;
+    }
+
+    /**
+     * We will return an empty Map unless the response parameter is a {@link 
Response} object.
+     */
+    @Override
+    public Map<String, Object> bindResponseHeadersToCamelHeaders(Object 
response, Exchange camelExchange)
+            throws Exception {
+
+        Map<String, Object> answer = new HashMap<>();
+        if (response instanceof Response) {
+            Map<String, List<Object>> responseHeaders = ((Response) 
response).getMetadata();
+            
CxfHeaderHelper.propagateCxfHeadersToCamelHeaders(headerFilterStrategy, 
responseHeaders, answer, camelExchange);
+        }
+
+        return answer;
+    }
+
+    @Override
+    public Entity<Object> bindCamelMessageToRequestEntity(Object body, Message 
camelMessage, Exchange camelExchange)
+            throws Exception {
+        return bindCamelMessageToRequestEntity(body, camelMessage, 
camelExchange, null);
+    }
+
+    @Override
+    public Entity<Object> bindCamelMessageToRequestEntity(
+            Object body, Message camelMessage, Exchange camelExchange,
+            WebClient webClient)
+            throws Exception {
+        if (body == null) {
+            return null;
+        }
+        String contentType = camelMessage.getHeader(CxfConstants.CONTENT_TYPE, 
String.class);
+        if (contentType == null) {
+            contentType = MediaType.WILDCARD;
+        }
+        String contentEncoding = 
camelMessage.getHeader(CxfConstants.CONTENT_ENCODING, String.class);
+        if (webClient != null && contentLanguage == null) {
+            try {
+                Method getStateMethod = 
AbstractClient.class.getDeclaredMethod("getState");
+                getStateMethod.setAccessible(true);
+                ClientState clientState = (ClientState) 
getStateMethod.invoke(webClient);
+                if 
(clientState.getRequestHeaders().containsKey(HttpHeaders.CONTENT_LANGUAGE)) {
+                    contentLanguage = clientState.getRequestHeaders()
+                            .getFirst(HttpHeaders.CONTENT_LANGUAGE);
+                    if (contentLanguage != null) {
+                        return Entity.entity(body, new Variant(
+                                MediaType.valueOf(contentType),
+                                new Locale(contentLanguage), contentEncoding));
+                    }
+                }
+            } catch (Exception ex) {
+                LOG.warn(
+                        "Cannot retrieve CONTENT_LANGUAGE from WebClient. This 
exception is ignored, and US Locale will be used",
+                        ex);
+            }
+        }
+        contentLanguage = Locale.US.getLanguage();
+        return Entity.entity(body, new Variant(MediaType.valueOf(contentType), 
Locale.US, contentEncoding));
+    }
+
+    /**
+     * By default, we just return the response object.
+     */
+    @Override
+    public Object bindResponseToCamelBody(Object response, Exchange 
camelExchange) throws Exception {
+        return response;
+    }
+
+    @Override
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    @Override
+    public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+        headerFilterStrategy = strategy;
+    }
+
+    @SuppressWarnings("unchecked")
+    protected void copyProtocolHeader(org.apache.cxf.message.Message 
cxfMessage, Message camelMessage, Exchange camelExchange) {
+        Map<String, List<String>> headers
+                = (Map<String, List<String>>) 
cxfMessage.get(CxfConstants.PROTOCOL_HEADERS);
+        for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
+            // just make sure the first String element is not null
+            if 
(headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), 
entry.getValue(), camelExchange)
+                    || entry.getValue().isEmpty()) {
+                LOG.trace("Drop CXF message protocol header: {}={}", 
entry.getKey(), entry.getValue());
+            } else if (entry.getKey().startsWith(":")) {
+                /* Ignore HTTP/2 pseudo headers such as :status */
+                continue;
+            } else {
+                // just put the first String element, as the complex one is 
filtered
+                camelMessage.setHeader(entry.getKey(), 
entry.getValue().get(0));
+            }
+            continue;
+        }
+    }
+
+    protected void 
copyOperationResourceInfoStack(org.apache.cxf.message.Message cxfMessage, 
Message camelMessage) {
+        OperationResourceInfoStack stack = 
cxfMessage.get(OperationResourceInfoStack.class);
+        if (stack != null) {
+            // make a copy of the operation resource info for looking up the 
sub resource location
+            OperationResourceInfoStack copyStack = 
(OperationResourceInfoStack) stack.clone();
+            
camelMessage.setHeader(CxfConstants.CAMEL_CXF_RS_OPERATION_RESOURCE_INFO_STACK, 
copyStack);
+
+        }
+    }
 
 }
diff --git 
a/components/camel-http-base/src/main/java/org/apache/camel/http/base/HttpHelper.java
 
b/components/camel-http-base/src/main/java/org/apache/camel/http/base/HttpHelper.java
index 197931bbd54..1a9198796eb 100644
--- 
a/components/camel-http-base/src/main/java/org/apache/camel/http/base/HttpHelper.java
+++ 
b/components/camel-http-base/src/main/java/org/apache/camel/http/base/HttpHelper.java
@@ -28,7 +28,6 @@ import org.apache.camel.support.http.HttpUtil;
 import org.apache.camel.util.CollectionHelper;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.StringHelper;
 
 public final class HttpHelper {
 
diff --git 
a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/transform/AvroPojoDataTypeTransformerTest.java
 
b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/transform/AvroPojoDataTypeTransformerTest.java
index 31b77c9327c..09c8be85509 100644
--- 
a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/transform/AvroPojoDataTypeTransformerTest.java
+++ 
b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/transform/AvroPojoDataTypeTransformerTest.java
@@ -100,8 +100,8 @@ class AvroPojoDataTypeTransformerTest {
         exchange.getMessage()
                 
.setBody(Avro.mapper().writerFor(JsonNode.class).with(avroSchema)
                         .writeValueAsBytes(Json.mapper().readTree("""
-                            { "name": "Goofy", "age": 25 }
-                        """)));
+                                    { "name": "Goofy", "age": 25 }
+                                """)));
         transformer.transform(exchange.getMessage(), DataType.ANY, 
DataType.ANY);
 
         Assertions.assertEquals(Person.class, 
exchange.getMessage().getBody().getClass());
diff --git 
a/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasytPropertiesParserCustomAlgTest.java
 
b/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasytPropertiesParserCustomAlgTest.java
index aa050eb0f54..38d211192c1 100644
--- 
a/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasytPropertiesParserCustomAlgTest.java
+++ 
b/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasytPropertiesParserCustomAlgTest.java
@@ -22,19 +22,19 @@ import org.junit.jupiter.api.BeforeEach;
 
 public class JasytPropertiesParserCustomAlgTest extends 
JasyptPropertiesParserTest {
 
-       @BeforeEach
-       public void before() {
-               knowDecrypted = "tigertigertiger";
-               knownEncrypted = 
"ENC(LuCBTHaY1G6XHRwp63teshi/LbFRzpPtq5j8SNpJgv1yn9D25py+xHNGjXEMnf/J)";
+    @BeforeEach
+    public void before() {
+        knowDecrypted = "tigertigertiger";
+        knownEncrypted = 
"ENC(LuCBTHaY1G6XHRwp63teshi/LbFRzpPtq5j8SNpJgv1yn9D25py+xHNGjXEMnf/J)";
 
         encryptor.setAlgorithm("PBEWithHmacSHA256AndAES_256");
-               encryptor.setSaltGenerator(new RandomSaltGenerator("SHA1PRNG"));
+        encryptor.setSaltGenerator(new RandomSaltGenerator("SHA1PRNG"));
         encryptor.setIvGenerator(new RandomIvGenerator("SHA1PRNG"));
-               encryptor.setPassword(knownPassword);
+        encryptor.setPassword(knownPassword);
 
         jasyptPropertiesParser.setAlgorithm("PBEWithHmacSHA256AndAES_256");
-               
jasyptPropertiesParser.setRandomSaltGeneratorAlgorithm("SHA1PRNG");
+        jasyptPropertiesParser.setRandomSaltGeneratorAlgorithm("SHA1PRNG");
         jasyptPropertiesParser.setRandomIvGeneratorAlgorithm("SHA1PRNG");
-               jasyptPropertiesParser.setEncryptor(encryptor);
-       }
+        jasyptPropertiesParser.setEncryptor(encryptor);
+    }
 }
diff --git 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
index 387321a78a2..5b0323d0e53 100644
--- 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
+++ 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
@@ -20,7 +20,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.component.kafka.consumer.KafkaManualCommit;
 import org.apache.camel.component.kafka.consumer.KafkaManualCommitFactory;
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java
index 4a6ddd517ea..93aafed3b62 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java
@@ -46,7 +46,7 @@ public class MicrometerMessageHistory extends 
DefaultMessageHistory {
     }
 
     public MicrometerMessageHistory(MeterRegistry meterRegistry, Route route, 
NamedNode namedNode,
-            MicrometerMessageHistoryNamingStrategy namingStrategy, Message 
message) {
+                                    MicrometerMessageHistoryNamingStrategy 
namingStrategy, Message message) {
         super(route.getId(), namedNode, System.currentTimeMillis(), message);
         this.meterRegistry = meterRegistry;
         this.route = route;
diff --git 
a/components/camel-rest-openapi/src/test/java/org/apache/camel/component/rest/openapi/WireMockJettyServerFactory.java
 
b/components/camel-rest-openapi/src/test/java/org/apache/camel/component/rest/openapi/WireMockJettyServerFactory.java
index 7a5c4c25dc3..182028aeb00 100644
--- 
a/components/camel-rest-openapi/src/test/java/org/apache/camel/component/rest/openapi/WireMockJettyServerFactory.java
+++ 
b/components/camel-rest-openapi/src/test/java/org/apache/camel/component/rest/openapi/WireMockJettyServerFactory.java
@@ -46,9 +46,10 @@ public final class WireMockJettyServerFactory extends 
JettyHttpServerFactory {
         return new Jetty11HttpServer(options, adminRequestHandler, 
stubRequestHandler) {
 
             @Override
-            protected ServerConnector createHttpsConnector(String bindAddress, 
HttpsSettings httpsSettings, JettySettings jettySettings, 
NetworkTrafficListener listener) {
-                SslContextFactory.Server http2SslContextFactory =
-                        SslContexts.buildHttp2SslContextFactory(httpsSettings);
+            protected ServerConnector createHttpsConnector(
+                    String bindAddress, HttpsSettings httpsSettings, 
JettySettings jettySettings,
+                    NetworkTrafficListener listener) {
+                SslContextFactory.Server http2SslContextFactory = 
SslContexts.buildHttp2SslContextFactory(httpsSettings);
                 
http2SslContextFactory.setIncludeCipherSuites("TLS_DHE_RSA_WITH_AES_128_GCM_SHA256");
                 http2SslContextFactory.setProtocol("TLSv1.3");
 
@@ -65,14 +66,12 @@ public final class WireMockJettyServerFactory extends 
JettyHttpServerFactory {
 
                 HttpConnectionFactory http = new 
HttpConnectionFactory(httpConfig);
 
-                SslConnectionFactory ssl =
-                        new SslConnectionFactory(http2SslContextFactory, 
http.getProtocol());
+                SslConnectionFactory ssl = new 
SslConnectionFactory(http2SslContextFactory, http.getProtocol());
 
                 int acceptors = jettySettings.getAcceptors().orElse(3);
 
-                NetworkTrafficServerConnector connector =
-                        new NetworkTrafficServerConnector(
-                                jettyServer, null, null, null, acceptors, 2, 
ssl, http);
+                NetworkTrafficServerConnector connector = new 
NetworkTrafficServerConnector(
+                        jettyServer, null, null, null, acceptors, 2, ssl, 
http);
 
                 connector.setPort(httpsSettings.port());
                 connector.setNetworkTrafficListener(listener);
diff --git 
a/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
 
b/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
index 5e712a9a589..0c766e1b400 100644
--- 
a/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
+++ 
b/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
@@ -432,18 +432,19 @@ public class StreamConsumer extends DefaultConsumer 
implements Runnable {
         return fileStream;
     }
 
-  /**
-   * From a comma-separated list of headers in the format of "FIELD=VALUE" or 
"FIELD:VALUE", split on the commas
-   * and split on the separator to create a stream of Map.Entry values while 
filtering out invalid combinations
-   * @param headerList A string containing a comma-separated list of headers
-   * @return A Stream of Map.Entry items which can then be added as headers to 
a URLConnection
-   */
-  Stream<Map.Entry<String,String>> parseHeaders(String headerList) {
-      return Arrays.asList(headerList.split(","))
-        .stream()
-        .map(s -> s.split("[=:]"))
-        .filter(h -> h.length == 2)
-        .map(h -> Map.entry(h[0].trim(), h[1].trim()));
+    /**
+     * From a comma-separated list of headers in the format of "FIELD=VALUE" 
or "FIELD:VALUE", split on the commas and
+     * split on the separator to create a stream of Map.Entry values while 
filtering out invalid combinations
+     *
+     * @param  headerList A string containing a comma-separated list of headers
+     * @return            A Stream of Map.Entry items which can then be added 
as headers to a URLConnection
+     */
+    Stream<Map.Entry<String, String>> parseHeaders(String headerList) {
+        return Arrays.asList(headerList.split(","))
+                .stream()
+                .map(s -> s.split("[=:]"))
+                .filter(h -> h.length == 2)
+                .map(h -> Map.entry(h[0].trim(), h[1].trim()));
     }
 
     private InputStream resolveStreamFromUrl() throws IOException {
@@ -455,7 +456,7 @@ public class StreamConsumer extends DefaultConsumer 
implements Runnable {
         String headers = endpoint.getHttpHeaders();
         if (headers != null) {
             parseHeaders(headers)
-              .forEach(e -> 
urlConnectionToClose.setRequestProperty(e.getKey(), e.getValue()));
+                    .forEach(e -> 
urlConnectionToClose.setRequestProperty(e.getKey(), e.getValue()));
         }
 
         InputStream is;
diff --git 
a/components/camel-thrift/src/main/java/org/apache/camel/component/thrift/server/ThriftMethodHandler.java
 
b/components/camel-thrift/src/main/java/org/apache/camel/component/thrift/server/ThriftMethodHandler.java
index 1154a41a0ad..f7f928737fa 100644
--- 
a/components/camel-thrift/src/main/java/org/apache/camel/component/thrift/server/ThriftMethodHandler.java
+++ 
b/components/camel-thrift/src/main/java/org/apache/camel/component/thrift/server/ThriftMethodHandler.java
@@ -24,7 +24,6 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.component.thrift.ThriftConstants;
 import org.apache.camel.component.thrift.ThriftConsumer;
-import org.apache.camel.component.thrift.ThriftEndpoint;
 import org.apache.camel.component.thrift.ThriftUtils;
 import org.apache.thrift.TApplicationException;
 import org.apache.thrift.TException;
diff --git 
a/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
 
b/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
index dcdb4bf47b7..4fa959b8f19 100644
--- 
a/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
+++ 
b/components/camel-vertx/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxHttpEndpoint.java
@@ -34,7 +34,6 @@ import org.apache.camel.support.DefaultEndpoint;
 import org.apache.camel.support.http.HttpUtil;
 import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.StringHelper;
 
 @UriEndpoint(firstVersion = "3.5.0", scheme = "vertx-http", title = "Vert.x 
HTTP Client", syntax = "vertx-http:httpUri",
              category = { Category.HTTP }, producerOnly = true, 
lenientProperties = true,
diff --git a/etc/scripts/sign.sh b/etc/scripts/sign.sh
index 7aafd104772..ae22f18c60c 100755
--- a/etc/scripts/sign.sh
+++ b/etc/scripts/sign.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-
+#
 # 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.
@@ -7,13 +7,14 @@
 # (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
+#      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.
+#
 
 # This is a utility script to sign and sha512 all files in the given directory.
 
diff --git 
a/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
 
b/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
index 7f500f05cbc..b8130759733 100644
--- 
a/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
+++ 
b/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
@@ -20,7 +20,6 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;


Reply via email to