Dhairya-007 opened a new pull request, #29967:
URL: https://github.com/apache/camel/pull/29967

   ## Problem
   
   Six options on the `tahu-edge` endpoint put an aside into their `label`:
   
   ```java
   @UriPath(label = "producer (device only)", description = "ID of this edge 
node device")
   ...
   @UriParam(label = "producer (edge node only)", description = "Host ID of the 
primary host application for this edge node")
   ...
   @UriParam(label = "producer (edge node only),advanced", description = "Flag 
enabling support for metric aliases", ...)
   ```
   
   `label` is a comma-separated set of group tokens, not prose, so each of 
those strings becomes a group of its own. In `tahu-edge.json` as shipped:
   
   ```
     2 path       producer (device only)     producer (device only)             
deviceId
     8 parameter  producer                   producer                           
metricDataTypePayloadMap
     9 parameter  producer (advanced)        producer,advanced                  
headerFilterStrategy
    11 parameter  advanced                   producer (edge node only),advanced 
bdSeqManager
    12 parameter  advanced                   producer (edge node only),advanced 
bdSeqNumPath
    13 parameter  advanced                   producer (edge node only),advanced 
useAliases
    14 parameter  producer (edge node only)  producer (edge node only)          
deviceIds
    15 parameter  producer (edge node only)  producer (edge node only)          
primaryHostId
   ```
   
   So the component's option table has a `producer (device only)` section with 
one entry and a `producer (edge node only)` section with two, and the three 
`,advanced` ones come out worse: the generator does not recognise `producer 
(edge node only)` as a known token, so they land in the plain `advanced` group 
- separated from the producer options they configure, and from 
`headerFilterStrategy` two lines above them in the same file, which already 
uses the correct `producer,advanced` and is grouped under `producer (advanced)`.
   
   Filtering the catalog by the `producer` label also misses all six.
   
   ## Fix
   
   Use `producer` and `producer,advanced`, as the rest of the same class 
already does, and move the device-only / edge-node-only aside into the 
description, so the information is still there for the reader:
   
   ```java
   @UriPath(label = "producer", description = "ID of this edge node device. 
Applies to the device endpoint only.")
   ```
   
   After this the groups are `producer` for the three paths and `deviceIds`, 
`metricDataTypePayloadMap`, `primaryHostId`, and `producer (advanced)` for the 
five advanced ones.
   
   The regenerated `tahu-edge.json` files are included - produced by 
`camel-package-maven-plugin`, not edited by hand. 
`TahuEdgeEndpointBuilderFactory` in camel-endpointdsl also carries these group 
names in its javadoc; I left it for the build to regenerate rather than 
hand-reordering a 600-line generated file.


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