[ 
https://issues.apache.org/jira/browse/CAMEL-14638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-14638.
---------------------------------
    Fix Version/s: 3.3.0
       Resolution: Fixed

Thanks we have aligned and also did some updates in recent time so it should be 
better now.

You are welcome to run a report again, for example against SNAPSHOT or the 
3.3.0 release when its out later in a couple of months.

> Inconsistent library versions notice.
> -------------------------------------
>
>                 Key: CAMEL-14638
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14638
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Kaifeng Huang
>            Priority: Major
>             Fix For: 3.3.0
>
>         Attachments: apache camel.pdf
>
>
>  
> Hi. I have implemented a tool to detect library version inconsistencies. Your 
> project have 27 inconsistent libraries and 16 false consistent libraries.
>  
> Take com.google.guava:guava for example, this library is declared as version 
> 19.0 in components/camel-ignite, 28.0-jre in catalog/camel-main-maven-plugin, 
> 14.0.1 in components/camel-hbase and etc... Such version inconsistencies may 
> cause unnecessary maintenance effort in the long run. For example, if two 
> modules become inter-dependent, library version conflict may happen. It has 
> already become a common issue and hinders development progress. Thus a 
> version harmonization is necessary.
>  
> Provided we applied a version harmonization, I calculated the cost it may 
> have to harmonize to all upper versions including an up-to-date one. The cost 
> refers to POM config changes and API invocation changes. Take 
> com.google.guava:guava for example, if we harmonize all the library versions 
> into 28.2-android. The concern is, how much should the project code adapt to 
> the newer library version. We list an effort table to quantify the 
> harmonization cost.
>  
> The effort table is listed below. It shows the overall harmonization effort 
> by modules. The columns represents the number of library APIs and API 
> calls(NA,NAC), deleted APIs and API calls(NDA,NDAC) as well as modified API 
> and API calls(NMA,NMAC). Modified APIs refers to those APIs whose call graph 
> is not the same as previous version. Take the first row for example, if 
> upgrading the library into version 28.2-android. Given that 14 APIs is used 
> in module components/camel-wordpress, 0 of them is deleted in a recommended 
> version(which will throw a NoMethodFoundError unless re-compiling the 
> project), 14 of them is regarded as modified which could break the former API 
> contract.
>  
>  
> ||Index||Module||NA(NAC)||NDA(NDAC)||NMA(NMAC)||
> |1|components/camel-wordpress|14(21)|0(0)|14(21)|
> |2|components/camel-gora|1(3)|0(0)|1(3)|
> |3|components/camel-ignite|2(2)|0(0)|1(1)|
> |4|..|..|..|..|
>  
>  
> Also we provided another table to show the potential files that may be 
> affected due to library API change, which could help to spot the concerned 
> API usage and rerun the test cases. The table is listed below.
> ||Module||File||Type||API||
> |components/camel-ignite|components/camel-ignite/src/test/java/org/apache/camel/component/ignite/TestIgniteComputeResources.java|modify|com.google.common.collect.Lists.newArrayList()|
> |components/camel-gora|components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraConfiguration.java|modify|com.google.common.base.Strings.isNullOrEmpty(java.lang.String)|
> |components/camel-wordpress|components/camel-wordpress/src/main/java/org/apache/camel/component/wordpress/api/model/User.java|modify|com.google.common.base.MoreObjects.ToStringHelper.addValue(java.lang.Object)|
> |4|..|..|..|
>  
> As for false consistency, take org.apache.geronimo.specs 
> geronimo-annotation_1.0_spec jar for example. The library is declared in 
> version 1.1.1 in all modules. However they are declared differently. As 
> components are developed in parallel, if one single library version is 
> updated, which could become inconsistent as mentioned above, may cause 
> above-mentioned inconsistency issues
> If you are interested, you can have a more complete and detailed report in 
> the attached PDF file.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to