Applied to ant svn, and svn:externals problems should be fixed now. Xavier
On Dec 2, 2007 5:02 PM, Xavier Hanin <[EMAIL PROTECTED]> wrote: > I haven't checked in on right location, sorry about that. > > I now realize that when I moved stuff to ant svn I forgot to update our > svn:externals reference, that's why I was still editing stuff on the > incubator svn. I'll fix that. > > Xavier > > > On Dec 2, 2007 4:56 PM, <[EMAIL PROTECTED]> wrote: > > > Author: xavier > > Date: Sun Dec 2 07:56:22 2007 > > New Revision: 600318 > > > > URL: http://svn.apache.org/viewvc?rev=600318&view=rev > > Log: > > document new cache settings (IVY-628 and IVY-654) > > > > Added: > > incubator/ivy/core/trunk/doc/configuration/cache.html (with props) > > incubator/ivy/core/trunk/doc/configuration/lock-strategies.html > > (with props) > > Modified: > > incubator/ivy/core/trunk/doc/configuration.html > > incubator/ivy/core/trunk/doc/configuration/conf.html > > incubator/ivy/core/trunk/doc/extend.html > > incubator/ivy/core/trunk/doc/toc.json > > > > Modified: incubator/ivy/core/trunk/doc/configuration.html > > URL: > > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/configuration.html?rev=600318&r1=600317&r2=600318&view=diff > > > > ============================================================================== > > --- incubator/ivy/core/trunk/doc/configuration.html (original) > > +++ incubator/ivy/core/trunk/doc/configuration.html Sun Dec 2 07:56:22 > > 2007 > > @@ -25,16 +25,16 @@ > > </head> > > <body> > > <textarea id="xooki-source"> > > -In order to work as you want, ivy sometimes need some settings. > > Actually, ivy can work with no specific settings at all, see the <a > > href="tutorial/defaultconf.html">default settings documentation</a> for > > details about that. But ivy is able > > -to work in very different contexts. You just have to configure it > > properly. > > +In order to work as you want, ivy sometimes need some settings. > > Actually, ivy can work with no specific settings at all, see the <a > > href="tutorial/defaultconf.html">default settings documentation</a> for > > details about that. But ivy is able to work in very different contexts. You > > just have to configure it properly. > > > > -Settings are specified through an xml file, usually called > > ivysettings.xml. To configure ivy from ant, you just have to call the > > configure task and pass it the path to your settings file (see <a > > href="use/configure.html">configure</a> task documentation for details). > > +Settings are specified through an xml file, usually called > > ivysettings.xml. To configure ivy from ant, you just have to use the > > [[ant:settings]] datatype with the path of your settings file. > > > > Here is an example of settings file : > > <code type="xml"> > > <ivysettings> > > <properties file="${ivy.settings.dir}/ivysettings- > > file.properties" /> > > - <settings defaultCache="${cache.dir}" defaultResolver="ibiblio" > > checkUpToDate="false" /> > > + <settings defaultResolver="ibiblio" checkUpToDate="false" /> > > + <cache basedir="${cache.dir}" /> > > <resolvers> > > <ibiblio name="ibiblio" /> > > <filesystem name="internal"> > > @@ -73,6 +73,8 @@ > > <a href="configuration/include.html">include</a> > > <a href="configuration/classpath.html">classpath</a> > > <a href="configuration/typedef.html">typedef</a> > > + <a href="configuration/lock-strategies.html">lock-strategies</a> > > + <a href="configuration/cache.html">cache</a> > > <a href="configuration/latest-strategies.html">latest-strategies</a> > > <a href="configuration/version-matchers.html">version-matchers</a> > > <a href="configuration/triggers.html">triggers</a> > > @@ -121,6 +123,10 @@ > > <td>0..n</td></tr> > > <tr><td><a > > href="configuration/typedef.html">typedef</a></td><td>defines new types in > > ivy</td> > > <td>0..n</td></tr> > > + <tr><td><a > > href="configuration/lock-strategies.html">lock-strategies</a></td><td>defines > > lock strategies</td> > > + <td>0..1</td></tr> > > + <tr><td><a href="configuration/cache.html">cache</a></td><td>set up > > the cache</td> > > + <td>0..1</td></tr> > > <tr><td><a > > href="configuration/latest-strategies.html">latest-strategies</a></td><td>defines > > latest strategies</td> > > <td>0..1</td></tr> > > <tr><td><a > > href="configuration/parsers.html">parsers</a></td><td>defines module > > descriptor parsers</td> > > > > Added: incubator/ivy/core/trunk/doc/configuration/cache.html > > URL: > > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/configuration/cache.html?rev=600318&view=auto > > > > > > ============================================================================== > > --- incubator/ivy/core/trunk/doc/configuration/cache.html (added) > > +++ incubator/ivy/core/trunk/doc/configuration/cache.html Sun Dec 2 > > 07:56:22 2007 > > @@ -0,0 +1,89 @@ > > +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " > > http://www.w3.org/TR/html4/strict.dtd"> > > +<!-- > > + Licensed to the Apache Software Foundation (ASF) under one > > + or more contributor license agreements. See the NOTICE file > > + distributed with this work for additional information > > + regarding copyright ownership. The ASF licenses this file > > + to you under the Apache License, Version 2.0 (the > > + "License"); you may not use this file except in compliance > > + with the License. You may obtain a copy of the License at > > + > > + http://www.apache.org/licenses/LICENSE-2.0 > > + > > + Unless required by applicable law or agreed to in writing, > > + software distributed under the License is distributed on an > > + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > > + KIND, either express or implied. See the License for the > > + specific language governing permissions and limitations > > + under the License. > > +--> > > +<html> > > +<head> > > + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; > > charset=ISO-8859-1"> > > + <script type="text/javascript">var xookiConfig = {level: > > 1};</script> > > + <script type="text/javascript" src="../xooki/xooki.js"></script> > > +</head> > > +<body> > > + <textarea id="xooki-source"> > > +<b>Tag:</b> cache > > + > > +<span class="since">since 2.0</span> Configures the Ivy cache. > > + > > +Ivy cache is composed of two different parts: > > +<ul> > > +<li>the repository cache</li> > > +The repository cache is where Ivy stores data downloaded from module > > repositories, along with some meta information concerning these artifacts, > > like their original location. > > +This part of the cache can be shared if you use an ad hoc > > [[configuration/lock-strategies lock strategy]]. > > +<li>the resolution cache</li> > > +This part of the cache is used to store resolution data, which is used > > by Ivy to reuse the results of a resolve process. > > +This part of the cache is overwritten each time a new resolve is > > performed, and should never be used by multiple processes at the same time. > > +</ul> > > + > > +Here are some details on the available settings attributes: > > + > > +<em>basedir</em> is the base directory where the cache will be stored. > > All other cache related paths are relative to this basedir. > > +It usually points to a directory in the local filesystem. > > +<strong>This should not point to a directory used as a > > repository!</strong> > > + > > +Once the settings are loaded, the value of the defaultCache (either > > configured or the default value) is stored in an Ivy variable: > > ivy.cache.dir. > > + > > +<em>repositoryDir</em> and <em>resolutionDir</em> are used to configure > > the base location of the repository and resolution parts of the cache. > > + > > +<em>repositoryIvyPattern</em> and <em>repositoryArtifactPattern</em> > > are used to configure the way Ivy stores ivy files and artifacts in the > > cache. Usually you do not have to change this, unless you want to use the > > cache directly from another tool, which is not recommended. These patterns > > are relative to the repository cache root. > > + > > +<em>lockStrategy</em> is used to define the lock strategy to use when > > accessing the repository cache. > > + > > +<h1>Attributes</h1> > > +<table class="ivy-attributes"> > > +<thead> > > + <tr><th class="ivy-att">Attribute</th><th > > class="ivy-att-desc">Description</th><th > > class="ivy-att-req">Required</th></tr> > > +</thead> > > +<tbody> > > + <tr><td>basedir</td><td>a path to a directory to use as base > > directory for the cache.</td> > > + <td>No, defaults to .ivy2/cache in user home</td></tr> > > + <tr><td>resolutionDir</td><td>the path of the directory to use to > > put all resolution cache data</td> > > + <td>No, defaults to empty string (ie cache basedir)</td></tr> > > + <tr><td>repositoryDir</td><td>the path of the directory to use to > > put all repository cache data</td> > > + <td>No, defaults to empty string (ie cache basedir)</td></tr> > > + <tr><td>repositoryIvyPattern</td><td>a pattern to indicate where > > ivy files should be put in the repository cache</td> > > + <td>No, defaults to > > [organisation]/[module]/ivy-[revision].xml</td></tr> > > + <tr><td>repositoryArtifactPattern</td><td>a pattern to indicate > > where artifact files should be put in repository cache</td> > > + <td>No, defaults to > > [organisation]/[module]/[type]s/[artifact]-[revision].[ext]</td></tr> > > + <tr><td>lockStragegy</td><td>the name of the > > [[configuration/lock-strategies]] lock strategy to use when accessing the > > cache</td> > > + <td>No, defaults to <em>no-lock</em></td></tr> > > +</tbody> > > +</table> > > +<h1>Example</h1> > > +<code type="xml"> > > +<cache basedir="mycache" > > + resolutionDir="resolution" > > + repositoryDir="repository" > > + repositoryIvyPattern="[module]/ivys/ivy-[revision].xml" > > + > > repositoryArtifactPattern="[module]/[type]s/[artifact]-[revision].[ext]" > > + lockStrategy="artifact-lock" > > +/> > > +</code> > > +</textarea> > > +<script type="text/javascript">xooki.postProcess();</script> > > +</body> > > +</html> > > > > Propchange: incubator/ivy/core/trunk/doc/configuration/cache.html > > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Modified: incubator/ivy/core/trunk/doc/configuration/conf.html > > URL: > > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/configuration/conf.html?rev=600318&r1=600317&r2=600318&view=diff > > > > ============================================================================== > > --- incubator/ivy/core/trunk/doc/configuration/conf.html (original) > > +++ incubator/ivy/core/trunk/doc/configuration/conf.html Sun Dec 2 > > 07:56:22 2007 > > @@ -31,6 +31,8 @@ > > > > Default cache is used whenever a cache is not provided. It usually > > points to a directory in your filesystem. <strong>This should not point to a > > directory used as a repository!</strong> > > <span class="since">Since 2.0</span> Once the settings are loaded, the > > value of the defaultCache (either configured or the default value) is stored > > in an Ivy variable: ivy.cache.dir. > > +<span class="since">Since 2.0</span> A new [[configuration/cache]] tag > > is provided where you can fully configure the cache. As of 2.0 beta 1, > > we recommend using the cache tag even though configuring using the > > attributes available on this tag is still possible. > > + > > > > Default resolver is used whenever nothing else is configured in the > > modules section of the configuration file. It should give the name of a > > dependency resolver defined in the resolvers section of the configuration > > file. > > > > @@ -44,14 +46,13 @@ > > checkUpToDate indicates to ivy if it must check date of artifacts > > before retrieving them (i.e. copying them from > > cache to another place in your filesystem). Usually it is a good thing > > to check date to avoid unnecessary copy, even if it's most of the time a > > local copy. > > > > -cacheIvyPattern and cacheArtifactPattern are used to configure the way > > ivy stores ivy files and artifacts in the cache. Usually you do not have to > > change this, unless you want to use the cache directly from another tool, > > which is not recommended. > > <h1>Attributes</h1> > > <table class="ivy-attributes"> > > <thead> > > <tr><th class="ivy-att">Attribute</th><th > > class="ivy-att-desc">Description</th><th > > class="ivy-att-req">Required</th></tr> > > </thead> > > <tbody> > > - <tr><td>defaultCache</td><td>a path to a directory to use as > > default cache</td> > > + <tr><td>defaultCache</td><td>a path to a directory to use as > > default cache. <i>We recommend using the basedir on the > > [[configuration/cache]] tag instead</i></td> > > <td>No, defaults to .ivy2/cache in user home</td></tr> > > <tr><td>defaultResolver</td><td>the name of the default resolver to > > use</td> > > <td>No, but all modules should be configured in the modules > > section if not provided</td></tr> > > @@ -67,9 +68,9 @@ > > <td>No, defaults to true</td></tr> > > <tr><td>checkUpToDate</td><td>Indicates if date should be checked > > before retrieving artifacts from cache</td> > > <td>No, defaults to true</td></tr> > > - <tr><td>cacheIvyPattern</td><td>a pattern to indicate where ivy > > files should be put in cache</td> > > + <tr><td>cacheIvyPattern</td><td>a pattern to indicate where ivy > > files should be put in cache. <i>We recommend using the repositoryIvyPattern > > on the [[configuration/cache]] tag instead</i></td> > > <td>No, defaults to > > [organisation]/[module]/ivy-[revision].xml</td></tr> > > - <tr><td>cacheArtifactPattern</td><td>a pattern to indicate where > > artifact files should be put in cache</td> > > + <tr><td>cacheArtifactPattern</td><td>a pattern to indicate where > > artifact files should be put in cache. <i>We recommend using the > > repositoryArtifactPattern on the [[configuration/cache]] tag > > instead</i></td> > > <td>No, defaults to > > [organisation]/[module]/[type]s/[artifact]-[revision].[ext]</td></tr> > > <tr><td>useRemoteConfig</td><td>true to configure ivyrep and ibiblio > > resolver from a remote configuration file (updated with changes in those > > repository structure if any) (<span class="since">since 1.2</span>)</td> > > <td>No, defaults to false</td></tr> > > > > Added: incubator/ivy/core/trunk/doc/configuration/lock-strategies.html > > URL: > > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/configuration/lock-strategies.html?rev=600318&view=auto > > > > ============================================================================== > > --- incubator/ivy/core/trunk/doc/configuration/lock- strategies.html(added) > > +++ incubator/ivy/core/trunk/doc/configuration/lock-strategies.html Sun > > Dec 2 07:56:22 2007 > > @@ -0,0 +1,62 @@ > > +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" > > "http://www.w3.org/TR/html4/strict.dtd > > "> > > +<!-- > > + Licensed to the Apache Software Foundation (ASF) under one > > + or more contributor license agreements. See the NOTICE file > > + distributed with this work for additional information > > + regarding copyright ownership. The ASF licenses this file > > + to you under the Apache License, Version 2.0 (the > > + "License"); you may not use this file except in compliance > > + with the License. You may obtain a copy of the License at > > + > > + http://www.apache.org/licenses/LICENSE-2.0 > > + > > + Unless required by applicable law or agreed to in writing, > > + software distributed under the License is distributed on an > > + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > > + KIND, either express or implied. See the License for the > > + specific language governing permissions and limitations > > + under the License. > > +--> > > +<html> > > +<head> > > + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; > > charset=ISO-8859-1"> > > + <script type="text/javascript">var xookiConfig = {level: > > 1};</script> > > + <script type="text/javascript" src="../xooki/xooki.js"></script> > > +</head> > > +<body> > > + <textarea id="xooki-source"> > > +<b>Tag:</b> lock-strategies <span class="since">since 2.0</span> > > + > > +Defines a list of lock strategies usable in Ivy. > > + > > +A lock strategy is used by a cache manager to decide when and how > > locking should be performed (see [[configuration/cache]] to see how to > > configure the lock strategy to use). > > + > > +Two lock strategies are registered by default: > > +<ul> > > +<li><b>no-lock</b></li> This lock strategy actually performs no locking > > at all, and thus should not be used in environment where the cache is shared > > by multiple processes. > > + > > +This strategy is implemented by > > ([[svn:src/java/org/apache/ivy/plugins/lock/NoLockStrategy.java > > NoLockStrategy]]) > > + > > + > > +<li><b>artifact-lock</b></li> This strategy acquire a lock whenever a > > module descriptor or an artifact is downloaded to the cache, which makes a > > good solution when you want to share your repository cache. > > + > > +Note that this strategy is based on file locking, performed by default > > using the java.io.File.createNewFile() atomicity (which is documented as > > atomic in the javadoc, but not recommended to perform locks). A > > java.nio.FileLock based implementation is also provided, but according > > to our tests the createNewFile based one performs better and more reliably. > > We heavily recommend making your own testing in your target environment > > before relying on this lock strategy for heavily concurrent operations. > > + > > +This strategy is implemented by > > ([[svn:src/java/org/apache/ivy/plugins/lock/ArtifactLockStrategy.java > > ArtifactLockStrategy]]) > > +</ul> > > + > > +The child tag used for the lock strategy must be equal to a name of a > > lock strategy type (added with the typedef tag). > > + > > +<h1>Child elements</h1> > > +<table class="ivy-children"> > > +<thead> > > + <tr><th class="ivy-chld">Element</th><th > > class="ivy-chld-desc">Description</th><th > > class="ivy-chld-card">Cardinality</th></tr> > > +</thead> > > +<tbody> > > + <tr><td>any lock strategy</td><td>adds a lock strategy to the list > > of available ones</td> > > + <td>0..n</td></tr> > > +</tbody> > > +</table></textarea> > > +<script type="text/javascript">xooki.postProcess();</script> > > +</body> > > +</html> > > > > Propchange: incubator/ivy/core/trunk/doc/configuration/lock- > > strategies.html > > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Modified: incubator/ivy/core/trunk/doc/extend.html > > URL: > > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/extend.html?rev=600318&r1=600317&r2=600318&view=diff > > > > ============================================================================== > > --- incubator/ivy/core/trunk/doc/extend.html (original) > > +++ incubator/ivy/core/trunk/doc/extend.html Sun Dec 2 07:56:22 2007 > > @@ -25,41 +25,30 @@ > > </head> > > <body> > > <textarea id="xooki-source"> > > -Many things are configurable in ivy, and many things are available with > > ivy core. But when you want to do > > -something not built in ivy core, you can still plug your own > > code.<br/><br/> > > +Many things are configurable in Ivy, and many things are available with > > Ivy core. But when you want to do something not built in ivy core, you can > > still plug your own code. > > > > -Several things are pluggable in ivy: > > +Many things are pluggable in Ivy: > > <ul> > > <li>module descriptor parsers</li> > > <li>dependency resolvers</li> > > +<li>lock strategies</li> > > <li>latest strategies</li> > > +<li>circular dependency strategies</li> > > <li>conflict managers</li> > > <li>report outputters</li> > > <li>version matchers</li> > > <li>triggers</li> > > </ul> > > > > -Before trying to implement your own, we encourage you to check if the > > solution to your problem cannot be > > -addressed by existing features, or by [[links contributed ones]]. Do > > not hesitate to ask for help on the [[mailing-lists]].<br/><br/> > > +Before trying to implement your own, we encourage you to check if the > > solution to your problem cannot be addressed by existing features, or by > > [[links contributed ones]]. Do not hesitate to ask for help on the > > [[mailing-lists]]. > > > > -If you still don't find what you need, then you'll have to develop your > > own plugin or find someone who could do that for you.<br/><br/> > > +If you still don't find what you need, then you'll have to develop your > > own plugin or find someone who could do that for you. > > > > -Here are the main things to know if you want to develop your own > > plugins...<br/><br/> > > +All ivy plug-ins use the same code patterns as ant specific tasks for > > parameters. This means that if you want to have a "myattribute" of type > > String, you just have to declare a method called setMyattribute(String val) > > on your plug-in. The same applies to child tags, you just have to follow Ant > > specifications. > > > > -All ivy plug-ins use the same code patterns as ant specific tasks for > > parameters. This means that > > -if you want to have a "myattribute" of type String, you just have to > > declare a method called > > -setMyattribute(String val) on your plug-in. The same applies to child > > tags, you just have to follow ant specifications.<br/><br/> > > - > > -Knowing that, you then have to implement the appropriate interface: > > -<ul> > > -<li>org.apache.ivy.DependencyResolver for dependency resolvers</li> > > -<li>org.apache.ivy.LatestStrategy for latest strategies</li> > > -<li>org.apache.ivy.ConflictManager for conflict managers</li> > > -<li>org.apache.ivy.parser.ModuleDescriptorParser for module descriptor > > parsers</li> > > -</ul> > > - > > -To help you understand what is required in each implementation, and > > what you can use to do it, have a look to existing implementations, it's the > > best advice we can give you! > > +All pluggable code in Ivy is located in the > > [[svn:src/java/org/apache/ivy/plugins org.apache.ivy.plugins]] package. > > In each package you will find an interface that you must implement to > > provide a new plugin. We usually also provide an abstract class easing the > > implementation and making your code more independent of interface changes. > > We heavily recommend using these abstract classes as a base class. > > > > +To understand how your implementation can be done, we suggest looking > > at existing implementations we provide, it's the best way to get started. > > </textarea> > > <script type="text/javascript"> xooki.postProcess();</script> > > </body> > > > > Modified: incubator/ivy/core/trunk/doc/toc.json > > URL: > > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/toc.json?rev=600318&r1=600317&r2=600318&view=diff > > > > ============================================================================== > > --- incubator/ivy/core/trunk/doc/toc.json (original) > > +++ incubator/ivy/core/trunk/doc/toc.json Sun Dec 2 07:56:22 2007 > > @@ -193,6 +193,20 @@ > > ] > > }, > > { > > + "id":"configuration/lock-strategies", > > + "title":"lock-strategies", > > + "children": [ > > + > > + ] > > + }, > > + { > > + "id":"configuration/cache", > > + "title":"cache", > > + "children": [ > > + > > + ] > > + }, > > + { > > "id":"configuration/latest-strategies", > > "title":"latest-strategies", > > "children": [ > > > > > > > > > -- > Xavier Hanin - Independent Java Consultant > http://xhab.blogspot.com/ > http://ant.apache.org/ivy/ > http://www.xoocode.org/ -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://ant.apache.org/ivy/ http://www.xoocode.org/
