You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2006/12/18 16:49:58 UTC

svn commit: r488332 - /incubator/ivy/trunk/src/doc/ivy-raw-book.xml

Author: xavier
Date: Mon Dec 18 08:49:57 2006
New Revision: 488332

URL: http://svn.apache.org/viewvc?view=rev&rev=488332
Log:
sync with jayasoft.org site

Modified:
    incubator/ivy/trunk/src/doc/ivy-raw-book.xml

Modified: incubator/ivy/trunk/src/doc/ivy-raw-book.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/trunk/src/doc/ivy-raw-book.xml?view=diff&rev=488332&r1=488331&r2=488332
==============================================================================
--- incubator/ivy/trunk/src/doc/ivy-raw-book.xml (original)
+++ incubator/ivy/trunk/src/doc/ivy-raw-book.xml Mon Dec 18 08:49:57 2006
@@ -199,7 +199,7 @@
 </content>
 </node>
 <node id="node-36">
-<nodeinfo  path='ivy/doc/tutorial/ivyrep' md5_body='5d52e45f551ef76caa10dd1bc6fdb434' weight='-12' depth='3' type='book' author='admin' uid='1' created='1117212279' status='1' format='3' sticky='0' promote='1'/>
+<nodeinfo  path='ivy/doc/tutorial/ivyrep' md5_body='db37a5214c914b4d2a0e41707b68c55e' weight='-12' depth='3' type='book' author='admin' uid='1' created='1117212279' status='1' format='4' sticky='0' promote='1'/>
 <title>Using IvyRep</title>
 <teaser>
 <![CDATA[In this example, we will see the easiest way to use ivy and benefit from its transitive dependencies feature. 
@@ -208,10 +208,13 @@
 <h1>The ivy.xml file</h1>
 This file is used to describe, the dependencies of the project on other libraries.
 Here is the sample : 
-<div class="ivy-file">
-
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text">]]>
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="hello-ivy" />
+    <dependencies>
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+        <dependency org="apache" name="commons-cli" rev="1.0" />
+    </dependencies>
]]>
 </teaser>
 <content>
 <![CDATA[In this example, we will see the easiest way to use ivy and benefit from its transitive dependencies feature. 
@@ -220,32 +223,29 @@
 <h1>The ivy.xml file</h1>
 This file is used to describe, the dependencies of the project on other libraries.
 Here is the sample : 
-<div class="ivy-file">
-
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">info</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">jayasoft</span>" <span class="xmlverb-attr-name">module</span>="<span class="xmlverb-attr-content">hello-ivy</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">org</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-lang</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">2.0</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">org</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-cli</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">1.0</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivy-module</span>&gt;<br></div>
-</div>
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="hello-ivy" />
+    <dependencies>
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+        <dependency org="apache" name="commons-cli" rev="1.0" />
+    </dependencies>
+</ivy-module>
+</code>
 The build file corresponding to use it, contains only :
-<div class="build-file">
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">project</span><span class="xmlverb-ns-name"> xmlns:ivy</span>="<span class="xmlverb-ns-uri">antlib:fr.jayasoft.ivy.ant</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">hello-ivy</span>" <span class="xmlverb-attr-name">default</span>="<span class="xmlverb-attr-content">run</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;...<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;!--<span class="xmlverb-comment">&nbsp;=================================&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target:&nbsp;resolve&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=================================&nbsp;</span>--&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">target</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">resolve</span>" <span class="xmlverb-attr-name">description</span>="<span class="xmlverb-attr-content">--&gt; retreive dependencies with ivy</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-nsprefix">ivy</span>:<span class="xmlverb-element-name">retrieve</span> /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">target</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">project</span>&gt;<br>
-</div></div>
+<code>
+<project xmlns:ivy="antlib:fr.jayasoft.ivy.ant" name="hello-ivy" default="run">
+    
+    ...
+    
+    <!-- ================================= 
+          target: resolve              
+         ================================= -->
+    <target name="resolve" description="--> retreive dependencies with ivy">
+        <ivy:retrieve />
+    </target>
+</project>
+</code>
 <h1>Running the project</h1>
 To run the sample, open a shell window, and go under the ivyrep example directory.
 Then, on the command prompt, just run ant :
@@ -289,16 +289,16 @@
 BUILD SUCCESSFUL
 Total time: 16 seconds</pre></div>
 <h1>What happened ?</h1>
-Without any configuration, other than it's default configuration, ivy uses the ivyrep resolver. This resolver looks for ivy files on <a href="./ivy/ivyrep">ivyrep</a>,
-and for artifacts on ibiblio. That's what happened here. <br/><br/>
+Without any configuration, other than it's default configuration, ivy uses the ivyrep resolver. This resolver looks for ivy files on <a href="./ivy/ivyrep">ivyrep</a>, and for artifacts on ibiblio. That's what happened here. 
+
 The resolve task has found an <a href="http://ivyrep.jayasoft.org/apache/commons-cli/ivy-1.0.xml">ivy file on ivyrep for commons-cli 1.0</a>.
-This ivy file indicates that commons-cli 1.0 depends on commons-lang 1.0 and commons-logging 1.0.<br/><br/>
-The resolve task detects the conflict between the revision 2.0 of commons-lang that is asked in the ivy above, and
-the revision 1.0 required in commons-cli. With no particular conflict manager, the 2.0 is selected, and the 1.0 is evicted.
-The 1.0 being evicted, it is not downloaded at all.<br/><br/>
-The resolve task has then downloaded the commons-cli 1.0, commons-logging 1.0 and commons-lang.jar 2.0 files from ibiblioand put them to the ivy cache. <br/>
-Then the retrieve task has copied them in the default library directory of the project : the lib dir.<br>
-Some will say that the task was long to achieve. Yes, it's true it was, but it has downloaded from the internet the needed files. Let's try to run it again :
+This ivy file indicates that commons-cli 1.0 depends on commons-lang 1.0 and commons-logging 1.0.
+
+The resolve task detects the conflict between the revision 2.0 of commons-lang that is asked in the ivy above, and the revision 1.0 required in commons-cli. With no particular conflict manager, the 2.0 is selected, and the 1.0 is evicted. The 1.0 being evicted, it is not downloaded at all.
+
+The resolve task has then downloaded the commons-cli 1.0, commons-logging 1.0 and commons-lang.jar 2.0 files from ibiblioand put them to the ivy cache. 
+Then the retrieve task has copied them in the default library directory of the project: the lib dir.
+Some will say that the task was long to achieve. Yes, it's true it was, but it has downloaded from the internet the needed files. Let's try to run it again:
 <div class="shell"><pre>
 I:\ivyrep>ant
 Buildfile: build.xml
@@ -327,9 +327,9 @@
 
 BUILD SUCCESSFUL
 Total time: 2 seconds</pre></div>
-Great ! the cache was used, no download was needed and the build was almost instantaneous.<br/><br/>
-If you want to check the content of the cache, by default it is put in your user home 
-in a .ivy-cache directory. Check the next tutorials to see how to configure this.<br/>
+Great ! the cache was used, no download was needed and the build was almost instantaneous.
+
+If you want to check the content of the cache, by default it is put in your user home in a .ivy/cache directory. Check the next tutorials to see how to configure this.
 ]]>
 </content>
 </node>
@@ -535,84 +535,119 @@
 </content>
 </node>
 <node id="node-37">
-<nodeinfo  path='ivy/doc/tutorial/multiple' md5_body='c4a4c78f2da52e173e75d623705a4095' weight='-10' depth='3' type='book' author='admin' uid='1' created='1117212448' status='1' format='3' sticky='0' promote='1'/>
+<nodeinfo  path='ivy/doc/tutorial/multiple' md5_body='5bfb7a799992524846805b53a7a211d3' weight='-10' depth='3' type='book' author='admin' uid='1' created='1117212448' status='1' format='4' sticky='0' promote='1'/>
 <title>Multiple Resolvers</title>
 <teaser>
-<![CDATA[This example is an illustration of how artefacts can be retreived by multiple resolvers.
-Using multiple resolvers is very important when using continous integration. 
-Indeed, in such environements, you can use multiple repositories and so multiple resolvers to retreive both released versions of projects than continous integrated versions produced for example with cruise-control.
-In our example, we will just show how to use two resolvers, one on a local repository and one using ibiblio repository.
+<![CDATA[This example is an illustration of how artefacts can be retreived by multiple resolvers. Using multiple resolvers is very important when using continous integration. Indeed, in such environements, you can use multiple repositories and so multiple resolvers to retreive both released versions of projects than continous integrated versions produced for example with cruise-control. In our example, we will just show how to use two resolvers, one on a local repository and one using ibiblio repository.
 
 <h1>project description</h1>
 <h2>the project : chained-resolvers</h2>
-The project is very simple and contains only one test class : example.Hello<br/>
-It depends on two libraries apache commons-lang and a little test library (sources are included in jar file). 
-The test library is used by the project to uppercase a string, and commons-lang is used to capitalize the same string.
+The project is very simple and contains only one test class : example.Hello
+It depends on two libraries apache commons-lang and a little test library (sources are included in jar file). The test library is used by the project to uppercase a string, and commons-lang is used to capitalize the same string.
 
-Here is the content of the project :
+Here is the content of the project:
 <ul>
   <li>build.xml : the ant build file for the project</li>
   <li>ivy.xml : the ivy project file</li>
   <li>src\example\Hello.java : the only class of the project</li>
 </ul>
 Take a look at it's <b>ivy.xml</b> file :
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="ivy-file"><!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text">]]>
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="chained-resolvers" />
+    <dependencies>
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+        <dependency name="test" rev="1.0" />
+    </dependencies>
+</ivy-module>
+</code>
+As we expect, the ivy file declares to be dependent on the two libraries that the project use : apache commons-lang.jar and test.jar.
+
+<h2>the <b>ivy</b> configuration</h2>
+The ivy configuration is made in the config directory it contains only one file: ivyconf.xml.
+
+Let's analyse it.
+<code>
+<ivyconf>
+  <conf defaultResolver="chain-example" />
+  <resolvers>
+    <chain name="chain-example">
+      <filesystem name="libraries">
+        <artifact pattern="${ivy.conf.dir}/repository/[artifact]-[revision].[type]" />
+      </filesystem>
+      <ibiblio name="ibiblio" />
+    </chain>
+  </resolvers>
+</ivyconf>
+</code>
+<h2>the <b>conf</b> tag</h2>
+This tag initializes ivy with some parameters. Here only one is used, the name of the resolver to use by default.
+
+<h2>the <b>resolvers</b> tag</h2>
+Under this tag, we can find the description of the resolvers that ivy will use. In our example, we have only one resolver, called "chain-example", which is quite special as it defines a list (a chain) of resolvers.
+The resolvers put in the chain are : 
+<ul>
+  <li>libraries : it is a file resolver. This one is configured to look for artefacts in the "repository" sub directory of the directory that contains the ivyconf.xml file.</li>
+  <li>ibiblio : this resolver is a special one. It looks in the ibiblio maven repository to retreive the libraries.</li>
+</ul>
+
+<h1>walkthrough</h1>
+<div class="step">
+<h2>step 1 : preparation</h2>
+Open a DOS or shell window, and go to the "chained-resolvers" directory.
+</div>
+<div class="step">
+<h2>step 2 : clean directory tree</h2>
+On the prompt type : ant]]>
 </teaser>
 <content>
-<![CDATA[This example is an illustration of how artefacts can be retreived by multiple resolvers.
-Using multiple resolvers is very important when using continous integration. 
-Indeed, in such environements, you can use multiple repositories and so multiple resolvers to retreive both released versions of projects than continous integrated versions produced for example with cruise-control.
-In our example, we will just show how to use two resolvers, one on a local repository and one using ibiblio repository.
+<![CDATA[This example is an illustration of how artefacts can be retreived by multiple resolvers. Using multiple resolvers is very important when using continous integration. Indeed, in such environements, you can use multiple repositories and so multiple resolvers to retreive both released versions of projects than continous integrated versions produced for example with cruise-control. In our example, we will just show how to use two resolvers, one on a local repository and one using ibiblio repository.
 
 <h1>project description</h1>
 <h2>the project : chained-resolvers</h2>
-The project is very simple and contains only one test class : example.Hello<br/>
-It depends on two libraries apache commons-lang and a little test library (sources are included in jar file). 
-The test library is used by the project to uppercase a string, and commons-lang is used to capitalize the same string.
+The project is very simple and contains only one test class : example.Hello
+It depends on two libraries apache commons-lang and a little test library (sources are included in jar file). The test library is used by the project to uppercase a string, and commons-lang is used to capitalize the same string.
 
-Here is the content of the project :
+Here is the content of the project:
 <ul>
   <li>build.xml : the ant build file for the project</li>
   <li>ivy.xml : the ivy project file</li>
   <li>src\example\Hello.java : the only class of the project</li>
 </ul>
 Take a look at it's <b>ivy.xml</b> file :
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="ivy-file"><!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">info</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">jayasoft</span>" <span class="xmlverb-attr-name">module</span>="<span class="xmlverb-attr-content">chained-resolvers</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">org</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-lang</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">2.0</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">test</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">1.0</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivy-module</span>&gt;<br>
-</div></div>
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="chained-resolvers" />
+    <dependencies>
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+        <dependency name="test" rev="1.0" />
+    </dependencies>
+</ivy-module>
+</code>
 As we expect, the ivy file declares to be dependent on the two libraries that the project use : apache commons-lang.jar and test.jar.
 
 <h2>the <b>ivy</b> configuration</h2>
-The ivy configuration is made in the config directory it contains only one file : ivyconf.xml.
+The ivy configuration is made in the config directory it contains only one file: ivyconf.xml.
 
 Let's analyse it.
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivyconf</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">conf</span> <span class="xmlverb-attr-name">defaultResolver</span>="<span class="xmlverb-attr-content">chain-example</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">resolvers</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">chain</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">chain-example</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">filesystem</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">libraries</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">artifact</span> <span class="xmlverb-attr-name">pattern</span>="<span class="xmlverb-attr-content">${ivy.conf.dir}/repository/[artifact]-[revision].[type]</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">filesystem</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">ibiblio</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">ibiblio</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">chain</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">resolvers</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivyconf</span>&gt;<br></div>
+<code>
+<ivyconf>
+  <conf defaultResolver="chain-example" />
+  <resolvers>
+    <chain name="chain-example">
+      <filesystem name="libraries">
+        <artifact pattern="${ivy.conf.dir}/repository/[artifact]-[revision].[type]" />
+      </filesystem>
+      <ibiblio name="ibiblio" />
+    </chain>
+  </resolvers>
+</ivyconf>
+</code>
 <h2>the <b>conf</b> tag</h2>
 This tag initializes ivy with some parameters. Here only one is used, the name of the resolver to use by default.
 
 <h2>the <b>resolvers</b> tag</h2>
-Under this tag, we can find the description of the resolvers that ivy will use.
-In our example, we have only one resolver, called "chain-example", which is quite special as it defines a list (a chain) of resolvers.
+Under this tag, we can find the description of the resolvers that ivy will use. In our example, we have only one resolver, called "chain-example", which is quite special as it defines a list (a chain) of resolvers.
 The resolvers put in the chain are : 
 <ul>
   <li>libraries : it is a file resolver. This one is configured to look for artefacts in the "repository" sub directory of the directory that contains the ivyconf.xml file.</li>
@@ -667,38 +702,31 @@
 
 BUILD SUCCESSFUL
 Total time: 9 seconds</pre></div></div>
-We can see in the log of the resolve task, that the two dependencies have been retrieved (2 artifacts) and copied to the ivy cache directory (2 downloaded).
-The run target succeed in using both commons-lang.jar comming from ibiblio repository and test.jar comming from the local repository.
+We can see in the log of the resolve task, that the two dependencies have been retrieved (2 artifacts) and copied to the ivy cache directory (2 downloaded). The run target succeed in using both commons-lang.jar comming from ibiblio repository and test.jar comming from the local repository.
 ]]>
 </content>
 </node>
 <node id="node-38">
-<nodeinfo  path='ivy/doc/tutorial/dual' md5_body='268a607f2be85e6cd2336a44a592e624' weight='-8' depth='3' type='book' author='admin' uid='1' created='1117212647' status='1' format='3' sticky='0' promote='1'/>
+<nodeinfo  path='ivy/doc/tutorial/dual' md5_body='b26d019ec9f9c74ab8bc108452894c2d' weight='-8' depth='3' type='book' author='admin' uid='1' created='1117212647' status='1' format='4' sticky='0' promote='1'/>
 <title>Dual Resolver</title>
 <teaser>
-<![CDATA[This tutorial presents the use of the DualResolver, a feature introduced in the version 0.6 of Ivy.<br/><br/>
+<![CDATA[This tutorial presents the use of the DualResolver, a feature introduced in the version 0.6 of Ivy.
 
-Dual Resolver is used when ivy files can be found in a repository while artifacts are in another. It is 
-especially useful to use full power of ivy (including transitive dependencies) with the 
-ibiblio repository for artifacts. The problem with the maven ibiblio repository is that it does not 
-contain ivy files. Since transitive dependencies are based upon ivy files, using the ibiblio resolver does 
-not permit to use transitive dependencies.<br/><br/>
+Dual Resolver is used when ivy files can be found in a repository while artifacts are in another. It is especially useful to use full power of ivy (including transitive dependencies) with the ibiblio repository for artifacts. The problem with the maven ibiblio repository is that it does not contain ivy files. Since transitive dependencies are based upon ivy files, using the ibiblio resolver does not permit to use transitive dependencies.
 
-The solution to this problem is to store your own repository only for ivy files, and use ibiblio
-for artifacts. That's what is done in this tutorial.<br/><br/>
+The solution to this problem is to store your own repository only for ivy files, and use ibiblio for artifacts. That's what is done in this tutorial.
 
 <h1>project description</h1>
-Let's have a look at the src/example/dual directory in your ivy distribution.<br/>
+Let's have a look at the src/example/dual directory in your ivy distribution.
 It contains a build file and 3 directories:
 <ul>
 <li>config: contains the ivy configuration file</li>
 <li>repository: a sample repository of ivy files</li>
 <li>project: the project making use of ivy with dual resolver</li>
 </ul>
-<br/>
 
 <h2>the dual project</h2>
-The project is very simple and contains only one test class : example.Hello<br/>
+The project is very simple and contains only one test class : example.Hello
 It depends on two libraries: apache commons-lang and apache commons-httpclient.
 
 Here is the content of the project :
@@ -707,34 +735,69 @@
   <li>ivy.xml : the ivy project file</li>
   <li>src\example\Hello.java : the only class of the project</li>
 </ul>
-Take a look at it's <b>ivy.xml</b> file :
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text">]]>
+Take a look at it's <b>ivy.xml</b> file:
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="hello-ivy" />
+    <dependencies>
+        <dependency org="apache" name="commons-httpclient" rev="2.0.2" />
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+    </dependencies>
+</ivy-module>
+</code>
+
+As you can see, nothing special here... Indeed, it's the philosophy of ivy to keep ivy files independent of the way dependencies are retrieved.
+
+<h2>the <b>ivy</b> configuration</h2>
+The ivy configuration is made in the config directory it contains only one file: ivyconf.xml.
+
+Let's analyse it.
+<code>
+<ivyconf>
+  <conf defaultResolver="dual-example" />
+  <resolvers>
+    <dual name="dual-example">
+      <filesystem name="ivys">
+        <ivy pattern="${ivy.conf.dir}/../repository/[module]-ivy-[revision].xml" />
+      </filesystem>
+      <ibiblio name="ibiblio" />
+    </dual>
+  </resolvers>
+</ivyconf>
+</code>
+
+Here we configure one resolver, the default one, which is a dual resolver. This dual resolver has two sub resolvers : the first is what is called the "ivy" resolver of the dual resolver, and the second one is what is called the "artifact" resolver. It is important that the dual resolver exactly has two sub resolvers in this given order.
+The ivy resolver, here a filesystem one, is used only to find ivy files. The configuration given in this resolver
+says that all ivy files are in the same directory, named like that: [module]-ivy-[revision].xml. If we check the repository directory, we can confirm that it contains a file named commons-httpclient-ivy-2.0.2.xml. It fulfills the given pattern and will thus be find by this resolver.
+The artifact resolver is simply an ibiblio one, and will thus try to find required artifacts in the maven ibiblio repository.
+
+<h1>walkthrough</h1>
+<div class="step">
+<h2>step 1 : preparation</h2>
+Open a DOS or shell window, and go to the "dual" directory.
+</div>
+<div class="step">
+<h2>step 2 : clean up</h2>
+On the prompt type : ant]]>
 </teaser>
 <content>
-<![CDATA[This tutorial presents the use of the DualResolver, a feature introduced in the version 0.6 of Ivy.<br/><br/>
+<![CDATA[This tutorial presents the use of the DualResolver, a feature introduced in the version 0.6 of Ivy.
 
-Dual Resolver is used when ivy files can be found in a repository while artifacts are in another. It is 
-especially useful to use full power of ivy (including transitive dependencies) with the 
-ibiblio repository for artifacts. The problem with the maven ibiblio repository is that it does not 
-contain ivy files. Since transitive dependencies are based upon ivy files, using the ibiblio resolver does 
-not permit to use transitive dependencies.<br/><br/>
+Dual Resolver is used when ivy files can be found in a repository while artifacts are in another. It is especially useful to use full power of ivy (including transitive dependencies) with the ibiblio repository for artifacts. The problem with the maven ibiblio repository is that it does not contain ivy files. Since transitive dependencies are based upon ivy files, using the ibiblio resolver does not permit to use transitive dependencies.
 
-The solution to this problem is to store your own repository only for ivy files, and use ibiblio
-for artifacts. That's what is done in this tutorial.<br/><br/>
+The solution to this problem is to store your own repository only for ivy files, and use ibiblio for artifacts. That's what is done in this tutorial.
 
 <h1>project description</h1>
-Let's have a look at the src/example/dual directory in your ivy distribution.<br/>
+Let's have a look at the src/example/dual directory in your ivy distribution.
 It contains a build file and 3 directories:
 <ul>
 <li>config: contains the ivy configuration file</li>
 <li>repository: a sample repository of ivy files</li>
 <li>project: the project making use of ivy with dual resolver</li>
 </ul>
-<br/>
 
 <h2>the dual project</h2>
-The project is very simple and contains only one test class : example.Hello<br/>
+The project is very simple and contains only one test class : example.Hello
 It depends on two libraries: apache commons-lang and apache commons-httpclient.
 
 Here is the content of the project :
@@ -743,48 +806,41 @@
   <li>ivy.xml : the ivy project file</li>
   <li>src\example\Hello.java : the only class of the project</li>
 </ul>
-Take a look at it's <b>ivy.xml</b> file :
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">info</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">jayasoft</span>" <span class="xmlverb-attr-name">module</span>="<span class="xmlverb-attr-content">hello-ivy</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">org</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-httpclient</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">2.0.2</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">org</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-lang</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">2.0</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivy-module</span>&gt;<br>
-</div>
-<br/>
-As you can see, nothing special here... Indeed, it's the philosophy of ivy to keep ivy files
-independent of the way dependencies are retrieved.
+Take a look at it's <b>ivy.xml</b> file:
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="hello-ivy" />
+    <dependencies>
+        <dependency org="apache" name="commons-httpclient" rev="2.0.2" />
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+    </dependencies>
+</ivy-module>
+</code>
+
+As you can see, nothing special here... Indeed, it's the philosophy of ivy to keep ivy files independent of the way dependencies are retrieved.
 
 <h2>the <b>ivy</b> configuration</h2>
-The ivy configuration is made in the config directory it contains only one file : ivyconf.xml.
+The ivy configuration is made in the config directory it contains only one file: ivyconf.xml.
 
 Let's analyse it.
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivyconf</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">conf</span> <span class="xmlverb-attr-name">defaultResolver</span>="<span class="xmlverb-attr-content">dual-example</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">resolvers</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dual</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">dual-example</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">filesystem</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">ivys</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">ivy</span> <span class="xmlverb-attr-name">pattern</span>="<span class="xmlverb-attr-content">${ivy.conf.dir}/../repository/[module]-ivy-[revision].xml</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">filesystem</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">ibiblio</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">ibiblio</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dual</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">resolvers</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivyconf</span>&gt;<br>
-</div>
-<br/>
-Here we configure one resolver, the default one, which is a dual resolver. This dual resolver
-has two sub resolvers : the first is what is called the "ivy" resolver of the dual resolver, and
-the second one is what is called the "artifact" resolver. It is important that the dual resolver exactly
-has two sub resolvers in this given order.<br/>
+<code>
+<ivyconf>
+  <conf defaultResolver="dual-example" />
+  <resolvers>
+    <dual name="dual-example">
+      <filesystem name="ivys">
+        <ivy pattern="${ivy.conf.dir}/../repository/[module]-ivy-[revision].xml" />
+      </filesystem>
+      <ibiblio name="ibiblio" />
+    </dual>
+  </resolvers>
+</ivyconf>
+</code>
+
+Here we configure one resolver, the default one, which is a dual resolver. This dual resolver has two sub resolvers : the first is what is called the "ivy" resolver of the dual resolver, and the second one is what is called the "artifact" resolver. It is important that the dual resolver exactly has two sub resolvers in this given order.
 The ivy resolver, here a filesystem one, is used only to find ivy files. The configuration given in this resolver
-says that all ivy files are in the same directory, named like that: [module]-ivy-[revision].xml. If
-we check the repository directory, we can confirm that it contains a file named commons-httpclient-ivy-2.0.2.xml.
-It fulfills the given pattern and will thus be find by this resolver.<br/>
-The artifact resolver is simply an ibiblio one, and will thus try to find required artifacts
-in the maven ibiblio repository.<br/>
+says that all ivy files are in the same directory, named like that: [module]-ivy-[revision].xml. If we check the repository directory, we can confirm that it contains a file named commons-httpclient-ivy-2.0.2.xml. It fulfills the given pattern and will thus be find by this resolver.
+The artifact resolver is simply an ibiblio one, and will thus try to find required artifacts in the maven ibiblio repository.
 
 <h1>walkthrough</h1>
 <div class="step">
@@ -852,107 +908,83 @@
 Total time: 24 seconds
 </pre></div></div>
 <br/>
-As you can see, ivy not only downloaded commons-lang and commons-httpclient, but also
-commons-logging. Indeed, commons-logging is a dependency of httpclient, as we can see
-in the httpclient ivy file found in the repository directory:
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">info</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">module</span>="<span class="xmlverb-attr-content">commons-httpclient</span>" <span class="xmlverb-attr-name">revision</span>="<span class="xmlverb-attr-content">2.0.2</span>" <span class="xmlverb-attr-name">status</span>="<span class="xmlverb-attr-content">release</span>" <span class="xmlverb-attr-name">publication</span>="<span class="xmlverb-attr-content">20041010174300</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-logging</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">1.0.4</span>" <span class="xmlverb-attr-name">conf</span>="<span class="xmlverb-attr-content">default</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivy-module</span>&gt;<br>
-</div>
+As you can see, ivy not only downloaded commons-lang and commons-httpclient, but also commons-logging. Indeed, commons-logging is a dependency of httpclient, as we can see in the httpclient ivy file found in the repository directory:
+<code>
+<ivy-module version="1.0">
+    <info organisation="apache" module="commons-httpclient" revision="2.0.2" status="release" publication="20041010174300" />
+    <dependencies>
+        <dependency name="commons-logging" rev="1.0.4" conf="default" />
+    </dependencies>
+</ivy-module>
+</code>
 <br/>
-So everything worked well, ivy file has been found in the repository directory and 
-artifacts have been downloaded from ibiblio. You now just have to write ivy files for the module
-you often use, and they will be much easier to use... And imagine a world in which each module
-delivers also an ivy file. Since it is independent of the way to retrieve dependencies, it
-would made all dependencies handling much easier, wouldn't it ?
+So everything worked well, ivy file has been found in the repository directory and artifacts have been downloaded from ibiblio. You now just have to write ivy files for the module you often use, and they will be much easier to use... And imagine a world in which each module delivers also an ivy file. Since it is independent of the way to retrieve dependencies, it would made all dependencies handling much easier, wouldn't it ?
 
 ]]>
 </content>
 </node>
 <node id="node-39">
-<nodeinfo  path='ivy/doc/tutorial/multi-project' md5_body='26750e3a4019157e1c55babb9cf1cf24' weight='-5' depth='3' type='book' author='admin' uid='1' created='1117212778' status='1' format='3' sticky='0' promote='1'/>
+<nodeinfo  path='ivy/doc/tutorial/multi-project' md5_body='a93bd6e40e000fedbe363a9df553a812' weight='-5' depth='3' type='book' author='admin' uid='1' created='1117212778' status='1' format='4' sticky='0' promote='1'/>
 <title>Project dependencies</title>
 <teaser>
 <![CDATA[This example is an illustration of dependency between two project.
 
-The dependant project declares that it uses the standalone one.
-We will illustrate two things : 
+The dependant project declares that it uses the standalone one. We will illustrate two things : 
 <ul>
   <li>public libraries declared by standalone project will automatically be recovered by the dependant project</li>
   <li>the dependant project will retrieve the "latest" version of the standalone project</li>
 </ul>
 <h1>the projects used</h1>
 <h2>the project : standalone</h2>
-The standalone project is very simple.
-It depends on the apache library commons-lang and contains only one class : standalone.Main which provides two services :
-<ul>
-  <li>return the version of the project</li>
-  <li>capitalize a string using org.apache.commons.lang.WordUtils.capitalizeFully</li>
-</ul>
-Here is the content of the project :
-<ul>
-  <li>build.xml : the ant build file for the project</li>
-  <li>ivy.xml : the ivy project file</li>
-  <li>src\standalone\Main.java : the only class of the project</li>
-</ul>
-Take a look at it's <b>ivy.xml</b> file :
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="ivy-file"><div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text">]]>
+The standalone project is very simple. It depends on the apache library commons-lang and contains only one class: standalone.Main which provides two services:
]]>
 </teaser>
 <content>
 <![CDATA[This example is an illustration of dependency between two project.
 
-The dependant project declares that it uses the standalone one.
-We will illustrate two things : 
+The dependant project declares that it uses the standalone one. We will illustrate two things : 
 <ul>
   <li>public libraries declared by standalone project will automatically be recovered by the dependant project</li>
   <li>the dependant project will retrieve the "latest" version of the standalone project</li>
 </ul>
 <h1>the projects used</h1>
 <h2>the project : standalone</h2>
-The standalone project is very simple.
-It depends on the apache library commons-lang and contains only one class : standalone.Main which provides two services :
+The standalone project is very simple. It depends on the apache library commons-lang and contains only one class: standalone.Main which provides two services:
 <ul>
   <li>return the version of the project</li>
   <li>capitalize a string using org.apache.commons.lang.WordUtils.capitalizeFully</li>
 </ul>
-Here is the content of the project :
+Here is the content of the project:
 <ul>
   <li>build.xml : the ant build file for the project</li>
   <li>ivy.xml : the ivy project file</li>
   <li>src\standalone\Main.java : the only class of the project</li>
 </ul>
-Take a look at it's <b>ivy.xml</b> file :
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="ivy-file"><div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">info</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">jayasoft</span>" <span class="xmlverb-attr-name">module</span>="<span class="xmlverb-attr-content">standalone</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">org</span>="<span class="xmlverb-attr-content">apache</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">commons-lang</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">2.0</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivy-module</span>&gt;<br>
-</div></div>
+Take a look at it's <b>ivy.xml</b> file:
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="standalone" />
+    <dependencies>
+        <dependency org="apache" name="commons-lang" rev="2.0" />
+    </dependencies>
+</ivy-module>
+</code>
 
 The ivy dependency file declares only one dependency on apache commons-lang library which by default is a public dependency (see <a href="/ivy/doc/ivyfile">ivy file definition</a>).
 <h2>the project : depending</h2>
-The project depending is very simple too. It declares only one dependency on the latest version of the standalone project and it contains only one class depending.Main which make 2 things :
+The project depending is very simple too. It declares only one dependency on the latest version of the standalone project and it contains only one class depending.Main which make 2 things:
 <ul>
   <li>getting the version of the standalone project throw a call to standalone.Main.getVersion()</li>
   <li>transform a string throw a call to standalone.Main.capitalizeWords(str)</li>
 </ul>
-Take a look at it's <b>ivy.xml</b> file :
-<div class="ivy-file"><!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivy-module</span> <span class="xmlverb-attr-name">version</span>="<span class="xmlverb-attr-content">1.0</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">info</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">jayasoft</span>" <span class="xmlverb-attr-name">module</span>="<span class="xmlverb-attr-content">depending</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">dependency</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">standalone</span>" <span class="xmlverb-attr-name">rev</span>="<span class="xmlverb-attr-content">latest.integration</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">dependencies</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivy-module</span>&gt;<br>
-</div>
-</div>
+Take a look at it's <b>ivy.xml</b> file:
+<code>
+<ivy-module version="1.0">
+    <info organisation="jayasoft" module="depending" />
+    <dependencies>
+        <dependency name="standalone" rev="latest.integration" />
+    </dependencies>
+</ivy-module>
+</code>
 
 <h2>the <b>ivy</b> configuration</h2>
 The ivy configuration is made in the config directory wich contains 2 files :
@@ -962,36 +994,34 @@
 </ul>
 
 Let's analyse the ivyconf.xml file.
-<!-- converted by xmlverbatim.xsl 1.1, (c) O. Becker -->
-<div class="xmlverb-default">&lt;<span class="xmlverb-element-name">ivyconf</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">properties</span> <span class="xmlverb-attr-name">file</span>="<span class="xmlverb-attr-content">${ivy.conf.dir}/ivyconf.properties</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">conf</span> <span class="xmlverb-attr-name">defaultCache</span>="<span class="xmlverb-attr-content">${ivy.conf.dir}/ivy-cache</span>" <span class="xmlverb-attr-name">defaultResolver</span>="<span class="xmlverb-attr-content">libraries</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">resolvers</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">filesystem</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">projects</span>"&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">artifact</span> <span class="xmlverb-attr-name">pattern</span>="<span class="xmlverb-attr-content">${repository.dir}/[artifact]-[revision].[ext]</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">ivy</span> <span class="xmlverb-attr-name">pattern</span>="<span class="xmlverb-attr-content">${repository.dir}/[module]-[revision].xml</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">filesystem</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">ivyrep</span> <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">libraries</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">resolvers</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">modules</span>&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;<span class="xmlverb-element-name">module</span> <span class="xmlverb-attr-name">organisation</span>="<span class="xmlverb-attr-content">jayasoft</span>" <span class="xmlverb-attr-name">name</span>="<span class="xmlverb-attr-content">.*</span>" <span class="xmlverb-attr-name">resolver</span>="<span class="xmlverb-attr-content">projects</span>" /&gt;<span class="xmlverb-text"><br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&lt;/<span class="xmlverb-element-name">modules</span>&gt;<span class="xmlverb-text"><br>
-</span>&lt;/<span class="xmlverb-element-name">ivyconf</span>&gt;<br>
-</div>
+<code>
+<ivyconf>
+        <properties file="${ivy.conf.dir}/ivyconf.properties" />
+        <conf defaultCache="${ivy.conf.dir}/ivy-cache" defaultResolver="libraries" />
+        <resolvers>
+                <filesystem name="projects">
+                        <artifact pattern="${repository.dir}/[artifact]-[revision].[ext]" />
+                        <ivy pattern="${repository.dir}/[module]-[revision].xml" />
+                </filesystem>
+                <ivyrep name="libraries" />
+        </resolvers>
+        <modules>
+                <module organisation="jayasoft" name=".*" resolver="projects" />
+        </modules>
+</ivyconf>
+</code>
 The file contains four main tags : properties, conf, resolvers and modules.
 <h2>the <b>properties</b> tag</h2>
 This tag only load some properties for the ivy process in the same manner as ant will do it.
 <h2>the <b>conf</b> tag</h2>
-This tag is in charge to initialize some parameters for ivy process.
-The directory that ivy will use to cache (to store) artifacts found will be in a sub directory called ivy-cache of the directory containing the ivyconf.xml file itself.
+This tag is in charge to initialize some parameters for ivy process. The directory that ivy will use to cache (to store) artifacts found will be in a sub directory called ivy-cache of the directory containing the ivyconf.xml file itself. 
 The second parameter, tells ivy to use a resolver called "libraries" as its default resolver. As a recall, a resolver is in charge to resolve an artifact from some information like : the organisation that provides the artifact, the name of the library and the version of the library. More information can be found in the <a href="/ivy/doc/configuration">configuration documentation</a>.
 <h2>the <b>resolvers</b> tag</h2>
-This tag defines the resolvers to use. Here we have two resolvers defined: "projects" and "libraries".<br/>
-The filesystem resolver called "projects" is able to resolve the internal dependencies wanted. <br/>
-The ivyrep resolver called "libraries" is able to find dependencies on <a href="./ivy/ivyrep">ivyrep</a>.<br/>
+This tag defines the resolvers to use. Here we have two resolvers defined: "projects" and "libraries".
+The filesystem resolver called "projects" is able to resolve the internal dependencies wanted. 
+The ivyrep resolver called "libraries" is able to find dependencies on <a href="./ivy/ivyrep">ivyrep</a>.
 <h2>the <b>modules</b> tag</h2>
-The modules tag allows to configure which resolver should be use for which module. Here the configuration only tells to use the "projects"
-resolver for all modules having for organisation "jayasoft" and any module name (.* regexp matches any module name).<br/>
+The modules tag allows to configure which resolver should be use for which module. Here the configuration only tells to use the "projects" resolver for all modules having for organisation "jayasoft" and any module name (.* regexp matches any module name).
 For other modules (i.e. all modules not from jayasoft), since there is no special configuration, the default resolver will be used: "libraries".
 <h1>walkthrough</h1>
 <div class="step">
@@ -1000,7 +1030,7 @@
 </div>
 <div class="step">
 <h2>step 2 : clean directory tree</h2>
-On the prompt type : ant<br>
+On the prompt type : ant
 This will clean up the entire project directory tree. You can do it each time you want to clean up this example.
 </div>
 <div class="step">
@@ -1047,22 +1077,17 @@
 
 BUILD SUCCESSFUL
 Total time: 10 seconds</pre></div>
-What we see here :
+What we see here:
 <ul>
-</ul>
   <li>the project depends on 1 library (1 artifact)</li>
   <li>the library was not in the ivy cahe and so was downloaded (1 downloaded)</li>
   <li>the project has been released under version number 1</li>
+</ul>
 </div>
-To give more details on the publish, as you can see the call to the publish task has resulted in two main things:<br/>
-- the delivery of a resolved ivy file to build/ivy.xml. This has been done because by default the publish task not only publishes
-artifacts but also ivy file. So it has looked to the path where the ivy file to publish should be, using the artifactspattern: ${build.dir}/[artifact].[ext].
-For an ivy file, this resolves to build/ivy.xml. Because this file does not exist, it automatically make a call to the deliver task which delivers a resolved ivy file
-to this destination.<br/>
-- the publication of artifact standalone and resolved ivy file to the repository. Both are mere copy of files found in the current project, more precisely in the build dir. This is
-because the artifactspattern has been set to ${build.dir}/[artifact].[ext], so standalone artifact is found in build/standalone.jar and ivy file in build/ivy.xml. And because we have
-asked the publish task to publish them using the "projects" resolver, these files are copied to repository\standalone-1.jar and to repository\standalone-1.xml, respecting
-the artifact and ivy patterns of our configuration (see above).
+To give more details on the publish, as you can see the call to the publish task has resulted in two main things:
+- the delivery of a resolved ivy file to build/ivy.xml. This has been done because by default the publish task not only publishes artifacts but also ivy file. So it has looked to the path where the ivy file to publish should be, using the artifactspattern: ${build.dir}/[artifact].[ext].
+For an ivy file, this resolves to build/ivy.xml. Because this file does not exist, it automatically make a call to the deliver task which delivers a resolved ivy file to this destination.
+- the publication of artifact standalone and resolved ivy file to the repository. Both are mere copy of files found in the current project, more precisely in the build dir. This is because the artifactspattern has been set to ${build.dir}/[artifact].[ext], so standalone artifact is found in build/standalone.jar and ivy file in build/ivy.xml. And because we have asked the publish task to publish them using the "projects" resolver, these files are copied to repository\standalone-1.jar and to repository\standalone-1.xml, respecting the artifact and ivy patterns of our configuration (see above).
 
 <div class="step">
 <h2>step 4 : running the depending project</h2>
@@ -1116,8 +1141,7 @@
 </div>
 <div class="step">
 <h2>step 5 : new version of standalone project</h2>
-Like we did before in step 3, publish again the standalone project. 
-This will result as a new version of the project.
+Like we did before in step 3, publish again the standalone project. This will result as a new version of the project.
 <div class="shell"><pre>I:\standalone>ant publish
 Buildfile: build.xml
 
@@ -1155,8 +1179,8 @@
 
 BUILD SUCCESSFUL
 Total time: 2 seconds</pre></div>
-Now if you look in your repository folder, you must find 2 version published of the standalone project.<br>
-Let's look at it :
+Now if you look in your repository folder, you must find 2 version published of the standalone project.
+Let's look at it:
 <div class="shell"><pre>I:\dependence\standalone>dir ..\config\repository /w
  Le volume dans le lecteur I s'appelle DATA
  Le numéro de série du volume est 30E5-91BA
@@ -1172,12 +1196,12 @@
 Ok now our repository contains two versions of the project <b>standalone</b>, other projects can refer to both versions.
 <div class="step">
 <h2>step 6 : depending got the new version</h2>
-What do we expect about running again the depending project ? Two major things are expected : 
+What do we expect about running again the depending project? Two major things are expected: 
 <ul>
   <li>retrieve the version 2 as the latest.integration version of the standalone project</li>
   <li>running the test must display version 2 of standalone project</li>
 </ul>
-Let's go !!!
+Let's go!!!
 <div class="shell"><pre>I:\depending>ant
 Buildfile: build.xml
 
@@ -1219,9 +1243,7 @@
 
 BUILD SUCCESSFUL
 Total time: 3 seconds</pre></div>
-Ok we have the result expected as the run target shows that we are using the version 2 of the main class of standalone project. 
-If we take a look at the resolve target results, we can see that one artifact has been downloaded to the ivy cache. 
-In fact this file is the version 2 of the standalone project that was taken from the repository, you can now retrieve it in the ivy-cache directory.
+Ok we have the result expected as the run target shows that we are using the version 2 of the main class of standalone project. If we take a look at the resolve target results, we can see that one artifact has been downloaded to the ivy cache. In fact this file is the version 2 of the standalone project that was taken from the repository, you can now retrieve it in the ivy-cache directory.
 </div>
 ]]>
 </content>
@@ -8141,7 +8163,7 @@
 </content>
 </node>
 <node id="node-85">
-<nodeinfo  path='ivy/doc/use/report' md5_body='ca289ded3a99599602578f0cad5cba05' weight='3' depth='5' type='book' author='admin' uid='1' created='1117635064' status='1' format='4' sticky='0' promote='1'/>
+<nodeinfo  path='ivy/doc/use/report' md5_body='aae29fdc85ffcb426ed66bc680013d08' weight='3' depth='5' type='book' author='admin' uid='1' created='1117635064' status='1' format='4' sticky='0' promote='1'/>
 <title>report</title>
 <teaser>
 <![CDATA[Generates reports of dependency resolving. One report per configuration is generated, but all reports generated together are hyperlinked one to each other.
@@ -8179,6 +8201,8 @@
         <td>No, defaults to false</td></tr>
     <tr><td>graph</td><td>true to generate graphml files, false otherwise</td>
         <td>No, defaults to true</td></tr>
+    <tr><td>dot</td><td>true to generate dot files, false otherwise <span class="since">since 1.4</span></td>
+        <td>No, defaults to false</td></tr>
     <tr><td>conf</td><td>a comma separated list of the configurations for which a report should be generated</td>
         <td>No. Defaults to the configurations resolved by the last resolve call (during same ant build), or ${ivy.resolved.configurations} if no resolve was called</td></tr>
     <tr><td>organisation</td><td>the name of the organisation of the module for which report should be generated</td>
@@ -8481,7 +8505,7 @@
 </node>
 </node>
 <node id="node-743">
-<nodeinfo  path='ivy/doc/releasenotes' md5_body='8246eb83d61d3c464eb261b2ba235a5a' weight='3' depth='2' type='book' author='xavier' uid='6' created='1156478849' status='1' format='4' sticky='0' promote='0'/>
+<nodeinfo  path='ivy/doc/releasenotes' md5_body='438b4da70bf74a24e4958d56513fa241' weight='3' depth='2' type='book' author='xavier' uid='6' created='1156478849' status='1' format='4' sticky='0' promote='0'/>
 <title>Release Notes</title>
 <teaser>
 <![CDATA[The following pages list the changes introduced in each revision of Ivy since its first public version on january 2005.
@@ -8491,7 +8515,7 @@
 
 Refer to these pages if you want to know the benefits of upgrading to a newer version of Ivy.
 <hr/>
-The latest stable version is <a href="./ivy/doc/releasenotes/1.4-RC2">1.4-RC2</a>
+The latest stable version is <a href="./ivy/doc/releasenotes/1.4.1">1.4.1</a>
 ]]>
 </teaser>
 <content>
@@ -8502,7 +8526,7 @@
 
 Refer to these pages if you want to know the benefits of upgrading to a newer version of Ivy.
 <hr/>
-The latest stable version is <a href="./ivy/doc/releasenotes/1.4-RC2">1.4-RC2</a>
+The latest stable version is <a href="./ivy/doc/releasenotes/1.4.1">1.4.1</a>
 ]]>
 </content>
 <node id="node-745">
@@ -9717,6 +9741,54 @@
 </code>]]>
 </content>
 </node>
+</node>
+<node id="node-897">
+<nodeinfo  path='ivy/doc/releasenotes/1.4.1' md5_body='a032b23df7f882d2075cd709234ac37d' weight='0' depth='3' type='book' author='xavier' uid='6' created='1163085277' status='1' format='4' sticky='0' promote='0'/>
+<title>1.4.1 - 2006-11-09</title>
+<teaser>
+<![CDATA[Ivy 1.4.1 is mainly a bug fix version, upgrade from 1.4 is strongly recommended.
+
+It has been released on 2006-11-09.
+
+<h1>Downloads</h1>
+<a href="./visit.php?url=./downloads/ivy/1.4.1/ivy-1.4.1-bin.zip">ivy-1.4.1-bin.zip</a>
+<a href="./visit.php?url=./downloads/ivy/1.4.1/ivy-1.4.1-src.zip">ivy-1.4.1-src.zip</a>
+<a href="./visit.php?url=./downloads/ivy/1.4.1/ivy-1.4.1-doc.zip">ivy-1.4.1-doc.zip</a>
+
+<h1>Changes log</h1>
+<pre>
+- IMPROVE: ability to rebuild all dependent projects from a leaf (IVY-101)
+- IMPROVE: Artifact pattern list attribute for the ivy:publish (IVY-113)
+- IMPROVE: Measure code coverage (IVY-323)
]]>
+</teaser>
+<content>
+<![CDATA[Ivy 1.4.1 is mainly a bug fix version, upgrade from 1.4 is strongly recommended.
+
+It has been released on 2006-11-09.
+
+<h1>Downloads</h1>
+<a href="./visit.php?url=./downloads/ivy/1.4.1/ivy-1.4.1-bin.zip">ivy-1.4.1-bin.zip</a>
+<a href="./visit.php?url=./downloads/ivy/1.4.1/ivy-1.4.1-src.zip">ivy-1.4.1-src.zip</a>
+<a href="./visit.php?url=./downloads/ivy/1.4.1/ivy-1.4.1-doc.zip">ivy-1.4.1-doc.zip</a>
+
+<h1>Changes log</h1>
+<pre>
+- IMPROVE: ability to rebuild all dependent projects from a leaf (IVY-101)
+- IMPROVE: Artifact pattern list attribute for the ivy:publish (IVY-113)
+- IMPROVE: Measure code coverage (IVY-323)
+- IMPROVE: add release target to build file (IVY-339)
+- IMPROVE: Add a 'conf' parameter to the ivy 'publish' ant task (IVY-322) (thanks to Emmanuel Pellereau)
+
+- FIX: retrieve fails when resolve is done with useOrigin set to true (IVY-304)
+- FIX: IVY complains about non-existent reports in the cache directory (IVY-315)
+- FIX: Typo in failureproperty attribute of Ant resolve task (IVY-327) (thanks to Jean-Baptiste Quenot)
+- FIX: ivy:resolve useOrigin fails to behave correctly (IVY-332)
+- FIX: ChainVersionMatcher doesn't handle IvyAware children version matchers (IVY-331)
+- FIX: latest.&lt;status> does not work properly when no matching revision exist (IVY-318)
+- FIX: attribute name in macrodef is not handled as expected (IVY-319)
+- FIX: confmappingoverride doesn't work for configurations extending from "*(public)" (IVY-326)
+</pre>]]>
+</content>
 </node>
 </node>
 <node id="node-105">