[ 
https://issues.apache.org/jira/browse/CAMEL-23716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-23716 started by Andrea Cosentino.
------------------------------------------------
> camel-salesforce - align Exchange header constant names with Camel naming 
> convention
> ------------------------------------------------------------------------------------
>
>                 Key: CAMEL-23716
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23716
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-salesforce
>            Reporter: Andrea Cosentino
>            Assignee: Andrea Cosentino
>            Priority: Major
>             Fix For: 4.21.0
>
>
> The Salesforce header constants in 
> {{org.apache.camel.component.salesforce.SalesforceEndpointConfig}} use 
> camelCase string values that do not follow the Camel naming convention, and 
> the camel-salesforce module ships no component-specific HeaderFilterStrategy. 
> As a result these names fall outside the {{CAMEL_FILTER_STARTS_WITH = 
> {"Camel", "camel"}}} set used by the standard HeaderFilterStrategy 
> implementations, so they are not stripped by the default Camel / HTTP header 
> filtering when an exchange flows between transports. 
> {{AbstractSalesforceProcessor.getParameter()}} resolves an incoming header 
> ahead of the endpoint configuration, so a header present on the exchange 
> supersedes the route-time URI parameter.
> The most commonly-set constants drive the REST query / search / Apex dispatch:
> * {{SOBJECT_QUERY = "sObjectQuery"}} - SOQL query passed to 
> {{restClient.query()}} / {{queryAll()}}
> * {{SOBJECT_SEARCH = "sObjectSearch"}} - SOSL search passed to 
> {{restClient.search()}}
> * {{SOBJECT_NAME = "sObjectName"}} / {{SOBJECT_ID = "sObjectId"}} - target 
> object / record for CRUD
> * {{APEX_URL = "apexUrl"}} / {{APEX_METHOD = "apexMethod"}} - Apex REST 
> endpoint + HTTP method passed to {{restClient.apexCall()}}
> * {{APEX_QUERY_PARAM_PREFIX = "apexQueryParam."}} - prefix collected into the 
> Apex call query parameters
> The same applies to the remaining string-value constants in 
> {{SalesforceEndpointConfig}} (sObjectIds, sObjectFields, sObjectIdName, 
> sObjectIdValue, sObjectBlobFieldName, sObjectClass, streamQueryResult, 
> compositeMethod, limit, allOrNone, eventName, eventSchemaId, 
> eventSchemaFormat, contentType, jobId, batchId, resultId, queryLocator, 
> locator, maxRecords, pkChunking*, reportId, includeDetails, reportMetadata, 
> instanceId, defaultReplayId, fallBackReplayId, initialReplayIdMap, 
> replayPreset, pubSubDeserializeType, pubSubPojoClass, approval, rawPath, 
> rawMethod, rawQueryParameters, rawHttpHeaders, notFoundBehaviour, apiVersion, 
> format, rawPayload).
> Rename to {{CamelSalesforce<Name>}} (and {{CamelSalesforceApexQueryParam.}} 
> for the prefix constant) across all constants.
> h3. Fix shape
> Rename the *string value* of each producer-read header constant to 
> {{Camel<Component><Name>}}; keep the Java field name unchanged so routes that 
> reference the constants symbolically continue to compile and run. Update 
> tests that use the literal string values; regenerate component catalog JSON 
> and docs; add an upgrade-guide entry in {{camel-4x-upgrade-guide-4_21.adoc}} 
> marked as a potential breaking change (and matching 4_18 / 4_14 for backports 
> - the component exists on both maintenance branches).
> h3. References
> * Tracker: CAMEL-23577
> * Precedent (rename pattern): CAMEL-23526 (camel-cxf)
> * Alternative pattern (HeaderFilterStrategy approach): CAMEL-23532 
> (camel-vertx-websocket / camel-atmosphere-websocket / camel-iggy)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to