On Wed, Apr 22, 2020 at 9:39 PM David Jencks <david.a.jen...@gmail.com> wrote: > > I looked through the non-core parts of the website and see that the > subprojects generally have one or more “index tables” similar to the index > tables for the “main” components component (and now the 3.2.x version of > “components”). > > I think it would be nice if these all had the same format and method of > generation as the main ones. Looking briefly at the code, it’s not very > clear to me how the information gets from human effort into the table. In > order to use the “index extension” as in the “main” tables, the necessary > information has to be available as asciidoc attributes in the pages to be > included. It’s possible to do various bits of asciidoc magic so that these > pages might not be the ones in the component component, but rather wrappers > around them, but it would certainly be simpler if the info could be in the > current pages. > > For the main camel components, IIUC the workflow is like this: > > 1. A developer annotations the actual java class > 2. Something extracts these annotations and constructs a <component>.json > file from the information. > 3. In the camel maven packaging plugin UpdateReadmeMojo, this information is > extracted from the .json file and translated into suitable header attributes. > > Here’s what I think I’ve discovered about the subprojects…. > > - Camel K: no components table, but there’s a traits list/table that could > perhaps benefit from the same sort of treatment. > > - Camel Karaf: There’s a table of components that seems to be extracted from > the feature file. > — How is this feature file maintained or generated?
Manaully. > — The existing table seems to have a second line under each component name > such as 'activemq:destinationType:destinationName’ I can’t quite imagine what > this is. (this shows up in quarkus and spring-boot-starter tables also) > Its Camel endpoint syntax for using the component (eg syntax in @UriEndpoint) eg how the component are used in endpoint uris in your Camel routes > - Camel Kafka Connector: I don’t see any index tables > > - Camel Quarkus: Index tables “just like” in main components. I haven’t > identified where the information for these comes from. If you mean this table: https://github.com/apache/camel-quarkus/blob/master/extensions/readme.adoc There is a maven plugin that generates this table from the list of extensions it has (components) and enrich that with data from camel-catalog from camel v3. > > - Camel Spring Boot Starters: Index tables “just like” in main components. > I haven’t identified where the information for these comes from. > If you mean this table: https://github.com/apache/camel-spring-boot/blob/master/components-starter/README.adoc There is a maven plugin that generates this table from the list of component starters it has (components) and enrich that with data from camel-catalog from camel v3. > > Could experts on these subprojects explain the data flow? > —— > > From my current point of view, everything would be simplest if the > information about which “extensions” apply to a given > component/language/data-format could be in the json file describing it; IIUC > one way for it to get there would be to add the information to the base java > class. I’d think this information might be more generally useful, studying a > component you could see, "hmm this is available in karaf but not quarkus”. > For instance, there could be a little table in each component page showing > which subprojects it applies to or is available in. I don’t know how > reliable maintaining this by hand would be or if maintenance could plausibly > be automated. > Yeah we have talked about this before about an uber camel-catalog that has such details from all the sub projects. But each own project has only its own information. There is a JIRA ticket about having a webpage on the site that lists the components and [x] for supported runtimes (sub projects). > Thanks, > David Jencks -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2