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