saravanakumar1987 opened a new pull request, #29944:
URL: https://github.com/apache/camel/pull/29944

   # Description
   
   Part of [CAMEL-23832](https://issues.apache.org/jira/browse/CAMEL-23832). 
This pull request covers `camel-spring-ws` (scheme `spring-ws`). It does not 
complete the ticket, so please keep the ticket open.
   
   Only description texts change: the component description, one component 
option, 16 endpoint options and 7 headers. No option or header is added, 
removed or renamed, and no default value, label, type or enum value changes.
   
   The new option and header texts are in the `description` attribute of the 
annotations (`@UriPath` and `@UriParam` on the endpoint options, `@Metadata` on 
the component option and the header constants), and the setter Javadoc that 
carried the old texts is removed (for three headers it was the Javadoc on the 
constant, and the other four headers already had their text in the annotation).
   
   The component description is the Javadoc of the endpoint class 
(`SpringWebserviceEndpoint`), from which the build generates the description in 
the component JSON, the doc page header and the DSL.
   
   The names were checked against the Spring Web Services 5.0.3 sources 
(spring-ws-core, spring-ws-support and spring-xml), the version set by 
`spring-ws-version` in `parent/pom.xml`.
   
   | Text | Problem in the current text | Checked against |
   |---|---|---|
   | component description (Javadoc of `SpringWebserviceEndpoint`) | The 
current text names neither the protocol (SOAP) nor the library (Spring Web 
Services), and it speaks to the reader (your own) instead of saying what the 
consumer and the producer do. | `SpringWebserviceEndpoint.createConsumer`, 
`SpringWebserviceConsumer` (a Spring WS `MessageEndpoint` that registers itself 
with the endpoint mapping and runs the route in `invoke`), 
`SpringWebserviceProducer.process` (`WebServiceTemplate.sendAndReceive`, the 
response as a `SoapMessage`); Spring WS `MessageDispatcher`, 
`MessageEndpointAdapter`, `WebServiceTemplate`, and the defaults 
`SaajSoapMessageFactory` and `SoapMessageDispatcher` |
   | `useGlobalSslContextParameters` (component option) | It does not say that 
only the producer uses the global parameters, and only for endpoints that have 
no sslContextParameters. | `SpringWebserviceComponent.createEndpoint`, 
`SSLContextParametersAware.retrieveGlobalSslContextParameters`, 
`SpringWebserviceProducer.prepareMessageSenders` and its message sender 
decorator; the consumer never reads `sslContextParameters` |
   | `type` (endpoint path option) | It describes five of the eight values 
(action, to and uripath are missing), and it does not say that the endpoint URI 
takes rootqname, soapaction and uripath, while the catalog lists the constant 
names ROOT_QNAME, SOAP_ACTION and URI_PATH. | 
`EndpointMappingType.getTypeFromUriPrefix`, 
`SpringWebserviceComponent.addConsumerConfiguration`, 
`CamelEndpointMapping.getEndpointInternal`, 
`WSACamelEndpointMapping.getEndpointInternal`; Spring WS `PayloadRootUtils`, 
`SoapMessage.getSoapAction`, `HttpServletConnection.getUri`, 
`AbstractAddressingVersion`, spring-xml `XPathExpression`; the test contexts of 
`ConsumerEndpointMappingRouteTest`, `ConsumerWSAEndpointMappingRouteTest` and 
`ConsumerEndpointMappingByBeanNameRouteTest` |
   | `lookupKey` (endpoint path option) | It does not say what the key is 
compared with, nor which form it has for each type. | 
`SpringWebserviceComponent.getLookupKey` and 
`addEndpointDispatcherToConfiguration`, 
`CamelEndpointMapping.getEndpointInternal` (the `*` at the end of a uripath 
key, `QName.toString()`), `WSACamelEndpointMapping` (the combined Action:To and 
To:Action keys); `ConsumerEndpointMappingRouteTest`, 
`ConsumerWSAEndpointMappingRouteTest` |
   | `webServiceEndpointUri` (endpoint path option) | It does not explain 
"default": it names neither the header that replaces the address nor the case 
in which the address is not used, and it does not say that the address stands 
in place of type and lookupKey. | 
`SpringWebserviceComponent.configureProducerConfiguration` and 
`addConsumerConfiguration`, `SpringWebserviceProducer.process`; Spring WS 
`WebServiceTemplate` (`getDefaultUri`, `setDefaultUri`, `sendAndReceive`); 
`ProducerLocalRouteTest` |
   | `endpointDispatcher` (endpoint option) | It describes the class of the 
bean, but not what the option does, and it does not say that the component sets 
the option itself when type is beanname. | 
`SpringWebserviceComponent.addEndpointDispatcherToConfiguration`, 
`SpringWebserviceEndpoint.createConsumer`, `CamelEndpointDispatcher.invoke`; 
Spring WS `PayloadRootQNameEndpointMapping`, `SoapActionEndpointMapping`, 
`AbstractEndpointMapping.resolveStringEndpoint`; 
`ConsumerEndpointMappingByBeanNameRouteTest` |
   | `endpointMapping` (endpoint option) | It names CamelEndpointMapping, but 
the option takes any CamelSpringWSEndpointMapping and the types action and to 
need a WSACamelEndpointMapping, and it does not say that the option is 
required. | `CamelSpringWSEndpointMapping`, 
`SpringWebserviceComponent.addEndpointMappingToConfiguration`, 
`SpringWebserviceConsumer.doStart` and `doStop`, `CamelEndpointMapping` and 
`WSACamelEndpointMapping` (`getEndpointInternal`); Spring WS 
`MessageDispatcher` (`initEndpointMappings`, `getEndpoint`); 
`ConsumerWSAEndpointMappingRouteTest` |
   | `allowResponseAttachmentOverride` (endpoint option) | It does not say what 
is copied to where: in/out exchange, actual service layer and overwritten are 
not explained. | 
`SpringWebserviceProducer.populateMessageAttachmentsFromResponse`, 
camel-attachments `DefaultAttachmentMessage.addAttachment`; Spring WS 
`Attachment`, `MimeMessage.getAttachments`; `SoapResponseAttachmentTest` |
   | `allowResponseHeaderOverride` (endpoint option) | The first two sentences 
do not say what is copied to where. The last sentence, written this year for 
CAMEL-25225, is kept, because the code does not contradict it. Only its 
spelling of SOAP changes. | 
`SpringWebserviceProducer.populateMessageHeaderFromResponse` (the local part of 
the attribute and element names, the header filter strategy); Spring WS 
`SoapElement`, `SoapHeader`; `ProducerSoapHeaderFilterTest` |
   | `faultAction` (endpoint option) | The text is the Javadoc of the Spring WS 
Action annotation (provided by the method), and it does not say that only a 
consumer with a WSACamelEndpointMapping uses the option. | 
`WSACamelEndpointMapping` (`getFaultAction`, `getDefaultFaultAction`, 
`faultActionSuffix`), no other class reads the option; Spring WS 
`AbstractActionEndpointMapping`, `AbstractAddressingEndpointMapping`, 
`AddressingEndpointInterceptor`; `AbstractConsumerTests`, `AbstractWSATests` |
   | `faultTo` (endpoint option) | It speaks of a response header and names 
faultAction, but the producer puts the value into the FaultTo header of the 
request, and only when a WS-Addressing Action is set. | 
`SpringWebserviceProducer.process` and 
`DefaultWebserviceMessageCallback.doWithMessage`; Spring WS `ActionCallback`, 
`AbstractAddressingVersion.addAddressingHeaders`; `ProducerParamsBasicTest`, 
`ProducerParamsPrecedenceTest` |
   | `messageSender` (endpoint option) | It does not say that the consumer uses 
the option too, with a WSACamelEndpointMapping, nor that the option replaces 
the message senders of the WebServiceTemplate. | 
`SpringWebserviceComponent.configureProducerConfiguration`, 
`WSACamelEndpointMapping.getMessageSenders`; Spring WS 
`WebServiceAccessor.setMessageSender`, `AbstractAddressingEndpointMapping`, 
`AddressingEndpointInterceptor`; `CamelDirectSenderTest` |
   | `outputAction` (endpoint option) | The text is the Javadoc of the Spring 
WS Action annotation (provided by the method), and it does not say that only a 
consumer with a WSACamelEndpointMapping uses the option. | 
`WSACamelEndpointMapping` (`getResponseAction`, `getDefaultResponseAction`, 
`outputActionSuffix`), no other class reads the option; Spring WS 
`AbstractActionEndpointMapping`, `AddressingEndpointInterceptor`; 
`AbstractConsumerTests` |
   | `replyTo` (endpoint option) | It speaks of a response header, but the 
producer puts the value into the ReplyTo header of the request, and only when a 
WS-Addressing Action is set. | `SpringWebserviceProducer.process` and 
`DefaultWebserviceMessageCallback.doWithMessage`; Spring WS `ActionCallback`, 
`AbstractAddressingVersion.addAddressingHeaders`; `ProducerParamsBasicTest`, 
`ProducerParamsPrecedenceTest` |
   | `timeout` (endpoint option) | It names CommonsHttpMessageSender, which is 
not a class of Spring WS 5.0.3, and it does not say that the class of the 
message sender must match exactly. | 
`SpringWebserviceProducer.prepareMessageSenders` and its message sender 
decorator (`createConnection`); Spring WS 
`HttpComponentsMessageSender.setReadTimeout`, `HttpUrlConnectionMessageSender`, 
`HttpsUrlConnectionMessageSender`, the default message sender of 
`WebServiceTemplate`; JDK `URLConnection.setReadTimeout` (the test, 
`ProducerRemoteRouteTimeOutManualTest`, is manual) |
   | `wsAddressingAction` (endpoint option) | It says that the To header is set 
to the address of the web service, which the code does not do with Spring WS 
5.0.3, and it does not name the header that replaces the option. | 
`SpringWebserviceProducer.process` and 
`DefaultWebserviceMessageCallback.doWithMessage`; Spring WS `ActionCallback`, 
`Addressing10.isToHeaderRequired`, 
`AbstractAddressingVersion.addAddressingHeaders`, `UuidMessageIdStrategy`; 
`ProducerParamsBasicTest` |
   | `sslContextParameters` (endpoint option) | It does not say which side uses 
the option, nor that it is applied only to the default message sender. | 
`SpringWebserviceProducer.prepareMessageSenders` and its message sender 
decorator, `SpringWebserviceComponent.createEndpoint`, 
`SSLContextParametersAware`; Spring WS `WebServiceTemplate` (its default 
message sender); the consumer never reads the option |
   | `soapAction` (endpoint option) | It does not say that the 
CamelSpringWebserviceSoapAction header replaces the option. | 
`SpringWebserviceProducer.process` and 
`DefaultWebserviceMessageCallback.doWithMessage`; Spring WS 
`SoapActionCallback`, `SoapMessage.setSoapAction`, 
`SaajSoapMessage.setSoapAction`; `ProducerLocalRouteTest` |
   | `CamelSpringWebserviceEndpointUri` (header) | It does not say which URI it 
is, nor what the producer does with it. | `SpringWebserviceProducer.process`, 
`SpringWebserviceComponent.configureProducerConfiguration`; 
`ProducerLocalRouteTest` |
   | `CamelSpringWebserviceSoapHeader` (header) | It does not say which SOAP 
header it is, and the consumer sets the header too, although the label is 
producer. | `SpringWebserviceConsumer.extractSourceFromSoapHeader`, 
`SpringWebserviceProducer` (`DefaultWebserviceMessageCallback.doWithMessage`, 
`populateMessageHeaderFromResponse`), `SpringWebserviceHelper.toResult`; Spring 
WS `SoapElement.getSource`, `SoapHeader.getResult`; `SoapHeaderTest`, 
`ProducerSoapHeaderFilterTest` |
   | `CamelSpringWebserviceAddressingAction` (header) | It says that the To 
header is set to the address of the web service, which the code does not do 
with Spring WS 5.0.3, and it does not say that the header replaces the option. 
| as `wsAddressingAction`; `DefaultWebserviceMessageCallback.doWithMessage` 
(the header takes precedence over the option) |
   | `CamelSpringWebserviceAddressingFaultTo` (header) | It speaks of a 
response header and names faultAction, but the producer puts the value into the 
FaultTo header of the request. | as `faultTo`; `ProducerParamsPrecedenceTest` |
   | `CamelSpringWebserviceAddressingReplyTo` (header) | It speaks of a 
response header, but the producer puts the value into the ReplyTo header of the 
request. | as `replyTo`; `ProducerParamsPrecedenceTest` |
   | `breadcrumbId` (header) | It does not say who sets the header, nor from 
what. | `SpringWebserviceConsumer.invoke` (the breadcrumbId MIME header of the 
SAAJ message), `CamelContext.isUseBreadcrumb`; Spring WS 
`SaajSoapMessageFactory` (the transport headers of the request become the MIME 
headers); the test, `ConsumerBreadcrumbIdTest`, is disabled |
   | `CamelSpringWebserviceSoapAction` (header) | It does not say that the 
header replaces the soapAction option. | as `soapAction`; `BasicMessageFilter` 
keeps the header out of the SOAP header of the request |
   
   ## Found in the review, not changed here
   
   - `outputAction`, `faultAction` and `messageSender` have the label producer, 
but the consumer reads them: `WSACamelEndpointMapping` takes from them the 
WS-Addressing Action header of the response and of a SOAP fault, and the 
message sender for a response that goes to a ReplyTo or FaultTo address. The 
producer does not use `outputAction` and `faultAction` at all.
   - With Spring Web Services 5.0.3 the producer writes no WS-Addressing To 
header, because it creates the `ActionCallback` with the Action only and never 
calls `setShouldInitializeTo(true)`. The old texts of `wsAddressingAction` and 
`CamelSpringWebserviceAddressingAction` said that the To header is set to the 
address of the web service, and the new texts leave the To header out.
   - The catalog lists the values of `type` as the enum constant names (for 
example `ROOT_QNAME`, `SOAP_ACTION` and `URI_PATH`), but the endpoint URI takes 
`rootqname`, `soapaction` and `uripath`, and takes a URI that starts with 
`ROOT_QNAME:` as the address of a producer. The new text of `type` says how the 
endpoint URI writes the values, and listing them that way in the catalog would 
be a metadata change.
   - The `faultActionSuffix` of `WSACamelEndpointMapping` starts as `Response` 
(`DEFAULT_OUTPUT_ACTION_SUFFIX`), not as `Fault` 
(`DEFAULT_FAULT_ACTION_SUFFIX`), although the Javadoc of its setter points to 
the latter, and Spring WS 5.0.3 `AbstractActionEndpointMapping` does the same. 
The new text of `faultAction` states Response as the default, as the code and 
`AbstractConsumerTests` have it.
   
   # Target
   
   - [x] I checked that the commit is targeting the correct branch (Camel 4 
uses the `main` branch)
   
   # Tracking
   
   - [x] If this is a large change, bug fix, or code improvement, I checked 
there is a [JIRA issue](https://issues.apache.org/jira/browse/CAMEL) filed for 
the change (usually before you start working on it).
   
   # Apache Camel coding standards and style
   
   - [x] I checked that each commit in the pull request has a meaningful 
subject line and body.
   - [x] I have run `mvn clean install -Dquickly -DskipTests` from the root 
folder and then `mvn install -DskipTests -nsu` in 
`components/camel-spring-parent/camel-spring-ws`, `catalog/camel-catalog`, 
`dsl/camel-endpointdsl` and `dsl/camel-componentdsl`, and I have committed all 
auto-generated changes.
   
   # AI-assisted contributions
   
   - [x] If this PR includes AI-generated code, commits have proper 
co-authorship attribution (e.g., `Co-authored-by` trailers) and the PR 
description identifies the AI tool used.
   
   The descriptions and this text were drafted with Claude (Anthropic) and 
checked against the Camel source and the Spring Web Services 5.0.3 sources.
   
   _Claude Code on behalf of saravanakumar1987_
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to