Hi

Yeah these starters are not in use and should be removed

camel-debezium-common-starter
http-common-starter
jetty-common-starter


On Mon, Oct 18, 2021 at 8:34 PM David Jencks <david.a.jen...@gmail.com> wrote:
>
> I can easily remove the empty starter json files, but if e.g. 
> camel-debezium-common-starter isn’t a starter, what is it?  Removing the 3 
> starter projects from camel-spring-boot results in integration test failures. 
>  Does some other process install these as dependencies as appropriate?  Are 
> they actually unnecessary but something needs more tweaking?
>
> David Jencks
>
> > On Oct 18, 2021, at 12:17 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> >
> > Hi
> >
> > The -common JARs are not starters, and they should not be listed.
> >
> > On Mon, Oct 18, 2021 at 7:45 AM David Jencks <david.a.jen...@gmail.com 
> > <mailto:david.a.jen...@gmail.com>> wrote:
> >>
> >> Locally I got the ability to show unused starter json files working, and 
> >> fixed the obvious problems:
> >>
> >> avro-rpc was using avro
> >> paho-mqtt5 was using paho
> >> in 3.7.x, grape and joor were set up wrong.
> >>
> >> There are still some “starters” i’m not sure about:
> >>
> >> debezium-common
> >> http-common
> >> jetty-common
> >>
> >> In a previous commit I added empty json files for these on the theory that 
> >> if they were starters they should have instructions on how to use them, 
> >> but they don’t have corresponding main camel doc pages.  Are these 
> >> starters automatically installed by the corresponding non-common starter 
> >> artifacts such as camel-debezium-mongodb-starter? If so, I can remove the 
> >> empty json files.  If not, how should their usage be documented?
> >>
> >> I’m hoping to get my updated Antora extensions published in the next 
> >> couple of days, at which point we can upgrade Camel to use them.
> >>
> >> David Jencks
> >>
> >>> On Oct 13, 2021, at 8:14 PM, David Jencks <david.a.jen...@gmail.com> 
> >>> wrote:
> >>>
> >>> They are part of the camel-core-starter, although it’s hard to find the 2 
> >>> options per language among the 147 options for the starter. This suggests 
> >>> that, for starters that encompass more than one component, it would be 
> >>> useful  to only show the options relevant to that component on the 
> >>> components’ page.
> >>>
> >>> In any case I believe everything is working properly and I’ve merged all 
> >>> the 9 PRs.
> >>>
> >>> The core and non-core languages are currently in different tables on the 
> >>> spring-boot list page: I should be able to put them back into one table 
> >>> after upgrading antora-indexer.
> >>>
> >>> David Jencks
> >>>
> >>>> On Oct 12, 2021, at 11:03 PM, David Jencks <david.a.jen...@gmail.com 
> >>>> <mailto:david.a.jen...@gmail.com> <mailto:david.a.jen...@gmail.com 
> >>>> <mailto:david.a.jen...@gmail.com>>> wrote:
> >>>>
> >>>> There’s at least one problem…. (also asked on zulip)
> >>>>
> >>>> Are camel-core-languages actually part of camel-spring-boot?
> >>>>
> >>>> They are listed in the table in "list of starters" but with an 
> >>>> artifactid of "camel-base" which isn't a starter. The current site 
> >>>> doesn't have autoconfiguration info for them either. Since they are in 
> >>>> the table, I added info to them for my PRs, but it's at least partly 
> >>>> wrong, since it comes out as needing camel-core-languages-starter, which 
> >>>> doesn't exist. cf. 
> >>>> https://pr-644--camel.netlify.app/camel-spring-boot/latest/list.html#_camel_languages
> >>>>  
> >>>> <https://pr-644--camel.netlify.app/camel-spring-boot/latest/list.html#_camel_languages>
> >>>>  
> >>>> <https://pr-644--camel.netlify.app/camel-spring-boot/latest/list.html#_camel_languages
> >>>>  
> >>>> <https://pr-644--camel.netlify.app/camel-spring-boot/latest/list.html#_camel_languages>>,
> >>>>  
> >>>> https://pr-644--camel.netlify.app/components/latest/languages/header-language.html#_spring_boot_auto_configuration
> >>>>  
> >>>> <https://pr-644--camel.netlify.app/components/latest/languages/header-language.html#_spring_boot_auto_configuration>
> >>>>  
> >>>> <https://pr-644--camel.netlify.app/components/latest/languages/header-language.html#_spring_boot_auto_configuration
> >>>>  
> >>>> <https://pr-644--camel.netlify.app/components/latest/languages/header-language.html#_spring_boot_auto_configuration>>.
> >>>> Since they say they are part of camel-core, I've used core.json to 
> >>>> construct the autoconfig options table, but that doesn't look very 
> >>>> relevant to me.
> >>>>
> >>>> Is there a starter needed for them? If so, which one? camel-core-starter 
> >>>> seems like a possibility, is it correct?
> >>>>
> >>>> If no starter is needed, why are they in the spring-boot starters table?
> >>>>
> >>>> I hope to be able to merge everything tomorrow, it got too late tonight.
> >>>>
> >>>> David Jencks
> >>>>
> >>>>> On Oct 12, 2021, at 7:41 PM, David Jencks <david.a.jen...@gmail.com 
> >>>>> <mailto:david.a.jen...@gmail.com> <mailto:david.a.jen...@gmail.com 
> >>>>> <mailto:david.a.jen...@gmail.com>>> wrote:
> >>>>>
> >>>>> The part of this work I’m ready for now is done, except for some 
> >>>>> commit-squashing and dealing with check style errors :-)
> >>>>>
> >>>>> Preview at https://pr-644--camel.netlify.app 
> >>>>> <https://pr-644--camel.netlify.app/> 
> >>>>> <https://pr-644--camel.netlify.app/ 
> >>>>> <https://pr-644--camel.netlify.app/>>
> >>>>>
> >>>>> I seem to only be able to write AsciiDoc by now…. :-)  Here’s a list of 
> >>>>> the differences between table rows new/old:
> >>>>>
> >>>>> ——
> >>>>> = Differences between spring-boot list-old and list
> >>>>>
> >>>>> == latest (main)
> >>>>>
> >>>>> === In list, not list-old:
> >>>>>
> >>>>> * disruptor-vm-component
> >>>>> * splunk-hec-component
> >>>>>
> >>>>> * (3 bindy dataformats collapsed to one link, corresponding to the 
> >>>>> single main bindy doc page)
> >>>>>
> >>>>> * csimple-language
> >>>>>
> >>>>> == 3.12.x
> >>>>> === In list, not list-old:
> >>>>>
> >>>>> * disruptor-vm-component
> >>>>> * splunk-hec-component
> >>>>>
> >>>>> * (3 bindy dataformats collapsed to one link, corresponding to the 
> >>>>> single main bindy doc page)
> >>>>>
> >>>>> * csimple-language
> >>>>>
> >>>>> == 3.11.x
> >>>>> === In list, not list-old:
> >>>>>
> >>>>> * splunk-hec-component
> >>>>> * (3 bindy dataformats collapsed to one link, corresponding to the 
> >>>>> single main bindy doc page)
> >>>>> * csimple-language
> >>>>>
> >>>>> Moved to separate table:
> >>>>>
> >>>>> * camel-spring-cloud
> >>>>> * camel-spring-cloud-consul
> >>>>> * camel-spring-cloud-netflix
> >>>>> * camel-spring-cloud-zookeeper
> >>>>>
> >>>>> == 3.7.x
> >>>>> === In list, not list-old:
> >>>>> * splunk-hec-component
> >>>>> * (3 bindy dataformats collapsed to one link, corresponding to the 
> >>>>> single main bindy doc page)
> >>>>> * csimple-language
> >>>>>
> >>>>>
> >>>>> Moved to separate table:
> >>>>>
> >>>>> * camel-spring-cloud
> >>>>> * camel-spring-cloud-consul
> >>>>> * camel-spring-cloud-netflix
> >>>>> * camel-spring-cloud-zookeeper
> >>>>>
> >>>>> ——
> >>>>>
> >>>>> There are also some presentation differences in the tables, the new 
> >>>>> ones follow the tables in main camel components more closely, e.g.
> >>>>>
> >>>>> <td class="tableblock halign-left valign-top"><p 
> >>>>> class="tableblock">Stable</p></td>
> >>>>>>>
> >>>>> <td class="tableblock halign-left valign-top"><p 
> >>>>> class="tableblock">Stable-deprecated</p></td>
> >>>>>
> >>>>> as the deprecation marker.
> >>>>>
> >>>>> Also quite a few core languages now list the starter as
> >>>>>
> >>>>> <td class="tableblock halign-left valign-top"><p 
> >>>>> class="tableblock">camel-core-languages-starter</p></td>
> >>>>> rather than
> >>>>> <td class="tableblock halign-left valign-top"><p 
> >>>>> class="tableblock">camel-base</p></td>
> >>>>>
> >>>>> Is this correct?
> >>>>>
> >>>>> There are 8 PRs:
> >>>>> (Camel)
> >>>>> Main spring boot jsonpath (allow me to squash and merge) 
> >>>>> <https://github.com/apache/camel/pull/6261 
> >>>>> <https://github.com/apache/camel/pull/6261>>
> >>>>> Camel 3.12.x spring boot jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel/pull/6263 
> >>>>> <https://github.com/apache/camel/pull/6263>>
> >>>>> Camel 3.11.x spring boot jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel/pull/6264 
> >>>>> <https://github.com/apache/camel/pull/6264>>
> >>>>> Camel 3.7.x spring boot jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel/pull/6262 
> >>>>> <https://github.com/apache/camel/pull/6262>>
> >>>>> (Camel-spring-boot)
> >>>>> Main jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/388 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/388>>
> >>>>> Camel spring boot 3.12.x jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/387 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/387>>
> >>>>> Camel spring boot 3.11.x jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/386 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/386>>
> >>>>> Camel spring boot 3.7.x jsonpath (please let me squash and merge) 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/385 
> >>>>> <https://github.com/apache/camel-spring-boot/pull/385>>
> >>>>>
> >>>>> If everything looks good I plan to squash each PR to 2 or 3 commits 
> >>>>> (code changes and generated changes) and rebase/merge. I don’t think 
> >>>>> any playbook changes are needed.
> >>>>>
> >>>>> I’m completing a big upgrade of the antora-indexer and jsonpath 
> >>>>> extensions, and plan to finish that next.  It will involve changing the 
> >>>>> syntax of most uses of these extensions.  After that I expect to be 
> >>>>> able to implement automated checking for starters that aren’t linked to 
> >>>>> by main camel  components.  I think there are about 5, but have no way 
> >>>>> to find them at this point.
> >>>>>
> >>>>>
> >>>>> David Jencks
> >>>>>
> >>>>>> On Oct 12, 2021, at 12:01 AM, Claus Ibsen <claus.ib...@gmail.com 
> >>>>>> <mailto:claus.ib...@gmail.com> <mailto:claus.ib...@gmail.com 
> >>>>>> <mailto:claus.ib...@gmail.com>>> wrote:
> >>>>>>
> >>>>>> On Mon, Oct 11, 2021 at 8:07 AM David Jencks <david.a.jen...@gmail.com 
> >>>>>> <mailto:david.a.jen...@gmail.com> <mailto:david.a.jen...@gmail.com 
> >>>>>> <mailto:david.a.jen...@gmail.com>>> wrote:
> >>>>>>>
> >>>>>>> I’ve been working on generating the spring-boot autoconfig info from 
> >>>>>>> the json files generated during the spring-boot build, and the spring 
> >>>>>>> boot “list.adoc” tables using the indexer extension (like the 
> >>>>>>> components tables are generated).
> >>>>>>>
> >>>>>>> My understanding of the spring-boot stuff is that:
> >>>>>>>
> >>>>>>> - any Camel component can be used in Spring
> >>>>>>>
> >>>>>>> - Some camel components/dataformats… can participate in spring-boot 
> >>>>>>> auto configure.  These components are identified as having a 
> >>>>>>> corresponding camel-*-starter project in the spring-boot repo.
> >>>>>>>
> >>>>>>> - There are 3 kinds of these:
> >>>>>>>
> >>>>>>> 1. There’s (generated) java code and a generated json file
> >>>>>>>
> >>>>>>> 2. There’s generated java code but no generated json file (e.g. 
> >>>>>>> jasypt)
> >>>>>>>
> >>>>>>> 3. There’s no java code and no json file, just some properties files 
> >>>>>>> etc. (e.g. aws-xray)
> >>>>>>>
> >>>>>>> I’m really not familiar with spring-boot or the philosophy behind it, 
> >>>>>>> but my guess is that if there’s a spring-boot starter jar then spring 
> >>>>>>> will create a singleton instance of something in the jar, and if 
> >>>>>>> there’s a json file that will guide or describe configuring this 
> >>>>>>> instance with data from somewhere.  If this is roughly correct, then 
> >>>>>>> the 2nd and 3rd kinds correspond to non-configurable instances.
> >>>>>>>
> >>>>>>> I’ve discovered that:
> >>>>>>>
> >>>>>>> - several components have starters that are not listed in the 
> >>>>>>> existing list
> >>>>>>>
> >>>>>>
> >>>>>> Oh which ones for example is that?
> >>>>>>
> >>>>>> For Camel on Spring Boot then we only support the -starter JARs. So if
> >>>>>> there is not a starter then its not supported.
> >>>>>> And yes some of the starters are just shallow and empty/almost empty.
> >>>>>>
> >>>>>> But it's our way to curate what we support and make sense to use on 
> >>>>>> Spring Boot.
> >>>>>>
> >>>>>> For Camel on Karaf its the features.xml file that defines what we 
> >>>>>> support there.
> >>>>>> And ditto for Quarkus with the extensions.
> >>>>>>
> >>>>>>
> >>>>>>> - quite a few components main adoc documentation do not include the 
> >>>>>>> relevant autoconfig information (even if it’s “no options”)
> >>>>>>> Most of these are linked to from the “list” page, so I’d imagine it 
> >>>>>>> would be pretty confusing to follow the link and find no information 
> >>>>>>> about spring-boot.
> >>>>>>>
> >>>>>>> Evidently, the current process is not maintainable.
> >>>>>>>
> >>>>>>> The (new, jsonpath based) autoconfig doc generation is based on 
> >>>>>>> putting the name of the appropriate json file in the main adoc file 
> >>>>>>> as a header attribute.
> >>>>>>>
> >>>>>>> I think we can produce something more resilient by:
> >>>>>>>
> >>>>>>> - for kinds (2) and (3), put a no-options appropriately named json 
> >>>>>>> file in the starter project under src/main/docs. This will not get 
> >>>>>>> added to the starter jar, unlike the properly generated json files.
> >>>>>>>
> >>>>>>> - put the corresponding header attribute in the appropriate main adoc 
> >>>>>>> file
> >>>>>>>
> >>>>>>> Now we should be able to do a basic check, that the number of unique 
> >>>>>>> json file names from header attributes is equal to the number of json 
> >>>>>>> files, which should be equal to the number of starters. This should 
> >>>>>>> be possible to do as part of the website build.
> >>>>>>>
> >>>>>>> This won’t check that for instance with a starter that serves many 
> >>>>>>> components, all the components will refer to the starter information, 
> >>>>>>> but it will detect most or all of the problems I’v found so far.
> >>>>>>>
> >>>>>>> The preview for https://github.com/apache/camel-website/pull/644 
> >>>>>>> <https://github.com/apache/camel-website/pull/644> 
> >>>>>>> <https://github.com/apache/camel-website/pull/644 
> >>>>>>> <https://github.com/apache/camel-website/pull/644>> shows how far 
> >>>>>>> I’ve gotten with  this: the appropriate page to look at is 
> >>>>>>> https://pr-644--camel.netlify.app/camel-spring-boot/latest/list-2.html
> >>>>>>>  
> >>>>>>> <https://pr-644--camel.netlify.app/camel-spring-boot/latest/list-2.html>
> >>>>>>>  
> >>>>>>> <https://pr-644--camel.netlify.app/camel-spring-boot/latest/list-2.html
> >>>>>>>  
> >>>>>>> <https://pr-644--camel.netlify.app/camel-spring-boot/latest/list-2.html>>
> >>>>>>> This has, in addition to the tables of spring-boot 
> >>>>>>> autoconfigure-enabled components, counts of json files used and 
> >>>>>>> existing (there are 5 unused), and tables of non-spring-boot-enabled 
> >>>>>>> components/dataformats…
> >>>>>>> All the dataformats and languages are set up properly.  There are 2 
> >>>>>>> components that aren’t spring-boot-enabled and a whole lot of “others"
> >>>>>>>
> >>>>>>> I think that actually failing the build when there are unused .json 
> >>>>>>> files and also finding out which json files are unused will have to 
> >>>>>>> wait for an upgrade to the antora-indexer… unfortunately this will 
> >>>>>>> require some syntax changes.
> >>>>>>>
> >>>>>>> I’d like to polish these changes, replace the list page with the new 
> >>>>>>> one (with the extra info removed), port this work to the other 
> >>>>>>> relevant branches, and then pursue releasing the upgraded 
> >>>>>>> antora-indexer extension and upgrading the syntax, and then work on 
> >>>>>>> making the checks work.
> >>>>>>>
> >>>>>>> Does this seem reasonable?
> >>>>>>>
> >>>>>>
> >>>>>> Yeah sure continue your great work and effort on improving the
> >>>>>> documentation for all the Camel projects on the website.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> ——
> >>>>>>>
> >>>>>>> Another feature of the preview is that I found out how to make the 
> >>>>>>> option names in all the jsonpath generated tables link to themselves 
> >>>>>>> and display a marker on hover, just like section titles, so you can 
> >>>>>>> now easily copy the link to an option and paste it somewhere.  (the 
> >>>>>>> names have been links for a while, but there was no practical way to 
> >>>>>>> find out what the link was!)
> >>>>>>>
> >>>>>>> E.g. … 
> >>>>>>> https://pr-644--camel.netlify.app/components/latest/amqp-component.html#_endpoint_query_option_disableReplyTo
> >>>>>>>  
> >>>>>>> <https://pr-644--camel.netlify.app/components/latest/amqp-component.html#_endpoint_query_option_disableReplyTo><https://pr-644--camel.netlify.app/components/latest/amqp-component.html#_endpoint_query_option_disableReplyTo
> >>>>>>>  
> >>>>>>> <https://pr-644--camel.netlify.app/components/latest/amqp-component.html#_endpoint_query_option_disableReplyTo>>
> >>>>>>>
> >>>>>>> David Jencks
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Claus Ibsen
> >>>>>> -----------------
> >>>>>> http://davsclaus.com <http://davsclaus.com/> <http://davsclaus.com/ 
> >>>>>> <http://davsclaus.com/>> @davsclaus
> >>>>>> Camel in Action 2: https://www.manning.com/ibsen2 
> >>>>>> <https://www.manning.com/ibsen2> <https://www.manning.com/ibsen2 
> >>>>>> <https://www.manning.com/ibsen2>>
> >>>>
> >>>
> >>
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com <http://davsclaus.com/> @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2 
> > <https://www.manning.com/ibsen2>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to