Maybe the Maven shade plugin can solve this, we can package each module to a fat jar and they will not depend on other modules.
2018-01-27 6:14 GMT+08:00 Wahrmann, Helmut <helmut.wahrm...@rsa.com>: > fully agreed. > But we shouldn't do that do support a 4 years old component. > The goal should be to support the latest releases. > It is ridiculous to release flume 1.9 with elasticsearch 0.90.1 support, > when 6.x is the current version. > > > > Best regards, > > Helmut Wahrmann > > > -------- Ursprüngliche Nachricht -------- > Von: Ralph Goers <ralph.go...@dslextreme.com> > Datum: 26.01.18 22:12 (GMT+01:00) > An: dev@flume.apache.org > Betreff: Re: Merging to trunk? > > The “right” way to deal with this from a Maven perspective is to declare > the version you want in the dependencyManagement section of the parent pom > and to not specify any versions in child poms. Then use the Maven enforcer > plugin to make sure everything required has a declaration in the > dependencyManagement section. > > Ralph > > > On Jan 26, 2018, at 8:28 AM, Wahrmann, Helmut <helmut.wahrm...@rsa.com> > wrote: > > > > Hi Mike, > > > > This only shows that some other component needs to be updated as well. > > Which software relies on Lucene 4.3.0, which was released in 2013? > > It is most probably not used by anyone else anymore. > > > > This needs to be solved. It makes no sense to release Flume 1.9 with > support for ElasticSearch 0.90.1. > > And it doesn't make sense either to release Flume 1.9 with support for a > component that relies on Lucene 4.3.0. > > > > We will always have dependency problems, if one component is updated to > a newer version and others not. > > > > To get rid of the conflict is probably to set "optional" to true in the > pom.xml. > > Then we don't distribute those Jars in the flume lib and the users need > to set their class path to point e.g. to Elasticsearch and then the correct > libs will be used. > > I doubt that a Elasticsearch user will also use some other component > with e.g. this outdated Lucene. > > > > best regards, > > > > Helmut > > > > > > -----Original Message----- > > From: Mike Percy [mailto:mpe...@apache.org] > > Sent: Donnerstag, 25. Jänner 2018 23:01 > > To: dev@flume.apache.org > > Subject: Re: Merging to trunk? > > > > Hi Helmut, > > I wrote a small Perl script to identify dependency conflicts based on > output from mvn dependency:tree and posted it here: > https://gist.github.com/ > > mpercy/39614d770864bdd0c386befd5e8a1840 > > > > I ran that on the current trunk and it actually found some errors which > should be fixed: > > > > Version conflict: package com.google.guava:guava:jar needed in 2 > different > > versions: (11.0.2, 18.0) > > Version conflict: package commons-httpclient:commons-httpclient:jar > needed in 2 different versions: (3.0.1, 3.1) Version conflict: package > commons-logging:commons-logging:jar needed in 2 different versions: > (1.1.3, 1.2) Version conflict: package commons-pool:commons-pool:jar needed > in 2 different versions: (1.5.4, 1.6) Version conflict: package > net.sf.jopt-simple:jopt-simple:jar needed in 2 different versions: (3.2, > 4.7) Version conflict: package org.codehaus.jackson:jackson-jaxrs:jar > needed in > > 2 different versions: (1.8.3, 1.8.8) > > ERROR: 6 package version conflicts identified > > > > However, after applying your patch on top of trunk and running it again, > it identified new conflicts: > > > > Version conflict: package com.google.guava:guava:jar needed in 2 > different > > versions: (11.0.2, 18.0) > > Version conflict: package commons-httpclient:commons-httpclient:jar > needed in 2 different versions: (3.0.1, 3.1) Version conflict: package > commons-logging:commons-logging:jar needed in 2 different versions: > (1.1.3, 1.2) Version conflict: package commons-pool:commons-pool:jar needed > in 2 different versions: (1.5.4, 1.6) Version conflict: package > net.sf.jopt-simple:jopt-simple:jar needed in 3 different versions: (3.2, > 4.7, 5.0.2) Version conflict: package org.apache.lucene:lucene- > analyzers-common:jar > > needed in 2 different versions: (4.3.0, 7.1.0) Version conflict: package > org.apache.lucene:lucene-core:jar needed in 2 different versions: (4.3.0, > 7.1.0) Version conflict: package org.apache.lucene:lucene-grouping:jar > needed in 2 different versions: (4.3.0, 7.1.0) Version conflict: package > org.apache.lucene:lucene-highlighter:jar needed in 2 different versions: > (4.3.0, 7.1.0) Version conflict: package org.apache.lucene:lucene-memory:jar > needed in 2 different versions: (4.3.0, 7.1.0) Version conflict: package > org.apache.lucene:lucene-misc:jar needed in 2 different versions: (4.3.0, > 7.1.0) Version conflict: package org.apache.lucene:lucene-queries:jar > needed in 2 different versions: (4.3.0, 7.1.0) Version conflict: package > org.apache.lucene:lucene-queryparser:jar needed in 2 different versions: > (4.3.0, 7.1.0) Version conflict: package org.apache.lucene:lucene-spatial:jar > needed in 2 different versions: (4.3.0, 7.1.0) Version conflict: package > org.apache.lucene:lucene-suggest:jar needed in 2 different versions: > (4.3.0, 7.1.0) Version conflict: package > org.codehaus.jackson:jackson-jaxrs:jar > needed in > > 2 different versions: (1.8.3, 1.8.8) > > Version conflict: package org.yaml:snakeyaml:jar needed in 2 different > > versions: (1.10, 1.17) > > ERROR: 17 package version conflicts identified > > > > So while it appears Guava is no longer a concern, there are other > conflicting dependencies involved in the conflict here. > > > > I'm interested to hear your thoughts on this. > > > > Regards, > > Mike > > > > On Wed, Jan 24, 2018 at 7:57 AM, Wahrmann, Helmut < > helmut.wahrm...@rsa.com> > > wrote: > > > >> Hi Mike, > >> > >> Thanks for the quick response. > >> > >> I fully agree that we need to take care about interop between the > >> different components and dependencies. > >> But if you look at the patch in FLUME-3021, it only puts in > >> Elasticsearch dependencies. > >> > >> The issue with Guava, which you saw in FLUME-2921 is no longer there, > >> because since mid-2016 a lot has changed in the Flume trunk and all > >> those dependencies are fixed. > >> It won't even be possible gto apply this patch anymore. > >> > >> The patch in FLUME-3021 works with the latest Elasticsearch versions, > >> without introducing additional dependencies, which might cause > >> problems to other projects. > >> So I think it can be safely merged into trunk. > >> > >> best regards, > >> > >> Helmut > >> > >> > >> -----Original Message----- > >> From: Mike Percy [mailto:mpe...@apache.org] > >> Sent: Dienstag, 23. Jänner 2018 20:39 > >> To: dev@flume.apache.org > >> Subject: Re: Merging to trunk? > >> > >> Hi Helmut, > >> Thank you for bringing this up on dev@ and thank you for the patch. I > >> see there are other people people interested in this component upgrade > as well. > >> > >> As you are probably aware, a Flume committer will need to approve the > >> change before I gets merged to trunk. > >> > >> My primary concern w/ merging this would be compatibility of the > >> dependencies. Flume suffers from a kind of a "dependency hell" because > >> of a lack of classloading support (either via OSGI or Java modules). > >> See > >> https://issues.apache.org/jira/browse/FLUME-2293 for a tracking ticket > >> about that issue. What that means is that all of the components that > >> Flume ships must have compatible dependencies with each other which > >> makes changes like this more complex. Therefore I would like someone > >> to verify that mvn dependency:tree does not show conflicts when run > >> from the top level with the new patches. If memory serves, I believe > >> Google Guava is likely to conflict. > >> > >> Also, I think that https://issues.apache.org/jira/browse/FLUME-3021 is > >> a duplicate of https://issues.apache.org/jira/browse/FLUME-2921 which > >> has additional information about the various issues that we need to > >> solve to do this upgrade. > >> > >> I'd be happy to discuss this issue some more on this thread. > >> > >> Mike > >> > >> > >> On Tue, Jan 23, 2018 at 12:57 AM, Wahrmann, Helmut < > >> helmut.wahrm...@rsa.com> > >> wrote: > >> > >>> Hi, > >>> > >>> Who decides if/when a patch or pull request gets merged to trunk? > >>> Reason I am asking is for the Elasticsearch support. The current > >>> code in trunk does not work with ES > 2.x. > >>> Currently Elasticsearch is at 6.1. > >>> > >>> In FLUME-3021 we have several patches since March last year. > >>> I have a patched Flume running at a customer since April last year > >>> without any problems. > >>> > >>> So why not merging those changes into the trunk? > >>> As I stated in my comment in FLUME-3021, it will not cause any > >>> problems, cause the current trunk won't work with newer ES versions > >> anyhow. > >>> I doubt that someone is out there still running ES 0.95. > >>> > >>> best regards, > >>> > >>> Helmut > >>> > >> > > > -- *Yonghao Zou* *Shanghai China* *China Merchants Bank* *EN_BLOG <http://blog.haozi1994.com/>* *CH_BLOG* <http://www.fxiaoqing.com/>