Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 95320 invoked from network); 8 Sep 2005 14:35:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 8 Sep 2005 14:35:34 -0000 Received: (qmail 59098 invoked by uid 500); 8 Sep 2005 14:35:31 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 59028 invoked by uid 500); 8 Sep 2005 14:35:30 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 59014 invoked by uid 99); 8 Sep 2005 14:35:30 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Sep 2005 07:35:30 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FORGED_RCVD_HELO,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of robertburrelldonkin@blueyonder.co.uk designates 195.188.213.6 as permitted sender) Received: from [195.188.213.6] (HELO smtp-out3.blueyonder.co.uk) (195.188.213.6) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Sep 2005 07:35:42 -0700 Received: from knossos.elmet ([82.38.65.173]) by smtp-out3.blueyonder.co.uk with Microsoft SMTPSVC(5.0.2195.6713); Thu, 8 Sep 2005 15:36:16 +0100 Subject: Re: [proxy] Commons-Lang Dependency... From: robert burrell donkin To: Jakarta Commons Developers List In-Reply-To: <200509081158.j88BwpZY024066@carmanconsulting.com> References: <200509081158.j88BwpZY024066@carmanconsulting.com> Content-Type: text/plain Date: Thu, 08 Sep 2005 15:50:23 +0100 Message-Id: <1126191023.5197.80.camel@knossos.elmet> Mime-Version: 1.0 X-Mailer: Evolution 2.0.1-1mdk Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 08 Sep 2005 14:36:16.0124 (UTC) FILETIME=[AB37DBC0:01C5B482] X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Thu, 2005-09-08 at 07:58 -0400, James Carman wrote: > What is our policy on inter-project dependencies? i'm not sure that we have anything as grand as a policy: just a lot of experience of creating long lived micro libraries. a lot of bitter lessons have been learnt over the years. > I just had to copy a > method from commons-lang, because I didn't want to introduce a runtime > dependency > (http://mail-archives.apache.org/mod_mbox/jakarta-commons-dev/200509.mbox/%3 > cdf9h71$c9j$2@tangens.hometree.net%3e). That seems, as Henning pointed out, > silly to me. copying a single method may seem silly now but it feels a lot worse when (three years down the line) seemingly the whole java blogosphere is shouting about how stupid you are because (for the sake of a single method) you added a dependency (three years ago) and now a thousand-and-one applications are now experiencing dependency hell... IMHO it would be much better to have good way of doing this (maybe some variation on jarjar) but at the moment, we're stuck with copying code. > And, the commons-email release was shot down because of its > dependence upon commons-lang. The dependence in email, though, was exposed > in the public API. i'm not sure that it was shot down (there may have been enough votes to win the day) as much as people were persuaded that the change should be made. stephen did the right thing in submitting a patch, > In proxy, the dependence is upon the > ClassUtils.getAllInterfaces() method inside a couple of class' > implementations. Is this okay? Or, should I strive (as I already have > done) to keep the dependencies to a minimum? when creating bricks, it's always best to keep the dependency graph as small as possible. i prefer optional jars for non-core dependencies but this is debated (some don't see the point of half a dozen 1k jars). > I do have a runtime dependency > upon Commons Logging at this time also. it's pretty hard to win when it comes to logging. JCL was created because (in the end) libraries need to log and a single dependency on a small bridging API seems better than the alternatives. - robert --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org