Return-Path: Delivered-To: apmail-ant-dev-archive@www.apache.org Received: (qmail 69979 invoked from network); 16 Jan 2008 07:55:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Jan 2008 07:55:01 -0000 Received: (qmail 19102 invoked by uid 500); 16 Jan 2008 07:54:50 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 19053 invoked by uid 500); 16 Jan 2008 07:54:50 -0000 Mailing-List: contact dev-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list dev@ant.apache.org Received: (qmail 19042 invoked by uid 99); 16 Jan 2008 07:54:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jan 2008 23:54:50 -0800 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gscokart@gmail.com designates 72.14.202.179 as permitted sender) Received: from [72.14.202.179] (HELO ro-out-1112.google.com) (72.14.202.179) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Jan 2008 07:54:26 +0000 Received: by ro-out-1112.google.com with SMTP id p4so3300369roc.4 for ; Tue, 15 Jan 2008 23:54:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=1+qZfujez1TGXcSi2H1ik77nidsMsRuMTPTSBNvQOsk=; b=g96lWUT0uqu7BktPIz3m1rd64eHdEB53ZHzfBKuxathgJmBdxTpDzol9r2J8R+g2ZF0AWujKhF0hLX8iCNuD8JXDNV2n2cdocV5x9oFlS5gOsb6r8AtyD1DLMneqM+G5HBt2cnyBIPRDWLAR/NDVtTJh+BB4ILe28ZjgxSODI1s= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=VH5JWAfiCV+93bQ33VfgCdSzXKBz0KxZpe8Flh/lWImKCit4Bz9rDEWRShRqRImZvthf+e0oDeG/nSdx2ljKHm/RXLsMULuxDhrqDiyvt+SKQKv4nrz7HTIWkzh+1v+brqxWtBEMlxrE6fR31B8aRzxt96ZRViU/s+pMN0YQt1M= Received: by 10.142.11.2 with SMTP id 2mr152247wfk.233.1200470070740; Tue, 15 Jan 2008 23:54:30 -0800 (PST) Received: by 10.142.174.2 with HTTP; Tue, 15 Jan 2008 23:54:30 -0800 (PST) Message-ID: Date: Wed, 16 Jan 2008 08:54:30 +0100 From: "Gilles Scokart" To: "Ant Developers List" Subject: Re: [DISCUSS] EasyAnt: Ant based pre packaged build system for java projects In-Reply-To: <478D30A7.2040603@oracle.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_16074_13790205.1200470070717" References: <20080114205825.4olx878qsgocwg44@zeus.private> <478CFDF9.1000302@oracle.com> <255d8d690801151211v43ea405fpf5c96ada338f6988@mail.gmail.com> <478D30A7.2040603@oracle.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_16074_13790205.1200470070717 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 2008/1/15, Louis Tribble : > > Dominique Devienne wrote: > > On 1/15/08, Louis Tribble wrote: > > > >> Consequently, my main comment (apologies if I missed it in the thread) > >> is that any magic target overriding feature needs to balanced by > >> a target locking feature, for at least two reasons: (1) the integrity > of > >> the > >> build depends on certain chunks of script (typically in the xxx-default > >> targets) always being invoked and (2) nobody can understand and > >> manage a build of 500 modules if modules do their own thing even for > >> basic tasks like compiling and creating jars. > >> > > > > This is interesting. So you want some kind of "final" keyword for a > > target, to allow controlled customization only, right? Basically the > > template method pattern, with an immutable public target, and only > > limited customization. > > > Right. In fact, we were very conscious of applying design > patterns to the build system. > > > >> A corollary is that if I were to base this system on the hypothesized > >> Ant-supplied system, I expect I would need to customize quite a bit, > >> but I would not want to expose most of that customizability to the > >> modules. (Perhaps that is something like what Gilles was thinking > >> when he mentioned two levels of customization?) > >> > > > > That's where I'm confused. You want to be able to customize in some > > places, but not in others??? I don't quite follow what you mean here. > > > Sorry if I wasn't clear. Xavier was suggesting (in part) a set > of reusable build scripts. To be useful, those scripts need to > be customizable in a variety of ways, which led to the > discussion of super and before/after and so on. I was noting > that if we were to implement our build system on top of these > reusable scripts, we no doubt would be stretching the > customization hooks to their limit, but we will want to significantly > limit what individual module developers can customize. > > A couple of particulars that come to mind with our > compile-default target: > > The sourcepath, classpath, and output directory for > each module are dictated by the build system, not the > module (so we would want to configure that, but not > let module developers reconfigure it). > > Before the actual compile, we convert the property files > containing translateable resources to Java files and maintain > a list of all files needing translation (the translation team, > which services the entire company, uses that list to drive > their translations). > > In the postulated reusable script scenario, our standard resource > preprocessing would presumably be plugged in to the > public distribution as a before target. We want to allow > modules to provide their own before targets, but not allow > them to mess with our standard one. > > (Actually, while I'm at it, we reflexively provided before and > after targets for the test phase, which seems to have been a > mistake. The chief use has been to set up test > fixtures (starting and stopping web servers, etc), which > would have been more robust and reusable if done from > within the JUnit test classes.) > > Louis > > > --DD > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org > > For additional commands, e-mail: dev-help@ant.apache.org > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org > For additional commands, e-mail: dev-help@ant.apache.org > > I'm not favorable to have such restricting feature embbed in the language. These kind of things have their place in generic strict imperative language, not in a scripting language, not in declarative language, and usually not in domain specific language. And IMHO, Ant is a declarative, domain specific scripting language. To put in place such restriction in Ant, you should rather have coding standards, guidelines or policies, maybe enforced by a PMD-like validation (I don't know if that exists for ant). -- Gilles Scokart ------=_Part_16074_13790205.1200470070717--