Hi Richards, The transitive dependencies that are now included in the storm-core jar file have their package names “relocated” so users can include their own versions of those dependencies without encountering dependency conflicts.
The best practice is to include your own version of those dependencies in your topology jar. Then if you need to upgrade, you simply repackage your topology jar. An alternate option is to use the storm-bundled version of the dependencies. To do that you simply modify the import statements in your code to reference the relocated package (they will be prefixed with “org.apache.storm”). With this approach, your topology jar will be smaller, but you will be dependent on the specific versions bundled with storm, so if you upgrade storm later, you may need to recompile/repackage your topology code. -Taylor > On Jul 29, 2015, at 8:21 AM, Richards Peter <[email protected]> wrote: > > Hi, > > I was using storm-0.8.2 so far in my project. I am starting to evaluate > storm-0.9.*. I found a difference in the way storm-core(0.9.4) /storm(0.8.2) > jar has been packaged. I am not an expert in this packaging concept. So I > thought of taking some advice from the experts. > > In storm 0.8.* jar, I find the transitive dependencies maintained separately > in $STORM_HOME/lib directory, i.e. the dependencies such as http-core, > commons-io, etc. are maintained separately in the lib directory. Storm jar > had only the classes related to storm. With such a design we were able to > upgrade these dependencies when we had to integrate another third party > component in our topology (by replacing older versions of jar in storm lib > with newer versions used by the third party component). > > In storm 0.9.4, I find that some of the transitive dependencies of storm are > packaged within storm-core jar file. If we encounter a situation when we have > to upgrade an individual transitive dependency how should I go forward? > > Could you please share your thoughts about the same? > > Thanks, > Richards Peter. >
signature.asc
Description: Message signed with OpenPGP using GPGMail
