Return-Path: X-Original-To: apmail-storm-dev-archive@minotaur.apache.org Delivered-To: apmail-storm-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E7F14102E4 for ; Fri, 7 Feb 2014 03:08:31 +0000 (UTC) Received: (qmail 7286 invoked by uid 500); 7 Feb 2014 03:08:29 -0000 Delivered-To: apmail-storm-dev-archive@storm.apache.org Received: (qmail 7148 invoked by uid 500); 7 Feb 2014 03:08:18 -0000 Mailing-List: contact dev-help@storm.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@storm.incubator.apache.org Delivered-To: mailing list dev@storm.incubator.apache.org Received: (qmail 7064 invoked by uid 99); 7 Feb 2014 03:08:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 Feb 2014 03:08:11 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ptgoetz@gmail.com designates 209.85.216.175 as permitted sender) Received: from [209.85.216.175] (HELO mail-qc0-f175.google.com) (209.85.216.175) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 Feb 2014 03:08:05 +0000 Received: by mail-qc0-f175.google.com with SMTP id x13so4843974qcv.6 for ; Thu, 06 Feb 2014 19:07:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=VcJt3B4NS6TcZ9+6fAlcil0dq28UMAidw/CbXuzzIHE=; b=Hgtmf5UPuZwZq/5TpGa4QtGKnVZxs+LIaY7ZqzEV4efJM944IPuvdTNqC/RijMZL1P XH5wR3fH7B4BKH7Fce0vKp8nOEdojGB87NFYAhM+U5HlcNBAD8oXyTC1Z3D6Ky/eRCew VYNJdOw3Cri+J6xWi4evS6J2Nui95lkw/UeGQDcda32+HPUP0Gy7/uzAxBlrIlV+/jRc eP+wDHDNGx/CTRy7mh3pwq76l2KN7WWi6w8wmS5zX4md2IIf+EmX+yB1+q4bqLXWt2Y/ 23zFIavX7vICrpAxvPzLlv2TmWlY8K+DzQ2ufZTLMxvTemSJup4ky1CU1Fsh4n8oCwTB rohQ== X-Received: by 10.224.22.3 with SMTP id l3mr17634024qab.103.1391742464768; Thu, 06 Feb 2014 19:07:44 -0800 (PST) Received: from thidwick.local (pool-173-59-54-41.phlapa.fios.verizon.net. [173.59.54.41]) by mx.google.com with ESMTPSA id u75sm6150489qgd.23.2014.02.06.19.07.43 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 06 Feb 2014 19:07:43 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_261E58DB-8982-443C-BD9E-96A6FCDB574F"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.1 \(1827\)) Subject: Re: http-client version conflict From: "P. Taylor Goetz" In-Reply-To: Date: Thu, 6 Feb 2014 22:07:41 -0500 Cc: dev@storm.incubator.apache.org Message-Id: <09772E04-68A1-42E8-821D-818E919D4759@gmail.com> References: <62C4B740-3DF3-4D48-8664-6BFBE86388C7@gmail.com> To: user@storm.incubator.apache.org X-Mailer: Apple Mail (2.1827) X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_261E58DB-8982-443C-BD9E-96A6FCDB574F Content-Type: multipart/alternative; boundary="Apple-Mail=_8717BE4E-F09F-4289-954F-2F19D30D523C" --Apple-Mail=_8717BE4E-F09F-4289-954F-2F19D30D523C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 I tend to agree. The move to maven makes package relocation very easy, but we should be = careful not to abuse it if that=92s a direction we decide to take. IMHO, users having to modify the contents of $STORM_HOME/lib is really = bad and should only be done as a last resort. If someone asks for help = with an issue after they=92ve modified the contents of $STORM_HOM/lib, = all bets are off. I also agree that we need to keep a close watch on our dependencies, and = that some might warrant re-evaluation. I=92d love to others opinions. - Taylor On Feb 6, 2014, at 9:28 PM, Adam Lewis wrote: > My $0.02 on this subject: >=20 > Without going down the path of class loader or OSGi mania and becoming = a full container, I'd definitely be in favor of storm relocating its own = dependencies. In this way edge cases around things like reflection can = be handled once within storm rather than burdening every topology = builder with those details. Part of the problem seems to be that storm = makes extensive use (directly or transitively) of a lot of go-to utility = libraries like guava, thrift, jodatime, json-simple, snakeyaml, = commons-io, etc... I'm sure that leveraging these libraries allowed = storm's development to proceed rapidly, but from a maturity perspective, = it is problematic to impose these version choices on users. And while I = might want Storm to, say, try to track the latest Guava version, that = same policy could be very problematic for others. >=20 > If storm can relocate even some of its own dependencies, I think that = would be a great help to me at least. Longer term, I wonder how much of = some of these libraries are really being used. For example, is clj-time = (and by extension joda-time) really needed? Or just a small fraction of = the functionality in that library? I can probably pitch in some of the = effort required to do this, if this is the direction people want to go = in. >=20 >=20 >=20 >=20 > On Thu, Feb 6, 2014 at 8:44 PM, P. Taylor Goetz = wrote: > I=92m glad the shader plugin worked for you.=20 >=20 > Updating dependencies can be tricky as it can easily introduce = regressions.=20 >=20 > Ultimately we need to figure out the best solution to avoiding = conflicts between user code (i.e. dependencies in topology jar files) = and Storm=92s libraries. >=20 > The classloader approach has been attempted, but IMO Storm=92s use of = serialization complicates things significantly. Package relocation seems = to be a relatively lightweight solution. >=20 > If that=92s 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). >=20 > Elastic Search has gone down the path of relocating some of their = dependencies [1] (not necessarily an endorsement, just an observation). >=20 > I=92ve CC=92d dev@ since this is all related to the infamous issue = #115, which is now STORM-129 [2]. >=20 > - Taylor >=20 > [1] = https://github.com/elasticsearch/elasticsearch/blob/master/pom.xml#L474 > [2] https://issues.apache.org/jira/browse/STORM-129 >=20 >=20 >=20 >=20 >=20 > On Feb 6, 2014, at 7:25 PM, Vinay Pothnis = wrote: >=20 >> Thank you all for replies! The shader-plugin solution seems to work = for us.=20 >>=20 >> I wonder if we can create a JIRA ticket for storm to upgrade the = http-client library as part of their next release. >>=20 >> -Vinay >>=20 >>=20 >> On Thu, Feb 6, 2014 at 2:38 PM, Michael Rose = wrote: >> We've done this with SLF4j and Guava as well without issues. >>=20 >> Michael Rose (@Xorlev) >> Senior Platform Engineer, FullContact >> michael@fullcontact.com >>=20 >>=20 >>=20 >> On Thu, Feb 6, 2014 at 3:03 PM, Mark Greene = 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. >>=20 >>=20 >> On Wed, Feb 5, 2014 at 10:31 AM, P. Taylor Goetz = wrote: >> Your best bet is probably to use the shade plugin to relocate the = http-client package so it doesn=92t conflict with the version storm = uses. >>=20 >> Storm does this with the libtrhift dependency in storm-core: >>=20 >> = https://github.com/apache/incubator-storm/blob/master/storm-core/pom.xml#L= 220 >>=20 >> (You can ignore the clojure transformer in that config, unless you = have non-AOT clojure code that uses the http-client library). >>=20 >> More information on using the shade plugin to do package relocations = can be found here: >>=20 >> = http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocati= on.html >>=20 >> - Taylor >>=20 >> On Feb 4, 2014, at 4:27 PM, Vinay Pothnis = wrote: >>=20 >> > 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 >>=20 >>=20 >>=20 >>=20 >=20 >=20 --Apple-Mail=_8717BE4E-F09F-4289-954F-2F19D30D523C Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252 I tend = to agree.

The move to maven makes package relocation = very easy, but we should be careful not to abuse it if that=92s a = direction we decide to take.

IMHO, users having = to modify the contents of $STORM_HOME/lib is really bad and should only = be done as a last resort. If someone asks for help with an issue after = they=92ve modified the contents of $STORM_HOM/lib, all bets are = off.

I also agree that we need to keep a close = watch on our dependencies, and that some might warrant = re-evaluation.

I=92d love to others = opinions.

- Taylor

On = Feb 6, 2014, at 9:28 PM, Adam Lewis <mail@adamlewis.com> = wrote:

My $0.02 on this = subject:

Without going down the path of class loader or OSGi mania and becoming a = full container, I'd definitely be in favor of storm relocating its own = dependencies.  In this way edge cases around things like reflection = can be handled once within storm rather than burdening every topology = builder with those details.  Part of the problem seems to be that = storm makes extensive use (directly or transitively) of a lot of go-to = utility libraries like guava, thrift, jodatime, json-simple, snakeyaml, = commons-io, etc... I'm sure that leveraging these libraries allowed = storm's development to proceed rapidly, but from a maturity perspective, = it is problematic to impose these version choices on users.  And = while I might want Storm to, say, try to track the latest Guava version, = that same policy could be very problematic for others.

If storm can relocate = even some of its own dependencies, I think that would be a great help to = me at least.  Longer term, I wonder how much of some of these = libraries are really being used.  For example, is clj-time (and by = extension joda-time) really needed? Or just a small fraction of the = functionality in that library?  I can probably pitch in some of the = effort required to do this, if this is the direction people want to go = in.




On Thu, Feb 6, 2014 at 8:44 PM, P. Taylor Goetz <ptgoetz@gmail.com> wrote:
I=92m 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=92s libraries.

The classloader approach has been attempted, but IMO = Storm=92s use of serialization complicates things significantly. Package = relocation seems to be a relatively lightweight = solution.

If that=92s 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=92ve CC=92d dev@ since this is all related to the = infamous issue #115, which is now STORM-129 = [2].

- = Taylor

[2] https://issues.apache.org/jira/browse/STORM-129





On Feb 6, 2014, at 7:25 PM, Vinay Pothnis <vinay.pothnis@gmail.com> = 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 <michael@fullcontact.com> wrote:
We've = done this with SLF4j and Guava as well without issues.

Michael Rose (@Xorlev)
Senior Platform = Engineer, FullContact
michael@fullcontact.com



On Thu, Feb 6, 2014 at 3:03 PM, Mark = Greene <mark@evertrue.com> 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 <ptgoetz@gmail.com> wrote:
Your best bet is probably  to use the shade plugin to relocate the = http-client package so it doesn=92t conflict with the version storm = uses.

Storm does this with the libtrhift dependency in storm-core:

https://github.com/apache/incubator-storm/blob/master/st= orm-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/examp= les/class-relocation.html

- Taylor

On Feb 4, 2014, at 4:27 PM, Vinay Pothnis <vinay.pothnis@gmail.com> 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




=



= --Apple-Mail=_8717BE4E-F09F-4289-954F-2F19D30D523C-- --Apple-Mail=_261E58DB-8982-443C-BD9E-96A6FCDB574F Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJS9E39AAoJEI3gOWLoC4/9+xAH/3tSTR14gy4vX1Ird+ZQb27T d40fB5quq/UkN9Fbk1fOqAONfo789OuDr4kah63Wf6AbdvN1q+DSQxe8u/ERRvGU 0gX9PPlLXi3vfalBrX+1xpUBu7/R6dtifo6BlmCXSsXrnC/oazyvGeRrdu/ph0qh 7dLDMEkixBTVcowh+V03h18bpjAzRAMBE+nn4R3yVAZVv5REBL1p37xuZWqoTwVr aMoetS/p/ULDINKjV07+YD3TBNK4n+pgVuzzw0+0BkRCd2pErbf26WNqN+bccGGs VcvFOknnnHEsbYCyKDeqEdOYVNrG3zIeBDoHSEhVh040oZoFV2Vw9FALa3NqKB8= =z48U -----END PGP SIGNATURE----- --Apple-Mail=_261E58DB-8982-443C-BD9E-96A6FCDB574F--