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

   ## Summary
   
   Fix metadata mismatches between `@UriParam` annotations and actual runtime 
behaviour in 7 components. All were confirmed on main.
   
   ## Root Cause & Fix
   
   ### 1. azure-storage-datalake: Wrong `enums` on `operation`
   `DataLakeConfiguration.operation` had `enums = "listFileSystem, listFiles"` 
but `DataLakeOperationsDefinition` has **15 values**. The hardcoded `enums` 
attribute overrides what the annotation processor would derive from the enum 
type. **Fix:** remove the `enums` attribute so the processor uses the actual 
enum constants.
   
   ### 2. google-secret-manager: Incomplete `enums` on `operation`
   `GoogleSecretManagerConfiguration.operation` had `enums = "createSecret"` 
but `GoogleSecretManagerOperations` has **4 values** (`createSecret`, 
`getSecretVersion`, `deleteSecret`, `listSecrets`). **Fix:** remove the `enums` 
attribute.
   
   ### 3. google-storage: `objectName` labelled `producer`-only
   `GoogleCloudStorageConfiguration.objectName` was labelled `producer` but 
`GoogleCloudStorageConsumer` uses `getConfiguration().getObjectName()` to 
filter which object to read. **Fix:** change label to `common`.
   
   ### 4. web3j: `operation` labelled `producer`-only
   `Web3jConfiguration.operation` was labelled `producer` but 
`Web3jConsumer.process()` dispatches on `configuration.getOperation()` to route 
requests. **Fix:** change label to `common`.
   
   ### 5. grpc: `forwardOnCompleted`/`forwardOnError` labelled `consumer`-only
   Both flags were labelled `consumer` but `GrpcResponseRouterStreamObserver` 
(the producer-side streaming client, created via `GrpcStreamObserverFactory`) 
checks both via `configuration.isForwardOnError()` and 
`configuration.isForwardOnCompleted()`. **Fix:** change labels to `common`.
   
   ### 6. netty-http: `bootstrapConfiguration` invisible in metadata
   `NettyHttpComponent.createEndpoint()` extracts `bootstrapConfiguration` via 
`resolveAndRemoveReferenceParameter` before the parameter map reaches the 
endpoint. It is completely absent from `@UriParam` annotations, making it 
invisible in all generated metadata. **Fix:** add a doc-only `@UriParam` field 
in `NettyHttpEndpoint` with `javaType = 
"org.apache.camel.component.netty.NettyServerBootstrapConfiguration"`, matching 
the pattern already used for `httpConfiguration` in the same class.
   
   ### 7. jt400: `outputFieldsIdx`/`fieldsLength` String setters have no 
`@UriParam`
   `Jt400Configuration` annotated `Integer[] outputFieldsIdxArray` and 
`Integer[] outputFieldsLengthArray` with `@UriParam`, but users cannot set 
`Integer[]` from a URI string. The String-accepting setters 
`setOutputFieldsIdx(String)` and `setFieldsLength(String)` (which parse 
comma-separated values into the arrays) existed but had no annotation and no 
getter — invisible in metadata and unreachable via URI. **Fix:** introduce 
`String outputFieldsIdx` and `String fieldsLength` fields with `@UriParam`, add 
corresponding getters, update the setters to also store the string value for 
round-trip, and remove `@UriParam` from the Integer[] array fields.
   
   ## Test
   
   All 7 affected modules compile cleanly (`mvn compile -q`). The 
azure-storage-datalake generated JSON was regenerated by the annotation 
processor and now lists all 15 enum values instead of the stale 2.
   
   ---
   _Hermes Agent (Claude Sonnet 4.6) on behalf of Guillaume Nodet_
   


-- 
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