Return-Path: Delivered-To: apmail-ant-dev-archive@www.apache.org Received: (qmail 16123 invoked from network); 3 Jan 2008 16:47:59 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Jan 2008 16:47:59 -0000 Received: (qmail 43505 invoked by uid 500); 3 Jan 2008 16:47:48 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 43457 invoked by uid 500); 3 Jan 2008 16:47:48 -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 43441 invoked by uid 99); 3 Jan 2008 16:47:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Jan 2008 08:47:48 -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 xavier.hanin@gmail.com designates 72.14.252.154 as permitted sender) Received: from [72.14.252.154] (HELO po-out-1718.google.com) (72.14.252.154) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Jan 2008 16:47:24 +0000 Received: by po-out-1718.google.com with SMTP id c31so4709586poi.0 for ; Thu, 03 Jan 2008 08:47:28 -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=xErcooGwFKjB/UTMiCwwPFFIbtqjwwnBjC89IHhTwLA=; b=uhgCniffk6N8hgyLwMuqzKgTd1dbRgNA91z3UGqBgWSUrdmgvSjcu6hvFSYWL85rNbNbgFTYo2WhUFJGs/w1Dg+AYsJd3oETYndOajYn0NwWuXRAqkGEerJSc0ZP79Mu4L58lFCpJUVg6sWRp9h6//51hLgYmdrh+FBs4H81/VU= 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=Kk/fOI3A6/BXf8jJUU/vtoIz2wcytzCmRdTZh9JTmfHW1Hv2mXA20j8x2gW2qKEkDH9TXeWHVswNebHiusiM1cczdYFjY9+BtfOyTA7v8LebCc6oM0F/Qge5aEH2XAX0Ai54X7JvrywEJgA/5FOf3cPG6B57xML8be1XtPXqVVI= Received: by 10.141.99.4 with SMTP id b4mr806759rvm.196.1199378848531; Thu, 03 Jan 2008 08:47:28 -0800 (PST) Received: by 10.140.225.10 with HTTP; Thu, 3 Jan 2008 08:47:28 -0800 (PST) Message-ID: <635a05060801030847g4b0144h4ca0d225defa09e@mail.gmail.com> Date: Thu, 3 Jan 2008 17:47:28 +0100 From: "Xavier Hanin" To: "Ant Developers List" Subject: Re: flexible cache management (IVY-399) In-Reply-To: <011301c84e14$ff8248e0$0920a8c0@isabelteam.be> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_9887_3663260.1199378848520" References: <635a05060801030458i6c37e21nac89cdd79434a60a@mail.gmail.com> <011301c84e14$ff8248e0$0920a8c0@isabelteam.be> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_9887_3663260.1199378848520 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Jan 3, 2008 3:29 PM, Gilles Scokart wrote: > > > -----Original Message----- > > From: Xavier Hanin [mailto:xavier.hanin@gmail.com] > > Sent: jeudi 3 janvier 2008 13:59 > > To: Ant Developers List > > Subject: flexible cache management (IVY-399) > > > > Hi, > > > > Last week I've worked on the cache management to improve its > flexibility. > > Now the two kind of caches (resolution and repository caches) are > available, > > and the repository cache is now much more flexible: new implementation > can > > be supplied by users, and one can choose which repository cache instance > to > > use for each resolver. > > > > By default only one repository cache instance is created, configured > using > > defaults value which can be overridden. To ease the settings, any cache > > instance created by the user and relying the default repository cache > > implementation will use the same defaults, so that one can easily > override > > the pattern used by all the cache instances used. > > > > An example of how this can be configured in the current trunk is > available > > here: > > > https://svn.apache.org/repos/asf/ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/ivysetti > > ngs-cache.xml > > > > The element configures default values for both the > > repository and resolution cache: > > > resolutionDir="resolution" > > repositoryDir="repository" > > repositoryIvyPattern="[module]/ivys/ivy-[revision].xml" > > > repositoryArtifactPattern="[module]/[type]s/[artifact]-[revision].[ext]" > > lockStrategy="artifact-lock" > > /> > > > > Note that unlike 2.0 beta 1, resolutionDir and repositoryDir are not > > relative to a common cache basedir, but are absolute paths. A default > > basedir can still be configured in cacheDefaults using defaultBasedir > > attribute, which is used as default value for both resolutionDir and > > repositoryDir if none is provided. > > > > Then repository cache instances are configured in the element: > > > > > basedir="mycache" > > ivyPattern="[module]/ivy-[revision].xml" > > artifactPattern="[module]/[artifact]-[revision].[ext]" > > lock="no-lock" > > /> > > > > > > > > Here the cache named 'mycache' is configured extensively (no use of the > > defaults) while the cache 'mycache2' is only defining one new cache > > instance, using only default values for its base directory, patterns and > > lock strategy. > > > > Then one can define the repository cache instance to use in one resolver > by > > setting the cache attribute: > > > > > > > > > > > > I'd like to gather some feedback about these changes: > > - Are attribute and element names well chosen? There is for example an > > inconsistency between lockStrategy on cacheDefaults and lock on a cache > > instance. I guess we should better be consistent, which one do you > prefer? > > Is the use of cacheDefaults as element name good or should we use cache > as > > introduced in 2.0 beta 1? > > - Is breaking the compatibility with 2.0 beta 1 a problem? In beta1 > cache > > defaults were provided in a cache element, where resolution and > repository > > basedir were relative to a common basedir. > > - Is the defaultBasedir attribute on cacheDefaults a good idea? It's > > basically provided as an equivalent to defaultCache attribute on the > > settings element, itself provided for backward compatibility reason. But > I'm > > wondering if we shouldn't deprecate the defaultCache attribute on the > > settings element, and remove defaultBasedir on cacheDefaults, so that > user > > configure both resolutionDir and repositoryDir explicitly to make people > > always aware of the two kind of caches. > > > > WDYT? > > > > Xavier > > I'm actually wondering if we should keep the . > > I mean, all the data that you can define there are actually replacement of > some values you could set in the settings tag > (and that are still documented there), or just default values to gain one > or 2 attribute declaration in the tag > itself. I introduced cacheDefaults in beta 1 (well, called cache but with the same purpose) to avoid cluttering the settings element with too much attributes related to cache. I think this is more scalable (in terms of cache related features). So my intention was to deprecate the cache related settings attributes on the settings element to get them only in the cacheDefaults in the future. This is cleaner IMO, and 2.0 is a good opportunity to do this kind of change. But if the community feels like it's better to keep cache related attributes in settings element to avoid deprecating attributes I'm ok. > > PS: By the way, I didn't know that defaultCache in settings was only there > for backward compatibility reason. I'm using > it in order to have one cache per group of similar project that I have on > my machine. Pretty usefull! settings[@defaultCache] is not deprecated yet, but I'm suggesting to deprecate it in favor of cacheDefaults[@defaultBasedir] which is more explicit IMO (especially because now that you can have multiple cache instances, we have a defaultCacheManager attribute on settings which mimic the defaultResolver attribute, and which can thus be easily confused with defaultCache). Then I'm wondering if we should keep this concept of default basedir for both resolution and repository cache, or if we should force people to configure both separately. This doesn't remove any flexibility and would still allow you to do what you do, but would make people aware of the two kind of caches, and help them consider them separately which would be a good thing IMO. But if we consider most users won't care about separating resolution and repository caches, having a way to configure the base directory for both at once still makes sense. In that case we'd need to choose if we keep it in settings[@defaultCache] or put it in cacheDefaults[@defaultBasedir] So, does it make my intent clearer? And do you agree with my opinion, or want to make another proposal? Xavier > > > > Gilles > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org > For additional commands, e-mail: dev-help@ant.apache.org > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://ant.apache.org/ivy/ http://www.xoocode.org/ ------=_Part_9887_3663260.1199378848520--