I’m glad the shader plugin worked for you. Updating dependencies can be tricky as it can easily introduce regressions.
Ultimately we need to figure out the best solution to avoiding conflicts between user code (i.e. dependencies in topology jar files) and Storm’s libraries. The classloader approach has been attempted, but IMO Storm’s use of serialization complicates things significantly. Package relocation seems to be a relatively lightweight solution. If that’s a direction we pursue, then it introduces the question of whether Storm should relocate its dependencies, or if that should be left up to the user (topology developer). Elastic Search has gone down the path of relocating some of their dependencies [1] (not necessarily an endorsement, just an observation). I’ve CC’d dev@ since this is all related to the infamous issue #115, which is now STORM-129 [2]. - Taylor [1] https://github.com/elasticsearch/elasticsearch/blob/master/pom.xml#L474 [2] https://issues.apache.org/jira/browse/STORM-129 On Feb 6, 2014, at 7:25 PM, Vinay Pothnis <[email protected]> wrote: > Thank you all for replies! The shader-plugin solution seems to work for us. > > I wonder if we can create a JIRA ticket for storm to upgrade the http-client > library as part of their next release. > > -Vinay > > > On Thu, Feb 6, 2014 at 2:38 PM, Michael Rose <[email protected]> wrote: > We've done this with SLF4j and Guava as well without issues. > > Michael Rose (@Xorlev) > Senior Platform Engineer, FullContact > [email protected] > > > > On Thu, Feb 6, 2014 at 3:03 PM, Mark Greene <[email protected]> wrote: > We had this problem as well. We modified our chef cookbook to just replace > the older version with the newer one and storm didn't complain or have any > other issues as a result. > > > On Wed, Feb 5, 2014 at 10:31 AM, P. Taylor Goetz <[email protected]> wrote: > Your best bet is probably to use the shade plugin to relocate the > http-client package so it doesn’t conflict with the version storm uses. > > Storm does this with the libtrhift dependency in storm-core: > > https://github.com/apache/incubator-storm/blob/master/storm-core/pom.xml#L220 > > (You can ignore the clojure transformer in that config, unless you have > non-AOT clojure code that uses the http-client library). > > More information on using the shade plugin to do package relocations can be > found here: > > http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html > > - Taylor > > On Feb 4, 2014, at 4:27 PM, Vinay Pothnis <[email protected]> wrote: > > > Hello, > > > > I am using storm version 0.9.0.1. > > My application depends on apache http-client version 4.3.2 - but storm > > depends on http-client version 4.1.1. > > > > What is the best way to override this dependency? > > > > Thanks > > Vinay > > > >
signature.asc
Description: Message signed with OpenPGP using GPGMail
