camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephane Nicoll (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CAMEL-11247) camel-spring-boot - Improve BOM to work better with start.spring.io
Date Fri, 12 May 2017 09:57:04 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-11247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16007894#comment-16007894
] 

Stephane Nicoll edited comment on CAMEL-11247 at 5/12/17 9:57 AM:
------------------------------------------------------------------

Thanks for the feedback.

{quote}There are still many projects that tend to put everything in their BOMs and this becomes
a problem when such BOMs start being used worldwide{quote}

That's exactly why I am asking you that the camel bom doesn't follow that path. {{spring-boot-dependencies}}
is different because managing the dependencies of the "platform" is an advertized feature
of Spring Boot. Something camel can't claim, I am sure we can agree with that.

{quote}ALL spring-boot applications must have a specific version of Jackson or Gson (and you
do so){quote}

I disagree and I don't think that's a fair statement: you can override and change dependencies
any way you like (see documentation). You are then responsible of making sure things you use
will work properly. I think it is more fair to have that discussion in the context of start.spring.io.
The camel starter _must_ work with Spring Boot's default because that's what start.spring.io
generates. If Camel isn't compatible with, say, Spring Boot A.B.C (because we provide a certain
version of jackson by default) then we should disable the camel starter if Spring Boot starter
A.B.C is selected. 


I am not sure I get your last paragraph but to be clear, here is what I suggest:
* {{camel-bom}} should be defined as BOM that lists only your artifacts. So {{camel-bom}}
{{2.19.3}} (for instance) should list all the camel {{2.19.3}} artifacts that you publish
on the maven repo
* If you need your users to be guided as which dependencies they should use in general (for
instance if they don't use Spring Boot), you can always create a {{camel-dependencies}} that
extends from {{camel-bom}} and provides all the dependency management you currently have in
your build.

I really think that naming that artifact {{camel-spring-boot-bom}} is a wrong call. 

Also, we have very strict rules for BOMs that we add on start.spring.io. If the BOM has a
complex parent structure we will not accept it. Thank you!




was (Author: snicoll):
Thanks for the feedback.

> There are still many projects that tend to put everything in their BOMs and this becomes
a problem when such BOMs start being used worldwide

That's exactly why I am asking you that the camel bom doesn't follow that path. {{spring-boot-dependencies}}
is different because managing the dependencies of the "platform" is an advertized feature
of Spring Boot. Something camel can't claim, I am sure we can agree with that.

> ALL spring-boot applications must have a specific version of Jackson or Gson (and you
do so)

I disagree and I don't think that's fair statement: you can override and change dependencies
any way you like (see documentation). You are then responsible of making sure things you use
will work properly. I think it is more fair to have that discussion in the context of start.spring.io.
The camel starter _must_ work with Spring Boot's default because that's what start.spring.io
generates. If Camel isn't compatible with, say, Spring Boot A.B.C (because we provide a certain
version of jackson by default) then we should disable the camel starter if Spring Boot starter
A.B.C is selected. 


I am not sure I get your last paragraph but to be clear, here is what I suggest:
* {{camel-bom}} should be defined as BOM that lists only your artifacts. So {{camel-bom}}
{{2.19.3}} (for instance) should list all the camel {{2.19.3}} artifacts that you publish
on the maven repo
* If you need your users to be guided as which dependencies they should use in general (for
instance if they don't use Spring Boot), you can always create a {{camel-dependencies}} that
extends from {{camel-bom}} and provides all the dependency management you currently have in
your build.

I really think that naming that artifact {{camel-spring-boot-bom}} is a wrong call. 

Also, we have very strict rules for BOMs that we add on start.spring.io. If the BOM has a
complex parent structure we will not accept it. Thank you!



> camel-spring-boot - Improve BOM to work better with start.spring.io
> -------------------------------------------------------------------
>
>                 Key: CAMEL-11247
>                 URL: https://issues.apache.org/jira/browse/CAMEL-11247
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-spring-boot, camel-spring-boot-starters
>            Reporter: Claus Ibsen
>            Assignee: Nicola Ferraro
>             Fix For: 2.20.0
>
>
> See this PR
> https://github.com/spring-io/initializr/pull/425#issuecomment-299801788
> I tried locally to set the initializer to use our current BOM for spring-boot starters,
but the project it generates causes the mvn to not build.
> We should IMHO try to get this working so we can use a BOM in the start.spring.io wizard
so people get a nicer project build out of the box. Which is also what the Spring guys is
asking for.
> You can try the initializer locally, by following instructions at
> https://github.com/spring-io/initializr#running-the-app-locally
> Then you can thinker in the yml file to setup a Camel BOM
> https://github.com/spring-io/initializr/blob/master/initializr-service/src/main/resources/application.yml



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message