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 2007/03/19 13:14:33 UTC

svn commit: r519939 [2/4] - in /incubator/ivy/core/trunk: ./ doc/ doc/doc/ doc/doc/configuration/ doc/doc/tutorial/ doc/doc/tutorial/build-repository/ doc/doc/use/

Modified: incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/advanced2.html
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/advanced2.html?view=diff&rev=519939&r1=519938&r2=519939
==============================================================================
--- incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/advanced2.html (original)
+++ incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/advanced2.html Mon Mar 19 06:14:32 2007
@@ -5,176 +5,176 @@
 	<script type="text/javascript" src="../../../xooki/xooki.js"></script>
 </head>
 <body>
-	<textarea id="xooki-source">
-<h1>Building the professional repository</h1>
-Now that we have been well prepared, let's go to a real life example of building our repository.
-We will now focus on a bigger example that uses different public repositories to retrieve the information.
-In this tutorial we will use, in order of preference :<ul><li>our home made repository</li><li>ivyrep official</li><li>ibiblio maven2</li></ul>
-<h2>the resolvers used</h2>
-<code type="xml"><resolvers>
-    <filesystem name="local-repository">
-        <ivy pattern="${dest.repo.dir}/[organisation]/[module]/ivys/ivy-[revision].xml"/>
-        <artifact pattern="${dest.repo.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[type]"/>
-    </filesystem>
-
-    <chain name="libraries" returnFirst="false">
-        <resolver ref="local-repository" />
-        <ivyrep name="official-ivy-rep"/>
-        <resolver ref="ibiblio-maven2" />
-    </chain>
-</resolvers>
-</code>
-We start the chain with our home made repository because as we can expect, we consider this repository as good ivy file repository (that's why we create it). So all files that are in this repository are considered as valid and correct and usuable.
-The building process is then an iterative process. 
-After each import of new projects into our repository, we check and modify the generated ivy files (or you do not as you want). The generated ivy files are those that were translated from a POM or those for which an artifact has been found without a module descriptor (ivy or pom).
-
-<h2>Let's go</h2>
-What about to test our configuration with a big project : hibernate 3.0
-Just run : ant advanced
-
-Here we go !!!!!!!!
-
-<div class="shell"><pre>Z:\build-a-ivy-repository>ant advanced
-Buildfile: build.xml
-
-init-advanced:
-:: Ivy non official version :: http://ivy.jayasoft.org/ ::
-:: configuring :: file = Z:\build-a-ivy-repository\config\ivy-conf-advanced.xml
-
-advanced:
-:: installing [ hibernate | hibernate | 3.0 ] ::
-:: resolving dependencies ::
-        found [ hibernate | hibernate | 3.0 ] in ibiblio-maven2
-        found [ apache | commons-logging | 1.0.4 ] in official-ivy-rep
-        found [ apache | ant | 1.6.3 ] in ibiblio-maven2
-        found [ c3p0 | c3p0 | 0.8.4.5 ] in official-ivy-rep
-        found [ proxool | proxool | 0.8.3 ] in official-ivy-rep
-        found [ ehcache | ehcache | 1.1 ] in official-ivy-rep
-        found [ apache | xerces | 2.5.0 ] in official-ivy-rep
-        found [ apache | commons-collections | 2.1.1 ] in official-ivy-rep
-        found [ opensymphony | oscache | 2.1 ] in ibiblio-maven2
-        found [ swarmcache | swarmcache | 1.0RC2 ] in official-ivy-rep
-        found [ apache | commons-collections | 2.1 ] in official-ivy-rep
-        found [ apache | commons-logging | 1.0.2 ] in official-ivy-rep
-        found [ jgroups | jgroups | 2.2 ] in official-ivy-rep
-        found [ jboss | jboss-cache | 1.2.2 ] in ibiblio-maven2
-        found [ jboss | jboss-system | 4.0.2 ] in ibiblio-maven2
-        found [ jboss | jboss-common | 4.0.2 ] in ibiblio-maven2
-        found [ jboss | jboss-minimal | 4.0.2 ] in ibiblio-maven2
-        found [ jboss | jboss-j2se | 200504122039 ] in ibiblio-maven2
-        found [ concurrent | concurrent | 1.3.4 ] in ibiblio-maven2
-        found [ jgroups | jgroups-all | 2.2.7 ] in ibiblio-maven2
-        found [ cglib | cglib | 2.0.2 ] in official-ivy-rep
-        found [ objectweb | asm | 1.3.4 ] in official-ivy-rep
-        found [ asm | asm | 1.4.3 ] in ibiblio-maven2
-        found [ javax.security | jacc | 1.0 ] in ibiblio-maven2
-        found [ dom4j | dom4j | 1.6 ] in ibiblio-maven2
-        found [ javax.transaction | jta | 1.0.1B ] in ibiblio-maven2
-        found [ hibernate | antlr | 2.7.5H3 ] in ibiblio-maven2
-        found [ odmg | odmg | 3.0 ] in official-ivy-rep
-:: downloading artifacts to cache ::
-downloading http://www.ibiblio.org/maven2/hibernate/hibernate/3.0/hibernate-3.0.jar ...
-..................................................
-.. (1565kB)
-        [SUCCESSFUL ] [ hibernate | hibernate | 3.0 ]/hibernate.jar[jar] (8500ms)
-downloading http://www.ibiblio.org/maven2/hibernate/antlr/2.7.5H3/antlr-2.7.5H3.jar ...
-
-           SOME MINUTES LATER !!!!!!!!!!
-
-downloading http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.0.4.jar ...
-........ (37kB)
-        [SUCCESSFUL ] [ apache | commons-logging | 1.0.4 ]/commons-logging.jar[jar] (1110ms)
-:: installing in local-repository ::
-        published hibernate to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/hibernate/jars/hibernate-3.0.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/hibernate/ivys/ivy-3.0.xml
-        published antlr to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/antlr/jars/antlr-2.7.5H3.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/antlr/ivys/ivy-2.7.5H3.xml
-        published dom4j to Z:\build-a-ivy-repository/ivy-local-repository/dom4j/dom4j/jars/dom4j-1.6.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/dom4j/dom4j/ivys/ivy-1.6.xml
-missing artifact [ javax.security | jacc | 1.0 ]/jacc.jar[jar]: Z:\build-a-ivy-repository\cache\javax.security\jacc\jars\jacc-1.0.jar file does not exist
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/javax.security/jacc/ivys/ivy-1.0.xml
-        published asm to Z:\build-a-ivy-repository/ivy-local-repository/asm/asm/jars/asm-1.4.3.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/asm/asm/ivys/ivy-1.4.3.xml
-        published cglib-full to Z:\build-a-ivy-repository/ivy-local-repository/cglib/cglib/jars/cglib-full-2.0.2.jar
-        published cglib to Z:\build-a-ivy-repository/ivy-local-repository/cglib/cglib/jars/cglib-2.0.2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/cglib/cglib/ivys/ivy-2.0.2.xml
-        published asm to Z:\build-a-ivy-repository/ivy-local-repository/objectweb/asm/jars/asm-1.3.4.jar
-        published asm-util to Z:\build-a-ivy-repository/ivy-local-repository/objectweb/asm/jars/asm-util-1.3.4.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/objectweb/asm/ivys/ivy-1.3.4.xml
-        published jboss-cache to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-cache/jars/jboss-cache-1.2.2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-cache/ivys/ivy-1.2.2.xml
-        published jgroups-all to Z:\build-a-ivy-repository/ivy-local-repository/jgroups/jgroups-all/jars/jgroups-all-2.2.7.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jgroups/jgroups-all/ivys/ivy-2.2.7.xml
-        published concurrent to Z:\build-a-ivy-repository/ivy-local-repository/concurrent/concurrent/jars/concurrent-1.3.4.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/concurrent/concurrent/ivys/ivy-1.3.4.xml
-        published jboss-j2se to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-j2se/jars/jboss-j2se-200504122039.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-j2se/ivys/ivy-200504122039.xml
-        published jboss-minimal to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-minimal/jars/jboss-minimal-4.0.2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-minimal/ivys/ivy-4.0.2.xml
-        published jboss-system to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-system/jars/jboss-system-4.0.2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-system/ivys/ivy-4.0.2.xml
-        published swarmcache to Z:\build-a-ivy-repository/ivy-local-repository/swarmcache/swarmcache/jars/swarmcache-1.0RC2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/swarmcache/swarmcache/ivys/ivy-1.0RC2.xml
-missing artifact [ jgroups | jgroups | 2.2 ]/jgroups.jar[jar]: Z:\build-a-ivy-repository\cache\jgroups\jgroups\jars\jgroups-2.2.jar file does not exist
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jgroups/jgroups/ivys/ivy-2.2.xml
-        published commons-logging to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/jars/commons-logging-1.0.2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/ivys/ivy-1.0.2.xml
-        published oscache to Z:\build-a-ivy-repository/ivy-local-repository/opensymphony/oscache/jars/oscache-2.1.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/opensymphony/oscache/ivys/ivy-2.1.xml
-        published c3p0 to Z:\build-a-ivy-repository/ivy-local-repository/c3p0/c3p0/jars/c3p0-0.8.4.5.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/c3p0/c3p0/ivys/ivy-0.8.4.5.xml
-        published odmg to Z:\build-a-ivy-repository/ivy-local-repository/odmg/odmg/jars/odmg-3.0.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/odmg/odmg/ivys/ivy-3.0.xml
-        published proxool to Z:\build-a-ivy-repository/ivy-local-repository/proxool/proxool/jars/proxool-0.8.3.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/proxool/proxool/ivys/ivy-0.8.3.xml
-missing artifact [ javax.transaction | jta | 1.0.1B ]/jta.jar[jar]: Z:\build-a-ivy-repository\cache\javax.transaction\jta\jars\jta-1.0.1B.jar file does not exist
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/javax.transaction/jta/ivys/ivy-1.0.1B.xml
-        published jboss-common to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-common/jars/jboss-common-4.0.2.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-common/ivys/ivy-4.0.2.xml
-        published ant to Z:\build-a-ivy-repository/ivy-local-repository/apache/ant/jars/ant-1.6.3.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/ant/ivys/ivy-1.6.3.xml
-        published commons-collections to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/jars/commons-collections-2.1.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/ivys/ivy-2.1.xml
-        published ehcache to Z:\build-a-ivy-repository/ivy-local-repository/ehcache/ehcache/jars/ehcache-1.1.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/ehcache/ehcache/ivys/ivy-1.1.xml
-        published commons-collections to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/jars/commons-collections-2.1.1.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/ivys/ivy-2.1.1.xml
-        published xercesImpl to Z:\build-a-ivy-repository/ivy-local-repository/apache/xerces/jars/xercesImpl-2.5.0.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/xerces/ivys/ivy-2.5.0.xml
-        published commons-logging to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/jars/commons-logging-1.0.4.jar
-        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/ivys/ivy-1.0.4.xml
-:: install resolution report ::
-        ---------------------------------------------------------------------
-        |                  |            modules            ||   artifacts   |
-        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
-        ---------------------------------------------------------------------
-        |      default     |   28  |   28  |   28  |   0   ||   30  |   27  |
-        ---------------------------------------------------------------------
-
-BUILD SUCCESSFUL
-Total time: 2 minutes 10 seconds
-Z:\build-a-ivy-repository></pre></div>
-
-<h2>Analysing the results</h2>
-OK, it seems that we have a good start point for our repository.
-As you can see in the resolving part of the process :
-<div class="shell"><pre>:: resolving dependencies ::
-        found [ hibernate | hibernate | 3.0 ] in ibiblio-maven2
-        found [ apache | commons-logging | 1.0.4 ] in official-ivy-rep
-        ...
-        found [ odmg | odmg | 3.0 ] in official-ivy-rep</pre></div>
-some ivy files were retrieved from the <a href="http://ivyrep.jayasoft.org">ivyrep</a> the official ivy repository. That significates that for these modules, you have in your home made repository good ivy files (with meaningfull configurations, ...).
-
-<h2>And now</h2>
-Now what you need to do is to download missing artifacts, those not on ibiblio (from sun, ...) and correct the generated ivy files. 
-It is important to make a review of the generated ivy files because you could then benefit from all the power of ivy by defining for those projects good configurations and some other good things.
-
-To ease finding generated files, just take a look at the generated resolve report in your cache. You will find there the projects for which a default ivy file was generated 
-<center><img src="/misc/ivy/samples/commons-lang1.0-dep-report-part.jpg" style="padding:1em;"/></center>
-and you can see the resolvers that have resolved the modules. In our example, you will update the files whose project were resolved by the ibiblio-maven2 resolver.
-<center><img src="/misc/ivy/samples/hibernate3.0-dep-report-part.jpg" style="padding:1em;"/></center>
-
-
+	<textarea id="xooki-source">
+<h1>Building the professional repository</h1>
+Now that we have been well prepared, let's go to a real life example of building our repository.
+We will now focus on a bigger example that uses different public repositories to retrieve the information.
+In this tutorial we will use, in order of preference :<ul><li>our home made repository</li><li>ivyrep official</li><li>ibiblio maven2</li></ul>
+<h2>the resolvers used</h2>
+<code type="xml"><resolvers>
+    <filesystem name="local-repository">
+        <ivy pattern="${dest.repo.dir}/[organisation]/[module]/ivys/ivy-[revision].xml"/>
+        <artifact pattern="${dest.repo.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[type]"/>
+    </filesystem>
+
+    <chain name="libraries" returnFirst="false">
+        <resolver ref="local-repository" />
+        <ivyrep name="official-ivy-rep"/>
+        <resolver ref="ibiblio-maven2" />
+    </chain>
+</resolvers>
+</code>
+We start the chain with our home made repository because as we can expect, we consider this repository as good ivy file repository (that's why we create it). So all files that are in this repository are considered as valid and correct and usuable.
+The building process is then an iterative process. 
+After each import of new projects into our repository, we check and modify the generated ivy files (or you do not as you want). The generated ivy files are those that were translated from a POM or those for which an artifact has been found without a module descriptor (ivy or pom).
+
+<h2>Let's go</h2>
+What about to test our settings with a big project : hibernate 3.0
+Just run : ant advanced
+
+Here we go !!!!!!!!
+
+<div class="shell"><pre>Z:\build-a-ivy-repository>ant advanced
+Buildfile: build.xml
+
+init-advanced:
+:: Ivy non official version :: http://ivy.jayasoft.org/ ::
+:: configuring :: file = Z:\build-a-ivy-repository\config\ivy-conf-advanced.xml
+
+advanced:
+:: installing [ hibernate | hibernate | 3.0 ] ::
+:: resolving dependencies ::
+        found [ hibernate | hibernate | 3.0 ] in ibiblio-maven2
+        found [ apache | commons-logging | 1.0.4 ] in official-ivy-rep
+        found [ apache | ant | 1.6.3 ] in ibiblio-maven2
+        found [ c3p0 | c3p0 | 0.8.4.5 ] in official-ivy-rep
+        found [ proxool | proxool | 0.8.3 ] in official-ivy-rep
+        found [ ehcache | ehcache | 1.1 ] in official-ivy-rep
+        found [ apache | xerces | 2.5.0 ] in official-ivy-rep
+        found [ apache | commons-collections | 2.1.1 ] in official-ivy-rep
+        found [ opensymphony | oscache | 2.1 ] in ibiblio-maven2
+        found [ swarmcache | swarmcache | 1.0RC2 ] in official-ivy-rep
+        found [ apache | commons-collections | 2.1 ] in official-ivy-rep
+        found [ apache | commons-logging | 1.0.2 ] in official-ivy-rep
+        found [ jgroups | jgroups | 2.2 ] in official-ivy-rep
+        found [ jboss | jboss-cache | 1.2.2 ] in ibiblio-maven2
+        found [ jboss | jboss-system | 4.0.2 ] in ibiblio-maven2
+        found [ jboss | jboss-common | 4.0.2 ] in ibiblio-maven2
+        found [ jboss | jboss-minimal | 4.0.2 ] in ibiblio-maven2
+        found [ jboss | jboss-j2se | 200504122039 ] in ibiblio-maven2
+        found [ concurrent | concurrent | 1.3.4 ] in ibiblio-maven2
+        found [ jgroups | jgroups-all | 2.2.7 ] in ibiblio-maven2
+        found [ cglib | cglib | 2.0.2 ] in official-ivy-rep
+        found [ objectweb | asm | 1.3.4 ] in official-ivy-rep
+        found [ asm | asm | 1.4.3 ] in ibiblio-maven2
+        found [ javax.security | jacc | 1.0 ] in ibiblio-maven2
+        found [ dom4j | dom4j | 1.6 ] in ibiblio-maven2
+        found [ javax.transaction | jta | 1.0.1B ] in ibiblio-maven2
+        found [ hibernate | antlr | 2.7.5H3 ] in ibiblio-maven2
+        found [ odmg | odmg | 3.0 ] in official-ivy-rep
+:: downloading artifacts to cache ::
+downloading http://www.ibiblio.org/maven2/hibernate/hibernate/3.0/hibernate-3.0.jar ...
+..................................................
+.. (1565kB)
+        [SUCCESSFUL ] [ hibernate | hibernate | 3.0 ]/hibernate.jar[jar] (8500ms)
+downloading http://www.ibiblio.org/maven2/hibernate/antlr/2.7.5H3/antlr-2.7.5H3.jar ...
+
+           SOME MINUTES LATER !!!!!!!!!!
+
+downloading http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.0.4.jar ...
+........ (37kB)
+        [SUCCESSFUL ] [ apache | commons-logging | 1.0.4 ]/commons-logging.jar[jar] (1110ms)
+:: installing in local-repository ::
+        published hibernate to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/hibernate/jars/hibernate-3.0.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/hibernate/ivys/ivy-3.0.xml
+        published antlr to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/antlr/jars/antlr-2.7.5H3.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/hibernate/antlr/ivys/ivy-2.7.5H3.xml
+        published dom4j to Z:\build-a-ivy-repository/ivy-local-repository/dom4j/dom4j/jars/dom4j-1.6.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/dom4j/dom4j/ivys/ivy-1.6.xml
+missing artifact [ javax.security | jacc | 1.0 ]/jacc.jar[jar]: Z:\build-a-ivy-repository\cache\javax.security\jacc\jars\jacc-1.0.jar file does not exist
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/javax.security/jacc/ivys/ivy-1.0.xml
+        published asm to Z:\build-a-ivy-repository/ivy-local-repository/asm/asm/jars/asm-1.4.3.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/asm/asm/ivys/ivy-1.4.3.xml
+        published cglib-full to Z:\build-a-ivy-repository/ivy-local-repository/cglib/cglib/jars/cglib-full-2.0.2.jar
+        published cglib to Z:\build-a-ivy-repository/ivy-local-repository/cglib/cglib/jars/cglib-2.0.2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/cglib/cglib/ivys/ivy-2.0.2.xml
+        published asm to Z:\build-a-ivy-repository/ivy-local-repository/objectweb/asm/jars/asm-1.3.4.jar
+        published asm-util to Z:\build-a-ivy-repository/ivy-local-repository/objectweb/asm/jars/asm-util-1.3.4.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/objectweb/asm/ivys/ivy-1.3.4.xml
+        published jboss-cache to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-cache/jars/jboss-cache-1.2.2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-cache/ivys/ivy-1.2.2.xml
+        published jgroups-all to Z:\build-a-ivy-repository/ivy-local-repository/jgroups/jgroups-all/jars/jgroups-all-2.2.7.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jgroups/jgroups-all/ivys/ivy-2.2.7.xml
+        published concurrent to Z:\build-a-ivy-repository/ivy-local-repository/concurrent/concurrent/jars/concurrent-1.3.4.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/concurrent/concurrent/ivys/ivy-1.3.4.xml
+        published jboss-j2se to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-j2se/jars/jboss-j2se-200504122039.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-j2se/ivys/ivy-200504122039.xml
+        published jboss-minimal to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-minimal/jars/jboss-minimal-4.0.2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-minimal/ivys/ivy-4.0.2.xml
+        published jboss-system to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-system/jars/jboss-system-4.0.2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-system/ivys/ivy-4.0.2.xml
+        published swarmcache to Z:\build-a-ivy-repository/ivy-local-repository/swarmcache/swarmcache/jars/swarmcache-1.0RC2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/swarmcache/swarmcache/ivys/ivy-1.0RC2.xml
+missing artifact [ jgroups | jgroups | 2.2 ]/jgroups.jar[jar]: Z:\build-a-ivy-repository\cache\jgroups\jgroups\jars\jgroups-2.2.jar file does not exist
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jgroups/jgroups/ivys/ivy-2.2.xml
+        published commons-logging to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/jars/commons-logging-1.0.2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/ivys/ivy-1.0.2.xml
+        published oscache to Z:\build-a-ivy-repository/ivy-local-repository/opensymphony/oscache/jars/oscache-2.1.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/opensymphony/oscache/ivys/ivy-2.1.xml
+        published c3p0 to Z:\build-a-ivy-repository/ivy-local-repository/c3p0/c3p0/jars/c3p0-0.8.4.5.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/c3p0/c3p0/ivys/ivy-0.8.4.5.xml
+        published odmg to Z:\build-a-ivy-repository/ivy-local-repository/odmg/odmg/jars/odmg-3.0.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/odmg/odmg/ivys/ivy-3.0.xml
+        published proxool to Z:\build-a-ivy-repository/ivy-local-repository/proxool/proxool/jars/proxool-0.8.3.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/proxool/proxool/ivys/ivy-0.8.3.xml
+missing artifact [ javax.transaction | jta | 1.0.1B ]/jta.jar[jar]: Z:\build-a-ivy-repository\cache\javax.transaction\jta\jars\jta-1.0.1B.jar file does not exist
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/javax.transaction/jta/ivys/ivy-1.0.1B.xml
+        published jboss-common to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-common/jars/jboss-common-4.0.2.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/jboss/jboss-common/ivys/ivy-4.0.2.xml
+        published ant to Z:\build-a-ivy-repository/ivy-local-repository/apache/ant/jars/ant-1.6.3.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/ant/ivys/ivy-1.6.3.xml
+        published commons-collections to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/jars/commons-collections-2.1.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/ivys/ivy-2.1.xml
+        published ehcache to Z:\build-a-ivy-repository/ivy-local-repository/ehcache/ehcache/jars/ehcache-1.1.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/ehcache/ehcache/ivys/ivy-1.1.xml
+        published commons-collections to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/jars/commons-collections-2.1.1.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-collections/ivys/ivy-2.1.1.xml
+        published xercesImpl to Z:\build-a-ivy-repository/ivy-local-repository/apache/xerces/jars/xercesImpl-2.5.0.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/xerces/ivys/ivy-2.5.0.xml
+        published commons-logging to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/jars/commons-logging-1.0.4.jar
+        published ivy to Z:\build-a-ivy-repository/ivy-local-repository/apache/commons-logging/ivys/ivy-1.0.4.xml
+:: install resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |      default     |   28  |   28  |   28  |   0   ||   30  |   27  |
+        ---------------------------------------------------------------------
+
+BUILD SUCCESSFUL
+Total time: 2 minutes 10 seconds
+Z:\build-a-ivy-repository></pre></div>
+
+<h2>Analyzing the results</h2>
+OK, it seems that we have a good start point for our repository.
+As you can see in the resolving part of the process :
+<div class="shell"><pre>:: resolving dependencies ::
+        found [ hibernate | hibernate | 3.0 ] in ibiblio-maven2
+        found [ apache | commons-logging | 1.0.4 ] in official-ivy-rep
+        ...
+        found [ odmg | odmg | 3.0 ] in official-ivy-rep</pre></div>
+some ivy files were retrieved from the <a href="http://ivyrep.jayasoft.org">ivyrep</a> the official ivy repository. That means that for these modules, you have in your home made repository good ivy files (with meaningful configurations, ...).
+
+<h2>And now</h2>
+Now what you need to do is to download missing artifacts, those not on ibiblio (from sun, ...) and correct the generated ivy files. 
+It is important to make a review of the generated ivy files because you could then benefit from all the power of ivy by defining for those projects good configurations and some other good things.
+
+To ease finding generated files, just take a look at the generated resolve report in your cache. You will find there the projects for which a default ivy file was generated 
+<center><img src="/misc/ivy/samples/commons-lang1.0-dep-report-part.jpg" style="padding:1em;"/></center>
+and you can see the resolvers that have resolved the modules. In our example, you will update the files whose project were resolved by the ibiblio-maven2 resolver.
+<center><img src="/misc/ivy/samples/hibernate3.0-dep-report-part.jpg" style="padding:1em;"/></center>
+
+
 	</textarea>
 <script type="text/javascript">xooki.postProcess();</script>
 </body>

Modified: incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/basic.html
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/basic.html?view=diff&rev=519939&r1=519938&r2=519939
==============================================================================
--- incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/basic.html (original)
+++ incubator/ivy/core/trunk/doc/doc/tutorial/build-repository/basic.html Mon Mar 19 06:14:32 2007
@@ -5,204 +5,200 @@
 	<script type="text/javascript" src="../../../xooki/xooki.js"></script>
 </head>
 <body>
-	<textarea id="xooki-source">
-!!!! UNDER CONSTRUCTION !!!!
-
-
-
-We will study here two cases, corresponding to the two basics targets found in the previous build.xml project file.
-
-<h1>Basic : ivysettings.xml file used</h1>
-The ivy conf file that we will use is very simple here. It defines two resolvers, libraries and local-repository. The first one is used to retrieve the files that we want, the second is used to copy them. The second one will become our own repository.
-<ul>
-<li>ivyrep : nothing special on it, ivy files will be looked for on ivyrep and artifacts will be downloaded from 
-ibilio</li>
-<li>local-repository :  will store the found files</li>
-</ul>
-
-<div class="ivy-file">
-<code type="xml">
-<ivysettings>
-    <conf   defaultCache="${ivy.cache.dir}"	
-            defaultResolver="local-repository" 
-            defaultConflictManager="all" />    <!-- in order to get all revisions without any eviction -->
-    <resolvers>
-        <ivyrep name="libraries" />
-        <filesystem name="local-repository">
-            <ivy pattern="${dest.repo.dir}/[organisation]/[module]/ivys/ivy-[revision].xml"/>
-            <artifact pattern="${dest.repo.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[type]"/>
-        </filesystem>
-    </resolvers>
-</ivysettings>
-</code>
-</div>
-
-<h1>basic, retrieve commons-lang 1.0</h1>
-Let's have a look at the <em>basic</em> target.
-<code type="xml">
-    <target name="basic" depends="init-basic" description="--> retrieve files from well formatted ivy repositories">
-        <ivy:install organisation="apache" module="commons-lang" revision="1.0" from="${from-resolver}" to="${to-resolver}" />
-    </target>
-</code>
-After a call to init-basic, that make the ivy initialization with the right ivysettings file, we only call the task <a href="../../../doc/use/install.html">install</a> to retrieve apache commons-lang in it's 1.0 version.
-Here is the ant call output :
-<div class="shell"><pre>Z:\ivy-repository>ant basic
-Buildfile: build.xml
-
-init-basic:
-:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
-:: configuring :: file = Z:\ivy-repository\ivy-conf-basic.xml
-
-basic:
-:: installing [ apache | commons-lang | 1.0 ] ::
-:: resolving dependencies ::
-        found [ apache | commons-lang | 1.0 ] in libraries
-:: downloading artifacts to cache ::
-downloading http://www.ibiblio.org/maven/commons-lang/jars/commons-lang-1.0.jar ...
-............ (62kB)
-        [SUCCESSFUL ] [ apache | commons-lang | 1.0 ]/commons-lang.jar[jar] (1203ms)
-:: installing in local-repository ::
-        published commons-lang to Z:\ivy-repository/ivy-local-repository/apache/commons-lang/jars/commons-lang-1.0.jar
-        published ivy to Z:\ivy-repository/ivy-local-repository/apache/commons-lang/ivys/ivy-1.0.xml
-
-BUILD SUCCESSFUL
-Total time: 2 seconds</pre></div>
-The trace tells us that the module definition was found using the "libraries" resolver and that the corresponding artifact was downloaded from ibiblio. Then both were published in the local repository.
-
-If we take a look at our repository :
-<div class="shell"><pre>Z:\ivy-repository>dir /s /B /A:-D ivy-local-repository
-Z:\ivy-repository\ivy-local-repository\apache\commons-lang\ivys\ivy-1.0.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-lang\jars\commons-lang-1.0.jar
-Z:\ivy-repository></pre>
-</div>
-We can see that we have started our own repository by retrieving the commons-lang 1.0 ivy file descriptor and jar.
-<h1>basic with dependencies, retrieve hibernate 2.1.8</h1>
-Now let's advance a little more by trying a module that has some dependencies. Here is the target that we will call :
-<code type="xml">
-    <target name="basic-deps" depends="init-basic" description="--> retrieve files from well formatted ivy repositories with dependencies">
-        <ivy:install organisation="hibernate" module="hibernate" revision="2.1.8" from="${from-resolver}" to="${to-resolver}" transitive="true" />
-    </target>
-</code>This target is very similar to the basic one, except it defines the transitivity mode to use. By writing, <em>transitive="true"</em>, we tell the task to retrieve the corresponding module and it's dependencies.
-
-Ok let's call the target :
-<div class="shell"><pre>Z:\ivy-repository>ant basic-deps
-Buildfile: build.xml
-
-init-basic:
-:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
-:: configuring :: file = Z:\ivy-repository\ivy-conf-basic.xml
-
-basic-deps:
-:: installing [ hibernate | hibernate | 2.1.8 ] ::
-:: resolving dependencies ::
-        found [ hibernate | hibernate | 2.1.8 ] in libraries
-        found [ cglib | cglib | 2.0.2 ] in libraries
-        found [ apache | commons-collections | 2.1.1 ] in libraries
-        found [ apache | commons-logging | 1.0.4 ] in libraries
-        found [ dom4j | dom4j | 1.4 ] in libraries
-        found [ ehcache | ehcache | 0.9 ] in libraries
-        found [ odmg | odmg | 3.0 ] in libraries
-        found [ sun | jta | 1.0 ] in libraries
-        found [ apache | xalan | 2.4.0 ] in libraries
-        found [ apache | xerces | 2.4.0 ] in libraries
-        found [ sun | jdbc | 2.0 ] in libraries
-        found [ sun | jca | 1.0 ] in libraries
-        found [ sun | jaas | 1.0 ] in libraries
-        found [ c3p0 | c3p0 | 0.8.4.5 ] in libraries
-        found [ apache | commons-dbcp | 1.2.1 ] in libraries
-        found [ apache | commons-pool | 1.2 ] in libraries
-        found [ apache | commons-collections | 2.1 ] in libraries
-        found [ apache | xerces | 2.0.2 ] in libraries
-        found [ proxool | proxool | 0.8.3 ] in libraries
-        found [ jboss | jboss-cache | 1.1.1 ] in libraries
-        found [ opensymphony | oscache | 2.0 ] in libraries
-        found [ apache | commons-logging | 1.0.3 ] in libraries
-        found [ swarmcache | swarmcache | 1.0RC2 ] in libraries
-        found [ apache | commons-logging | 1.0.2 ] in libraries
-        found [ jgroups | jgroups | 2.2 ] in libraries
-:: downloading artifacts to cache ::
-downloading http://www.ibiblio.org/maven/hibernate/jars/hibernate-2.1.8.jar ...
-...........
-............
-.. (944kB)
-        [SUCCESSFUL ] [ hibernate | hibernate | 2.1.8 ]/hibernate.jar[jar] (97063ms)
-
-
-SOME MINUTES LATER .... ;-)
-
-
-downloading http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.0.4.jar ...
-..
-......
-.. (37kB)
-        [SUCCESSFUL ] [ apache | commons-logging | 1.0.4 ]/commons-logging.jar[jar] (24172ms)
-
-BUILD SUCCESSFUL
-Total time: 14 minutes 57 seconds
-Z:\ivy-repository></pre>
-</div>
-
-We can see here that <a href="/ivy">ivy</a> has resolved hibernate 2.1.8 and 24 depending modules. If we look at the ivy file for <a href="http://ivyrep.jayasoft.org/hibernate/hibernate/ivy-2.1.8.xml">hibernate 2.1.8</a>, we can see that it defines 17 dependencies. The 7 others that ivy retrieved, were transitive ones used in direct dependent modules of hibernate.
-
-We can notice that we have retrieve 3 differents revisions of apache commons-logging (1.0.2, 1.0.3, 1.0.4) and 2 revisions of commons-collections (1.2, 1.2.1). This is due to the fact that we use the "no conflict" <a href="../../../doc/configuration/conflict-managers.html">conflic manager</a> in the ivysettings file.
-We do not want to evict any modules because we are building our own repository !
-
-8 modules artifacts have not been downloaded cause they have not been found on ibiblio with the ivysettings as it is.
-We will see how to handle this problem in the advanced tutorial.
-
-If we look at our repository now, it starts to look to something good :
-
-<div class="shell"><pre>Z:\ivy-repository>dir /s /B /A:-D ivy-local-repository
-Z:\ivy-repository\ivy-local-repository\apache\commons-collections\ivys\ivy-2.1.1.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-collections\ivys\ivy-2.1.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-collections\jars\commons-collections-2.1.1.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-collections\jars\commons-collections-2.1.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-dbcp\ivys\ivy-1.2.1.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-dbcp\jars\commons-dbcp-1.2.1.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-lang\ivys\ivy-1.0.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-lang\jars\commons-lang-1.0.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-logging\ivys\ivy-1.0.2.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-logging\ivys\ivy-1.0.3.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-logging\ivys\ivy-1.0.4.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-logging\jars\commons-logging-1.0.2.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-logging\jars\commons-logging-1.0.3.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-logging\jars\commons-logging-1.0.4.jar
-Z:\ivy-repository\ivy-local-repository\apache\commons-pool\ivys\ivy-1.2.xml
-Z:\ivy-repository\ivy-local-repository\apache\commons-pool\jars\commons-pool-1.2.jar
-Z:\ivy-repository\ivy-local-repository\apache\xalan\ivys\ivy-2.4.0.xml
-Z:\ivy-repository\ivy-local-repository\apache\xalan\jars\xalan-2.4.0.jar
-Z:\ivy-repository\ivy-local-repository\apache\xerces\ivys\ivy-2.0.2.xml
-Z:\ivy-repository\ivy-local-repository\apache\xerces\ivys\ivy-2.4.0.xml
-Z:\ivy-repository\ivy-local-repository\apache\xerces\jars\xerces-2.0.2.jar
-Z:\ivy-repository\ivy-local-repository\apache\xerces\jars\xerces-2.4.0.jar
-Z:\ivy-repository\ivy-local-repository\apache\xerces\jars\xmlParserAPIs-2.0.2.jar
-Z:\ivy-repository\ivy-local-repository\c3p0\c3p0\ivys\ivy-0.8.4.5.xml
-Z:\ivy-repository\ivy-local-repository\c3p0\c3p0\jars\c3p0-0.8.4.5.jar
-Z:\ivy-repository\ivy-local-repository\cglib\cglib\ivys\ivy-2.0.2.xml
-Z:\ivy-repository\ivy-local-repository\cglib\cglib\jars\cglib-full-2.0.2.jar
-Z:\ivy-repository\ivy-local-repository\dom4j\dom4j\ivys\ivy-1.4.xml
-Z:\ivy-repository\ivy-local-repository\dom4j\dom4j\jars\dom4j-1.4.jar
-Z:\ivy-repository\ivy-local-repository\ehcache\ehcache\ivys\ivy-0.9.xml
-Z:\ivy-repository\ivy-local-repository\ehcache\ehcache\jars\ehcache-0.9.jar
-Z:\ivy-repository\ivy-local-repository\hibernate\hibernate\ivys\ivy-2.1.8.xml
-Z:\ivy-repository\ivy-local-repository\hibernate\hibernate\jars\hibernate-2.1.8.jar
-Z:\ivy-repository\ivy-local-repository\jboss\jboss-cache\ivys\ivy-1.1.1.xml
-Z:\ivy-repository\ivy-local-repository\jgroups\jgroups\ivys\ivy-2.2.xml
-Z:\ivy-repository\ivy-local-repository\odmg\odmg\ivys\ivy-3.0.xml
-Z:\ivy-repository\ivy-local-repository\odmg\odmg\jars\odmg-3.0.jar
-Z:\ivy-repository\ivy-local-repository\opensymphony\oscache\ivys\ivy-2.0.xml
-Z:\ivy-repository\ivy-local-repository\proxool\proxool\ivys\ivy-0.8.3.xml
-Z:\ivy-repository\ivy-local-repository\proxool\proxool\jars\proxool-0.8.3.jar
-Z:\ivy-repository\ivy-local-repository\sun\jaas\ivys\ivy-1.0.xml
-Z:\ivy-repository\ivy-local-repository\sun\jca\ivys\ivy-1.0.xml
-Z:\ivy-repository\ivy-local-repository\sun\jdbc\ivys\ivy-2.0.xml
-Z:\ivy-repository\ivy-local-repository\sun\jta\ivys\ivy-1.0.xml
-Z:\ivy-repository\ivy-local-repository\swarmcache\swarmcache\ivys\ivy-1.0RC2.xml
-Z:\ivy-repository\ivy-local-repository\swarmcache\swarmcache\jars\swarmcache-1.0RC2.jar
-
-Z:\ivy-repository></pre>
-</div>
-
+	<textarea id="xooki-source">
+We will study here two cases, corresponding to the two basics targets found in the previous build.xml project file.
+
+<h1>Basic : ivysettings.xml file used</h1>
+The ivy settings file that we will use is very simple here. It defines two resolvers, libraries and local-repository. The first one is used to retrieve the files that we want, the second is used to copy them. The second one will become our own repository.
+<ul>
+<li>ivyrep : nothing special on it, ivy files will be looked for on ivyrep and artifacts will be downloaded from 
+ibilio</li>
+<li>local-repository :  will store the found files</li>
+</ul>
+
+<div class="ivy-file">
+<code type="xml">
+<ivysettings>
+    <settings defaultCache="${ivy.cache.dir}"	
+              defaultResolver="local-repository" 
+              defaultConflictManager="all" />    <!-- in order to get all revisions without any eviction -->
+    <resolvers>
+        <ivyrep name="libraries" />
+        <filesystem name="local-repository">
+            <ivy pattern="${dest.repo.dir}/[organisation]/[module]/ivys/ivy-[revision].xml"/>
+            <artifact pattern="${dest.repo.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[type]"/>
+        </filesystem>
+    </resolvers>
+</ivysettings>
+</code>
+</div>
+
+<h1>basic, retrieve commons-lang 1.0</h1>
+Let's have a look at the <em>basic</em> target.
+<code type="xml">
+    <target name="basic" depends="init-basic" description="--> retrieve files from well formatted ivy repositories">
+        <ivy:install organisation="apache" module="commons-lang" revision="1.0" from="${from-resolver}" to="${to-resolver}" />
+    </target>
+</code>
+After a call to init-basic, that make the ivy initialization with the right ivysettings file, we only call the task <a href="../../../doc/use/install.html">install</a> to retrieve apache commons-lang in it's 1.0 version.
+Here is the ant call output :
+<div class="shell"><pre>Z:\ivy-repository>ant basic
+Buildfile: build.xml
+
+init-basic:
+:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
+:: configuring :: file = Z:\ivy-repository\ivy-conf-basic.xml
+
+basic:
+:: installing [ apache | commons-lang | 1.0 ] ::
+:: resolving dependencies ::
+        found [ apache | commons-lang | 1.0 ] in libraries
+:: downloading artifacts to cache ::
+downloading http://www.ibiblio.org/maven/commons-lang/jars/commons-lang-1.0.jar ...
+............ (62kB)
+        [SUCCESSFUL ] [ apache | commons-lang | 1.0 ]/commons-lang.jar[jar] (1203ms)
+:: installing in local-repository ::
+        published commons-lang to Z:\ivy-repository/ivy-local-repository/apache/commons-lang/jars/commons-lang-1.0.jar
+        published ivy to Z:\ivy-repository/ivy-local-repository/apache/commons-lang/ivys/ivy-1.0.xml
+
+BUILD SUCCESSFUL
+Total time: 2 seconds</pre></div>
+The trace tells us that the module definition was found using the "libraries" resolver and that the corresponding artifact was downloaded from ibiblio. Then both were published in the local repository.
+
+If we take a look at our repository :
+<div class="shell"><pre>Z:\ivy-repository>dir /s /B /A:-D ivy-local-repository
+Z:\ivy-repository\ivy-local-repository\apache\commons-lang\ivys\ivy-1.0.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-lang\jars\commons-lang-1.0.jar
+Z:\ivy-repository></pre>
+</div>
+We can see that we have started our own repository by retrieving the commons-lang 1.0 ivy file descriptor and jar.
+<h1>basic with dependencies, retrieve hibernate 2.1.8</h1>
+Now let's advance a little more by trying a module that has some dependencies. Here is the target that we will call :
+<code type="xml">
+    <target name="basic-deps" depends="init-basic" description="--> retrieve files from well formatted ivy repositories with dependencies">
+        <ivy:install organisation="hibernate" module="hibernate" revision="2.1.8" from="${from-resolver}" to="${to-resolver}" transitive="true" />
+    </target>
+</code>This target is very similar to the basic one, except it defines the transitivity mode to use. By writing, <em>transitive="true"</em>, we tell the task to retrieve the corresponding module and it's dependencies.
+
+Ok let's call the target :
+<div class="shell"><pre>Z:\ivy-repository>ant basic-deps
+Buildfile: build.xml
+
+init-basic:
+:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
+:: configuring :: file = Z:\ivy-repository\ivy-conf-basic.xml
+
+basic-deps:
+:: installing [ hibernate | hibernate | 2.1.8 ] ::
+:: resolving dependencies ::
+        found [ hibernate | hibernate | 2.1.8 ] in libraries
+        found [ cglib | cglib | 2.0.2 ] in libraries
+        found [ apache | commons-collections | 2.1.1 ] in libraries
+        found [ apache | commons-logging | 1.0.4 ] in libraries
+        found [ dom4j | dom4j | 1.4 ] in libraries
+        found [ ehcache | ehcache | 0.9 ] in libraries
+        found [ odmg | odmg | 3.0 ] in libraries
+        found [ sun | jta | 1.0 ] in libraries
+        found [ apache | xalan | 2.4.0 ] in libraries
+        found [ apache | xerces | 2.4.0 ] in libraries
+        found [ sun | jdbc | 2.0 ] in libraries
+        found [ sun | jca | 1.0 ] in libraries
+        found [ sun | jaas | 1.0 ] in libraries
+        found [ c3p0 | c3p0 | 0.8.4.5 ] in libraries
+        found [ apache | commons-dbcp | 1.2.1 ] in libraries
+        found [ apache | commons-pool | 1.2 ] in libraries
+        found [ apache | commons-collections | 2.1 ] in libraries
+        found [ apache | xerces | 2.0.2 ] in libraries
+        found [ proxool | proxool | 0.8.3 ] in libraries
+        found [ jboss | jboss-cache | 1.1.1 ] in libraries
+        found [ opensymphony | oscache | 2.0 ] in libraries
+        found [ apache | commons-logging | 1.0.3 ] in libraries
+        found [ swarmcache | swarmcache | 1.0RC2 ] in libraries
+        found [ apache | commons-logging | 1.0.2 ] in libraries
+        found [ jgroups | jgroups | 2.2 ] in libraries
+:: downloading artifacts to cache ::
+downloading http://www.ibiblio.org/maven/hibernate/jars/hibernate-2.1.8.jar ...
+...........
+............
+.. (944kB)
+        [SUCCESSFUL ] [ hibernate | hibernate | 2.1.8 ]/hibernate.jar[jar] (97063ms)
+
+
+SOME MINUTES LATER .... ;-)
+
+
+downloading http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.0.4.jar ...
+..
+......
+.. (37kB)
+        [SUCCESSFUL ] [ apache | commons-logging | 1.0.4 ]/commons-logging.jar[jar] (24172ms)
+
+BUILD SUCCESSFUL
+Total time: 14 minutes 57 seconds
+Z:\ivy-repository></pre>
+</div>
+
+We can see here that <a href="/ivy">ivy</a> has resolved hibernate 2.1.8 and 24 depending modules. If we look at the ivy file for <a href="http://ivyrep.jayasoft.org/hibernate/hibernate/ivy-2.1.8.xml">hibernate 2.1.8</a>, we can see that it defines 17 dependencies. The 7 others that ivy retrieved, were transitive ones used in direct dependent modules of hibernate.
+
+We can notice that we have retrieve 3 different revisions of apache commons-logging (1.0.2, 1.0.3, 1.0.4) and 2 revisions of commons-collections (1.2, 1.2.1). This is due to the fact that we use the "no conflict" <a href="../../../doc/configuration/conflict-managers.html">conflic manager</a> in the ivysettings file.
+We do not want to evict any modules because we are building our own repository !
+
+8 modules artifacts have not been downloaded cause they have not been found on ibiblio with the ivysettings as it is.
+We will see how to handle this problem in the advanced tutorial.
+
+If we look at our repository now, it starts to look to something good :
+
+<div class="shell"><pre>Z:\ivy-repository>dir /s /B /A:-D ivy-local-repository
+Z:\ivy-repository\ivy-local-repository\apache\commons-collections\ivys\ivy-2.1.1.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-collections\ivys\ivy-2.1.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-collections\jars\commons-collections-2.1.1.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-collections\jars\commons-collections-2.1.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-dbcp\ivys\ivy-1.2.1.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-dbcp\jars\commons-dbcp-1.2.1.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-lang\ivys\ivy-1.0.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-lang\jars\commons-lang-1.0.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-logging\ivys\ivy-1.0.2.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-logging\ivys\ivy-1.0.3.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-logging\ivys\ivy-1.0.4.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-logging\jars\commons-logging-1.0.2.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-logging\jars\commons-logging-1.0.3.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-logging\jars\commons-logging-1.0.4.jar
+Z:\ivy-repository\ivy-local-repository\apache\commons-pool\ivys\ivy-1.2.xml
+Z:\ivy-repository\ivy-local-repository\apache\commons-pool\jars\commons-pool-1.2.jar
+Z:\ivy-repository\ivy-local-repository\apache\xalan\ivys\ivy-2.4.0.xml
+Z:\ivy-repository\ivy-local-repository\apache\xalan\jars\xalan-2.4.0.jar
+Z:\ivy-repository\ivy-local-repository\apache\xerces\ivys\ivy-2.0.2.xml
+Z:\ivy-repository\ivy-local-repository\apache\xerces\ivys\ivy-2.4.0.xml
+Z:\ivy-repository\ivy-local-repository\apache\xerces\jars\xerces-2.0.2.jar
+Z:\ivy-repository\ivy-local-repository\apache\xerces\jars\xerces-2.4.0.jar
+Z:\ivy-repository\ivy-local-repository\apache\xerces\jars\xmlParserAPIs-2.0.2.jar
+Z:\ivy-repository\ivy-local-repository\c3p0\c3p0\ivys\ivy-0.8.4.5.xml
+Z:\ivy-repository\ivy-local-repository\c3p0\c3p0\jars\c3p0-0.8.4.5.jar
+Z:\ivy-repository\ivy-local-repository\cglib\cglib\ivys\ivy-2.0.2.xml
+Z:\ivy-repository\ivy-local-repository\cglib\cglib\jars\cglib-full-2.0.2.jar
+Z:\ivy-repository\ivy-local-repository\dom4j\dom4j\ivys\ivy-1.4.xml
+Z:\ivy-repository\ivy-local-repository\dom4j\dom4j\jars\dom4j-1.4.jar
+Z:\ivy-repository\ivy-local-repository\ehcache\ehcache\ivys\ivy-0.9.xml
+Z:\ivy-repository\ivy-local-repository\ehcache\ehcache\jars\ehcache-0.9.jar
+Z:\ivy-repository\ivy-local-repository\hibernate\hibernate\ivys\ivy-2.1.8.xml
+Z:\ivy-repository\ivy-local-repository\hibernate\hibernate\jars\hibernate-2.1.8.jar
+Z:\ivy-repository\ivy-local-repository\jboss\jboss-cache\ivys\ivy-1.1.1.xml
+Z:\ivy-repository\ivy-local-repository\jgroups\jgroups\ivys\ivy-2.2.xml
+Z:\ivy-repository\ivy-local-repository\odmg\odmg\ivys\ivy-3.0.xml
+Z:\ivy-repository\ivy-local-repository\odmg\odmg\jars\odmg-3.0.jar
+Z:\ivy-repository\ivy-local-repository\opensymphony\oscache\ivys\ivy-2.0.xml
+Z:\ivy-repository\ivy-local-repository\proxool\proxool\ivys\ivy-0.8.3.xml
+Z:\ivy-repository\ivy-local-repository\proxool\proxool\jars\proxool-0.8.3.jar
+Z:\ivy-repository\ivy-local-repository\sun\jaas\ivys\ivy-1.0.xml
+Z:\ivy-repository\ivy-local-repository\sun\jca\ivys\ivy-1.0.xml
+Z:\ivy-repository\ivy-local-repository\sun\jdbc\ivys\ivy-2.0.xml
+Z:\ivy-repository\ivy-local-repository\sun\jta\ivys\ivy-1.0.xml
+Z:\ivy-repository\ivy-local-repository\swarmcache\swarmcache\ivys\ivy-1.0RC2.xml
+Z:\ivy-repository\ivy-local-repository\swarmcache\swarmcache\jars\swarmcache-1.0RC2.jar
+
+Z:\ivy-repository></pre>
+</div>
+
 	</textarea>
 <script type="text/javascript">xooki.postProcess();</script>
 </body>

Modified: incubator/ivy/core/trunk/doc/doc/tutorial/conf.html
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/doc/tutorial/conf.html?view=diff&rev=519939&r1=519938&r2=519939
==============================================================================
--- incubator/ivy/core/trunk/doc/doc/tutorial/conf.html (original)
+++ incubator/ivy/core/trunk/doc/doc/tutorial/conf.html Mon Mar 19 06:14:32 2007
@@ -5,284 +5,284 @@
 	<script type="text/javascript" src="../../xooki/xooki.js"></script>
 </head>
 <body>
-	<textarea id="xooki-source">
-This tutorial introduces the use of configuration in ivy files. Ivy configurations is indeed a very important concept. Someone even told me one day that using Ivy without using configurations is like eating a good cheese without touching the glass of Chateau Margaux 1976 you have just aside :-)
-
-More seriously, configurations in ivy can be better understood as views on your module, and you will see how they can be used efficiently here.
-
-Reference documentation on configurations can be find <a href="../../doc/terminology.html">here</a> and <a href="../../doc/ivyfile/configurations.html">here</a>.
-<h1>Introduction</h1>
-Source code available in src/example/configurations/multi-projects.
-We have two projects :
-  - a library that define an api to filter String array and two implementations of this api.
-  - a very small app that use this library.
-  
-The library produces 3 artifacts:
-  - the api jar,
-  - an implementation jar with no external dependency,
-  - an other implementation that needs commons-collection to perform.
-
-The application only need api to compile and can use any of the two implementation at runtime.
-
-<h1>The library project</h1>
-The first project we defined in this tutorial is the filter-framework.
-In order to have a fine grained artifacts publication definition, we defined configurations to map usage other can make of our library.
-<h2>The ivy.xml file</h2>
-
-<div class="ivy-file">
-<code type="xml">
-<ivy-module version="1.3">
-    <info organisation="jayasoft" module="filter-framework"/>
-    <configurations>
-    	<conf name="api"  description="only provide filter framework API"/>
-      <conf name="homemade-impl" extends="api" description="provide a home made implementation of our api"/>
-      <conf name="cc-impl" extends="api" description="provide an implementation that use apache common collection framework"/>
-      <conf name="test" extends="cc-impl" visibility="private" description="for testing our framework"/>
-    </configurations>
-    <publications>
-      <artifact name="filter-api" type="jar"  conf="api" ext="jar"/>
-      <artifact name="filter-hmimpl" type="jar"  conf="homemade-impl" ext="jar"/>
-      <artifact name="filter-ccimpl" type="jar"  conf="cc-impl" ext="jar"/>      
-    </publications>
-    <dependencies>
-        <dependency org="apache" name="commons-collections" rev="3.1" conf="cc-impl->default"/>
-        <dependency org="junit" name="junit" rev="3.8" conf="test->default"/>
-    </dependencies>
-</ivy-module>
-</code> 
-</div>
-<h2>Explanation</h2>
-As you can see we defined 3 public configurations and a private one (defined junit dependency for testing).
-The 2 implementations conf  <b>homemade-impl</b>,  <b>cc-impl</b> extends <b>api</b> configuration so artifacts defined in api will also be required in its extending conf.
-In the publications tag we defined the artifacts we produce (here it's jars) and we affect them a configuration.
-Later when others will use our library they will have a very flexible way to defined what they need.
-
-<h2>See it in action</h2>
-The library project is build using ant. Open a shell in the root directory of the project and type <b>ant</b>.
-<div class="shell"><pre>
-Buildfile: build.xml
-clean:
-resolve:
-:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
-no configuration file found, using default...
-:: configuring :: url = jar:file:/C:/dev/ant/apache-ant-1.6.2/lib/ivy-20060123130642.jar!/fr/jayasoft/ivy/conf/ivysettings.xml
-:: resolving dependencies :: [ jayasoft | filter-framework | working@SPIDER ]
-        confs: [api, homemade-impl, cc-impl, test]
-        found [ apache | commons-collections | 3.1 ] in main
-        found [ junit | junit | 3.8 ] in main
-downloading http://www.ibiblio.org/maven/commons-collections/jars/commons-collections-3.1.jar ................(546kB)
-        [SUCCESSFUL ] [ apache | commons-collections | 3.1 ]/commons-collections.jar[jar] (34320ms)
-downloading http://www.ibiblio.org/maven/junit/jars/junit-3.8.jar ........................... (118kB)
-        [SUCCESSFUL ] [ junit | junit | 3.8 ]/junit.jar[jar] (8462ms)
-:: resolution report ::
-        ---------------------------------------------------------------------
-        |                  |            modules            ||   artifacts   |
-        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
-        ---------------------------------------------------------------------
-        |        api       |   0   |   0   |   0   |   0   ||   0   |   0   |
-        |   homemade-impl  |   0   |   0   |   0   |   0   ||   0   |   0   |
-        |      cc-impl     |   1   |   1   |   1   |   0   ||   1   |   1   |
-        |       test       |   2   |   2   |   1   |   0   ||   2   |   2   |
-        ---------------------------------------------------------------------
-:: retrieving :: [ jayasoft | filter-framework ]
-        confs: [api, homemade-impl, cc-impl, test]
-        3 artifacts copied, 0 already retrieved
-
-build:
-    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build
-    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib
-    [javac] Compiling 4 source files to D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build
-      [jar] Building jar: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib\filter-api.jar
-      [jar] Building jar: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib\filter-hmimpl.jar
-      [jar] Building jar: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib\filter-ccimpl.jar
-
-test:
-    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build\test-report
-    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build\test-classes
-    [javac] Compiling 3 source files to D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build\test-classes
-    [junit] Running filter.ccimpl.CCFilterTest
-    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.02 sec
-    [junit] Running filter.hmimpl.HMFilterTest
-    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.01 sec
-
-publish:
-:: delivering :: [ jayasoft | filter-framework | working@SPIDER ] :: 1.3 :: release :: Tue Jan 24 10:53:41 CET 2006
-        delivering ivy file to distrib/ivy.xml
-:: publishing :: [ jayasoft | filter-framework | working@SPIDER ]
-        published filter-api to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/jars/filter-api.jar
-        published filter-ccimpl to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/jars/filter-ccimpl.jar
-        published filter-hmimpl to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/jars/filter-hmimpl.jar
-        published ivy to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/ivys/ivy.xml
-     [echo] project filter-framework released with version 1.3
-
-BUILD SUCCESSFUL
-</pre></div>
-The ant's default target is publish. 
-This target use ivy to publish our library binaries in a local repository. 
-As we do not specify any repository path the default one is use. ({home.dir}/.ivy/local/jayasoft/filter-framework/)
-Now we are ready to use our library.
-
-<h1>The application project</h1>
-
-Now that we have shipped our fantastic library, we want to use it!
-The tutorial comes with a sample application called myapp. You will find it in the tutorial folder.
-<h2>The ivy.xml file</h2>
-
-<div class="ivy-file">
-<code type="xml">
-<ivy-module version="1.3">
-    <info organisation="jayasoft" module="myapp"/>
-   
-    <configurations>
-      <conf name="build" visibility="private" description="compilation only need api jar" />
-      <conf name="noexternaljar" description="use only company jar" />
-      <conf name="withexternaljar" description="use company jar and third party jars" />    
-    </configurations>
-    
-    <dependencies>
-        <dependency org="jayasoft" name="filter-framework" rev="latest.integration" conf="build->api; noexternaljar->homemade-impl; withexternaljar->cc-impl"/>
-    </dependencies>
-</ivy-module>
-</code> 
-</div>
-<h2>Explanation</h2>
-We create 3 configurations that define the way we want to use the application.
-The build configuration, (as said before) only need api to compile.
-The other configuration are defined for runtime.
-One configuration will only use "home-made" jars, and the second one will use external jars.
-
-We also defined a dependency on the previous library.
-In the dependency we use configuration mapping to match ours and library configurations.
-You can found more information on configuration mapping <a href="../../doc/ivyfile/configurations.html">here</a>
-<ol>
-  <li><b>build->api</b> : here we tell ivy that our <b>build</b> configuration depends on the api configuration of the dependcy</li>
-  <li><b>noexternaljar->homemade-impl</b> : here we tell ivy that our <b>noexternaljar</b> configuration depends on the <b>homemade-impl</b> configuration of the dependcy.</li>
-  <li><b>withexternaljar->cc-impl</b> : here we tell ivy that our <b>withexternaljar</b> configuration depends on the <b>cc-impl</b> configuration of the dependcy</li>
-</ol>
-Note that we never declares any of the dependency artifacts we need in each configuration: it's the dependency module file which declares the published artifacts and which should be used in each configuration.
-
-In the ant buld.xml file we defined a resolve target as follow:
-
-<code type="xml">
-<target name="resolve" description="--> retreive dependencies with ivy">
-	<ivy:retrieve pattern="${ivy.lib.dir}/[conf]/[artifact].[ext]"/>
-</target> 
-</code> 
-
-When we call this target, Ivy will do a resolve using our ivy.xml file in the root folder and will after do retrieve putting all the artifacts in folder for each configuration. Here is how your lib directory should look like after a call to this target:
-<div class="shell"><pre>
- Répertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib
-
-01/24/2006  11:19 AM    <REP>          build
-01/24/2006  11:19 AM    <REP>          noexternaljar
-01/24/2006  11:19 AM    <REP>          withexternaljar
-               0 fichier(s)                0 octets
-
- Répertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\build
-
-01/24/2006  10:53 AM             1,174 filter-api.jar
-               1 fichier(s)            1,174 octets
-
- Répertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\noexternaljar
-
-01/24/2006  10:53 AM             1,174 filter-api.jar
-01/24/2006  10:53 AM             1,030 filter-hmimpl.jar
-               2 fichier(s)            2,204 octets
-
- Répertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\withexternaljar
-01/24/2006  10:53 AM           559,366 commons-collections.jar
-01/24/2006  10:53 AM             1,174 filter-api.jar
-01/24/2006  10:53 AM             1,626 filter-ccimpl.jar
-               3 fichier(s)          562,166 octets
-</pre></div>
-As you can see for each configuration we have now a set of jars.
-
-Let's try to launch our app.
-
-<h2>See it in action</h2>
-Use ant to run the application.
-Default ant target is run-cc and will launch application using common collection jar.
-<div class="shell"><pre>
-Buildfile: build.xml
-
-resolve:
-:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
-no configuration file found, using default...
-:: configuring :: url = jar:file:/C:/dev/ant/apache-ant-1.6.2/lib/ivy-20060123130642.jar!/fr/jayasoft/ivy/conf/ivysettings.xml
-:: resolving dependencies :: [ jayasoft | myapp | working@SPIDER ]
-        confs: [build, noexternaljar, withexternaljar]
-        found [ jayasoft | filter-framework | 1.3 ] in local
-        [1.3] [ jayasoft | filter-framework | latest.integration ]
-        found [ apache | commons-collections | 3.1 ] in default
-downloading D:\users\mm\.ivy\local\jayasoft\filter-framework\1.3\jars\filter-ccimpl.jar .... (1kB)
-        [SUCCESSFUL ] [ jayasoft | filter-framework | 1.3 ]/filter-ccimpl.jar[jar] (0ms)
-downloading D:\users\mm\.ivy\local\jayasoft\filter-framework\1.3\jars\filter-api.jar .... (1kB)
-        [SUCCESSFUL ] [ jayasoft | filter-framework | 1.3 ]/filter-api.jar[jar] (0ms)
-downloading D:\users\mm\.ivy\local\jayasoft\filter-framework\1.3\jars\filter-hmimpl.jar .... (1kB)
-        [SUCCESSFUL ] [ jayasoft | filter-framework | 1.3 ]/filter-hmimpl.jar[jar] (10ms)
-:: resolution report ::
-        ---------------------------------------------------------------------
-        |                  |            modules            ||   artifacts   |
-        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
-        ---------------------------------------------------------------------
-        |       build      |   1   |   1   |   1   |   0   ||   1   |   1   |
-        |   noexternaljar  |   1   |   1   |   1   |   0   ||   2   |   2   |
-        |  withexternaljar |   2   |   1   |   1   |   0   ||   3   |   2   |
-        ---------------------------------------------------------------------
-:: retrieving :: [ jayasoft | myapp ]
-        confs: [build, noexternaljar, withexternaljar]
-        6 artifacts copied, 0 already retrieved
-
-build:
-    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\myapp\build
-    [javac] Compiling 1 source file to D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\myapp\build
-
-run-cc:
-     [java] Filtering with:class filter.ccimpl.CCFilter
-     [java] Result :[two, tree]
-</pre></div>
-Launching application with only home made jars is straingforward.
-type ant run-hm
-
-<div class="shell"><pre>
-Buildfile: build.xml
-
-resolve:
-:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
-no configuration file found, using default...
-:: configuring :: url = jar:file:/C:/dev/ant/apache-ant-1.6.2/lib/ivy-20060123130642.jar!/fr/jayasoft/ivy/conf/ivysettings.xml
-:: resolving dependencies :: [ jayasoft | myapp | working@SPIDER ]
-        confs: [build, noexternaljar, withexternaljar]
-        found [ jayasoft | filter-framework | 1.3 ] in default
-        [1.3] [ jayasoft | filter-framework | latest.integration ]
-        found [ apache | commons-collections | 3.1 ] in default
-:: resolution report ::
-        ---------------------------------------------------------------------
-        |                  |            modules            ||   artifacts   |
-        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
-        ---------------------------------------------------------------------
-        |       build      |   1   |   1   |   0   |   0   ||   1   |   0   |
-        |   noexternaljar  |   1   |   1   |   0   |   0   ||   2   |   0   |
-        |  withexternaljar |   2   |   1   |   0   |   0   ||   3   |   0   |
-        ---------------------------------------------------------------------
-:: retrieving :: [ jayasoft | myapp ]
-        confs: [build, noexternaljar, withexternaljar]
-        0 artifacts copied, 6 already retrieved
-
-build:
-
-run-hm:
-     [java] Filtering with:class filter.hmimpl.HMFilter
-     [java] Result :[two, tree]
-
-BUILD SUCCESSFUL
-</pre></div>
-Nice we got the same result but we can see that implementation class are different.
-
-<h1>Conclusion</h1>
-<b>You should use configuration as often as possible</b>
-Configurations are very important concept in ivy. They allow you to groups artifacts set by meaning.
-When you write ivy file for projects that are supposed to be reused, use configurations to allow people to get only they what they need without having to specify it by hand using artifact tag in dependency section. 
+	<textarea id="xooki-source">
+This tutorial introduces the use of configuration in ivy files. Ivy configurations is indeed a very important concept. Someone even told me one day that using Ivy without using configurations is like eating a good cheese without touching the glass of Chateau Margaux 1976 you have just aside :-)
+
+More seriously, configurations in ivy can be better understood as views on your module, and you will see how they can be used efficiently here.
+
+Reference documentation on configurations can be found <a href="../../doc/terminology.html">here</a> and <a href="../../doc/ivyfile/configurations.html">here</a>.
+<h1>Introduction</h1>
+Source code available in src/example/configurations/multi-projects.
+We have two projects :
+  - a library that define an api to filter String array and two implementations of this api.
+  - a very small app that use this library.
+  
+The library produces 3 artifacts:
+  - the api jar,
+  - an implementation jar with no external dependency,
+  - an other implementation that needs commons-collection to perform.
+
+The application only need api to compile and can use any of the two implementation at runtime.
+
+<h1>The library project</h1>
+The first project we defined in this tutorial is the filter-framework.
+In order to have a fine grained artifacts publication definition, we defined configurations to map usage other can make of our library.
+<h2>The ivy.xml file</h2>
+
+<div class="ivy-file">
+<code type="xml">
+<ivy-module version="1.3">
+    <info organisation="jayasoft" module="filter-framework"/>
+    <configurations>
+    	<conf name="api"  description="only provide filter framework API"/>
+      <conf name="homemade-impl" extends="api" description="provide a home made implementation of our api"/>
+      <conf name="cc-impl" extends="api" description="provide an implementation that use apache common collection framework"/>
+      <conf name="test" extends="cc-impl" visibility="private" description="for testing our framework"/>
+    </configurations>
+    <publications>
+      <artifact name="filter-api" type="jar"  conf="api" ext="jar"/>
+      <artifact name="filter-hmimpl" type="jar"  conf="homemade-impl" ext="jar"/>
+      <artifact name="filter-ccimpl" type="jar"  conf="cc-impl" ext="jar"/>      
+    </publications>
+    <dependencies>
+        <dependency org="apache" name="commons-collections" rev="3.1" conf="cc-impl->default"/>
+        <dependency org="junit" name="junit" rev="3.8" conf="test->default"/>
+    </dependencies>
+</ivy-module>
+</code> 
+</div>
+<h2>Explanation</h2>
+As you can see we defined 3 public configurations and a private one (defined junit dependency for testing).
+The 2 implementations conf  <b>homemade-impl</b>,  <b>cc-impl</b> extends <b>api</b> configuration so artifacts defined in api will also be required in its extending conf.
+In the publications tag we defined the artifacts we produce (here it's jars) and we affect them a configuration.
+Later when others will use our library they will have a very flexible way to defined what they need.
+
+<h2>See it in action</h2>
+The library project is build using ant. Open a shell in the root directory of the project and type <b>ant</b>.
+<div class="shell"><pre>
+Buildfile: build.xml
+clean:
+resolve:
+:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
+no configuration file found, using default...
+:: configuring :: url = jar:file:/C:/dev/ant/apache-ant-1.6.2/lib/ivy-20060123130642.jar!/fr/jayasoft/ivy/conf/ivysettings.xml
+:: resolving dependencies :: [ jayasoft | filter-framework | working@SPIDER ]
+        confs: [api, homemade-impl, cc-impl, test]
+        found [ apache | commons-collections | 3.1 ] in main
+        found [ junit | junit | 3.8 ] in main
+downloading http://www.ibiblio.org/maven/commons-collections/jars/commons-collections-3.1.jar ................(546kB)
+        [SUCCESSFUL ] [ apache | commons-collections | 3.1 ]/commons-collections.jar[jar] (34320ms)
+downloading http://www.ibiblio.org/maven/junit/jars/junit-3.8.jar ........................... (118kB)
+        [SUCCESSFUL ] [ junit | junit | 3.8 ]/junit.jar[jar] (8462ms)
+:: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |        api       |   0   |   0   |   0   |   0   ||   0   |   0   |
+        |   homemade-impl  |   0   |   0   |   0   |   0   ||   0   |   0   |
+        |      cc-impl     |   1   |   1   |   1   |   0   ||   1   |   1   |
+        |       test       |   2   |   2   |   1   |   0   ||   2   |   2   |
+        ---------------------------------------------------------------------
+:: retrieving :: [ jayasoft | filter-framework ]
+        confs: [api, homemade-impl, cc-impl, test]
+        3 artifacts copied, 0 already retrieved
+
+build:
+    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build
+    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib
+    [javac] Compiling 4 source files to D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build
+      [jar] Building jar: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib\filter-api.jar
+      [jar] Building jar: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib\filter-hmimpl.jar
+      [jar] Building jar: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\distrib\filter-ccimpl.jar
+
+test:
+    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build\test-report
+    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build\test-classes
+    [javac] Compiling 3 source files to D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\filter-framework\build\test-classes
+    [junit] Running filter.ccimpl.CCFilterTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.02 sec
+    [junit] Running filter.hmimpl.HMFilterTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.01 sec
+
+publish:
+:: delivering :: [ jayasoft | filter-framework | working@SPIDER ] :: 1.3 :: release :: Tue Jan 24 10:53:41 CET 2006
+        delivering ivy file to distrib/ivy.xml
+:: publishing :: [ jayasoft | filter-framework | working@SPIDER ]
+        published filter-api to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/jars/filter-api.jar
+        published filter-ccimpl to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/jars/filter-ccimpl.jar
+        published filter-hmimpl to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/jars/filter-hmimpl.jar
+        published ivy to D:\users\mm\.ivy/local/jayasoft/filter-framework/1.3/ivys/ivy.xml
+     [echo] project filter-framework released with version 1.3
+
+BUILD SUCCESSFUL
+</pre></div>
+The ant's default target is publish. 
+This target use ivy to publish our library binaries in a local repository. 
+As we do not specify any repository path the default one is use. ({home.dir}/.ivy/local/jayasoft/filter-framework/)
+Now we are ready to use our library.
+
+<h1>The application project</h1>
+
+Now that we have shipped our fantastic library, we want to use it!
+The tutorial comes with a sample application called myapp. You will find it in the tutorial folder.
+<h2>The ivy.xml file</h2>
+
+<div class="ivy-file">
+<code type="xml">
+<ivy-module version="1.3">
+    <info organisation="jayasoft" module="myapp"/>
+   
+    <configurations>
+      <conf name="build" visibility="private" description="compilation only need api jar" />
+      <conf name="noexternaljar" description="use only company jar" />
+      <conf name="withexternaljar" description="use company jar and third party jars" />    
+    </configurations>
+    
+    <dependencies>
+        <dependency org="jayasoft" name="filter-framework" rev="latest.integration" conf="build->api; noexternaljar->homemade-impl; withexternaljar->cc-impl"/>
+    </dependencies>
+</ivy-module>
+</code> 
+</div>
+<h2>Explanation</h2>
+We create 3 configurations that define the way we want to use the application.
+The build configuration, (as said before) only need api to compile.
+The other configuration are defined for runtime.
+One configuration will only use "home-made" jars, and the second one will use external jars.
+
+We also defined a dependency on the previous library.
+In the dependency we use configuration mapping to match ours and library configurations.
+You can found more information on configuration mapping <a href="../../doc/ivyfile/configurations.html">here</a>
+<ol>
+  <li><b>build->api</b> : here we tell ivy that our <b>build</b> configuration depends on the api configuration of the dependcy</li>
+  <li><b>noexternaljar->homemade-impl</b> : here we tell ivy that our <b>noexternaljar</b> configuration depends on the <b>homemade-impl</b> configuration of the dependcy.</li>
+  <li><b>withexternaljar->cc-impl</b> : here we tell ivy that our <b>withexternaljar</b> configuration depends on the <b>cc-impl</b> configuration of the dependcy</li>
+</ol>
+Note that we never declares any of the dependency artifacts we need in each configuration: it's the dependency module file which declares the published artifacts and which should be used in each configuration.
+
+In the ant buld.xml file we defined a resolve target as follow:
+
+<code type="xml">
+<target name="resolve" description="--> retreive dependencies with ivy">
+	<ivy:retrieve pattern="${ivy.lib.dir}/[conf]/[artifact].[ext]"/>
+</target> 
+</code> 
+
+When we call this target, Ivy will do a resolve using our ivy.xml file in the root folder and will after do retrieve putting all the artifacts in folder for each configuration. Here is how your lib directory should look like after a call to this target:
+<div class="shell"><pre>
+ Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib
+
+01/24/2006  11:19 AM    <REP>          build
+01/24/2006  11:19 AM    <REP>          noexternaljar
+01/24/2006  11:19 AM    <REP>          withexternaljar
+               0 fichier(s)                0 octets
+
+ Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\build
+
+01/24/2006  10:53 AM             1,174 filter-api.jar
+               1 fichier(s)            1,174 octets
+
+ Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\noexternaljar
+
+01/24/2006  10:53 AM             1,174 filter-api.jar
+01/24/2006  10:53 AM             1,030 filter-hmimpl.jar
+               2 fichier(s)            2,204 octets
+
+ Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\withexternaljar
+01/24/2006  10:53 AM           559,366 commons-collections.jar
+01/24/2006  10:53 AM             1,174 filter-api.jar
+01/24/2006  10:53 AM             1,626 filter-ccimpl.jar
+               3 fichier(s)          562,166 octets
+</pre></div>
+As you can see for each configuration we have now a set of jars.
+
+Let's try to launch our app.
+
+<h2>See it in action</h2>
+Use ant to run the application.
+Default ant target is run-cc and will launch application using common collection jar.
+<div class="shell"><pre>
+Buildfile: build.xml
+
+resolve:
+:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
+no configuration file found, using default...
+:: configuring :: url = jar:file:/C:/dev/ant/apache-ant-1.6.2/lib/ivy-20060123130642.jar!/fr/jayasoft/ivy/conf/ivysettings.xml
+:: resolving dependencies :: [ jayasoft | myapp | working@SPIDER ]
+        confs: [build, noexternaljar, withexternaljar]
+        found [ jayasoft | filter-framework | 1.3 ] in local
+        [1.3] [ jayasoft | filter-framework | latest.integration ]
+        found [ apache | commons-collections | 3.1 ] in default
+downloading D:\users\mm\.ivy\local\jayasoft\filter-framework\1.3\jars\filter-ccimpl.jar .... (1kB)
+        [SUCCESSFUL ] [ jayasoft | filter-framework | 1.3 ]/filter-ccimpl.jar[jar] (0ms)
+downloading D:\users\mm\.ivy\local\jayasoft\filter-framework\1.3\jars\filter-api.jar .... (1kB)
+        [SUCCESSFUL ] [ jayasoft | filter-framework | 1.3 ]/filter-api.jar[jar] (0ms)
+downloading D:\users\mm\.ivy\local\jayasoft\filter-framework\1.3\jars\filter-hmimpl.jar .... (1kB)
+        [SUCCESSFUL ] [ jayasoft | filter-framework | 1.3 ]/filter-hmimpl.jar[jar] (10ms)
+:: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |       build      |   1   |   1   |   1   |   0   ||   1   |   1   |
+        |   noexternaljar  |   1   |   1   |   1   |   0   ||   2   |   2   |
+        |  withexternaljar |   2   |   1   |   1   |   0   ||   3   |   2   |
+        ---------------------------------------------------------------------
+:: retrieving :: [ jayasoft | myapp ]
+        confs: [build, noexternaljar, withexternaljar]
+        6 artifacts copied, 0 already retrieved
+
+build:
+    [mkdir] Created dir: D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\myapp\build
+    [javac] Compiling 1 source file to D:\svn\jayasoft\projects\tools\ivy\src\example\configurations\multi-projects\myapp\build
+
+run-cc:
+     [java] Filtering with:class filter.ccimpl.CCFilter
+     [java] Result :[two, tree]
+</pre></div>
+Launching application with only home made jars is straingforward.
+type ant run-hm
+
+<div class="shell"><pre>
+Buildfile: build.xml
+
+resolve:
+:: Ivy 20060123130642 - 20060123130642 :: http://ivy.jayasoft.org/ ::
+no configuration file found, using default...
+:: configuring :: url = jar:file:/C:/dev/ant/apache-ant-1.6.2/lib/ivy-20060123130642.jar!/fr/jayasoft/ivy/conf/ivysettings.xml
+:: resolving dependencies :: [ jayasoft | myapp | working@SPIDER ]
+        confs: [build, noexternaljar, withexternaljar]
+        found [ jayasoft | filter-framework | 1.3 ] in default
+        [1.3] [ jayasoft | filter-framework | latest.integration ]
+        found [ apache | commons-collections | 3.1 ] in default
+:: resolution report ::
+        ---------------------------------------------------------------------
+        |                  |            modules            ||   artifacts   |
+        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+        ---------------------------------------------------------------------
+        |       build      |   1   |   1   |   0   |   0   ||   1   |   0   |
+        |   noexternaljar  |   1   |   1   |   0   |   0   ||   2   |   0   |
+        |  withexternaljar |   2   |   1   |   0   |   0   ||   3   |   0   |
+        ---------------------------------------------------------------------
+:: retrieving :: [ jayasoft | myapp ]
+        confs: [build, noexternaljar, withexternaljar]
+        0 artifacts copied, 6 already retrieved
+
+build:
+
+run-hm:
+     [java] Filtering with:class filter.hmimpl.HMFilter
+     [java] Result :[two, tree]
+
+BUILD SUCCESSFUL
+</pre></div>
+Nice we got the same result but we can see that implementation class are different.
+
+<h1>Conclusion</h1>
+<b>You should use configuration as often as possible</b>
+Configurations are very important concept in ivy. They allow you to groups artifacts set by meaning.
+When you write ivy file for projects that are supposed to be reused, use configurations to allow people to get only they what they need without having to specify it by hand using artifact tag in dependency section. 
 	</textarea>
 <script type="text/javascript">xooki.postProcess();</script>
 </body>