ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From maart...@apache.org
Subject svn commit: r1005260 [36/45] - in /ant/ivy/site/target/history/2.2.0: ./ configuration/ configuration/caches/ configuration/macrodef/ configuration/namespace/ dev/ images/ ivyfile/ js/ resolver/ samples/ settings/ settings/caches/ settings/macrodef/ se...
Date Wed, 06 Oct 2010 21:25:35 GMT
Added: ant/ivy/site/target/history/2.2.0/tutorial/conf.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/tutorial/conf.html?rev=1005260&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0/tutorial/conf.html (added)
+++ ant/ivy/site/target/history/2.2.0/tutorial/conf.html Wed Oct  6 21:25:29 2010
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<html>
+<head>
+	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
+	<script type="text/javascript">var xookiConfig = {level: 1};</script>	
+	
+
+<title>Using Ivy Module Configurations | Apache Ivy</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <link rel="stylesheet" type="text/css" href="../style/style.css" />
+  <script src="../js/jquery.pack.js" type="text/javascript"></script>
+  <script src="../js/jquery.treeview.js" type="text/javascript"></script>
+  <script type="text/javascript">
+  $(document).ready(function(){$("#treemenu").Treeview({speed: "fast",store: true});});
+  </script>
+
+<script language="javascript" type="text/javascript">xooki = {u: function(url) {return "../xooki/"+url;}};</script>
+</head>
+<body>
+
+<div id="body">
+<table id="header" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td id="home" width="30%"><a href="http://ant.apache.org/"
+			title="Apache Ant"><img src="../images/ant-group-logo.gif" alt="Apache Ant"
+			border="0" /></a></td>
+
+		<td class="product" width="70%" align="right" valign="middle"><img
+			src="../images/logo.png" alt="ivy" border="0" /></td>
+	</tr>
+</table>
+
+<table id="top-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td>
+
+        <div style="float:right;margin: 0 10px;">
+        <!-- Google CSE Search Box Begins -->
+  <form id="searchbox_014292259695392975429:5y6qypnrni8" action="http://ant.apache.org/ivy/search.html">
+    <input type="hidden" name="cx" value="014292259695392975429:5y6qypnrni8" />
+    <input type="hidden" name="cof" value="FORID:11" />
+    <input name="q" type="text" size="30" />
+    <input type="submit" name="sa" value="Search" />
+  </form>
+  <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_014292259695392975429%3A5y6qypnrni8"></script>
+<!-- Google CSE Search Box Ends -->
+        </div>
+
+		<div id="navcontainer">
+		<a href="http://ant.apache.org/">Apache Ant</a> &gt; <a href="http://ant.apache.org/ivy/">Ivy</a> &gt; <a href="http://ant.apache.org/ivy/history.html">History</a> &gt; <span class="breadCrumb"><a href="../index.html" >Documentation (2.2.0)</a> &gt; <a href="../tutorial.html" >Tutorials</a> &gt; <a href="../tutorial/conf.html" class="current">Using Ivy Module Configurations</a></span>
+		</div>
+		</td>
+	</tr>
+
+</table>
+
+<table id="content" border="0" cellpadding="0" cellspacing="0"
+	width="100%">
+	<tr>
+		<td id="sidebar-left">
+		<div class="block block-book" id="block-book-0">
+		<h2>Ivy</h2>
+
+		<div class="content"><ul id="treemenu" class="treeview"><li id="xooki-index" class="submenu"><a href="../index.html" >Documentation (2.2.0)</a><ul class="open"><li id="xooki-release-notes"><a href="../release-notes.html" >Release Notes</a></li><li id="xooki-tutorial" class="submenu"><a href="../tutorial.html" >Tutorials</a><ul class="open"><li id="xooki-tutorial/start"><a href="../tutorial/start.html" >Quick Start</a></li><li id="xooki-tutorial/defaultconf"><a href="../tutorial/defaultconf.html" >Adjusting default settings</a></li><li id="xooki-tutorial/multiple"><a href="../tutorial/multiple.html" >Multiple Resolvers</a></li><li id="xooki-tutorial/dual"><a href="../tutorial/dual.html" >Dual Resolver</a></li><li id="xooki-tutorial/dependence"><a href="../tutorial/dependence.html" >Project dependencies</a></li><li id="xooki-tutorial/multiproject"><a href="../tutorial/multiproject.html" >Using Ivy in multiple projects environment</a></li><li id="xooki-tutorial/conf"><a href=
 "../tutorial/conf.html" class="current">Using Ivy Module Configurations</a></li><li id="xooki-tutorial/build-repository" class="submenu"><a href="../tutorial/build-repository.html" >Building a repository</a><ul class="closed"><li id="xooki-tutorial/build-repository/basic"><a href="../tutorial/build-repository/basic.html" >Basic repository copy</a></li><li id="xooki-tutorial/build-repository/advanced"><a href="../tutorial/build-repository/advanced.html" >Using namespaces</a></li></ul></li><li id="xooki-moreexamples"><a href="../moreexamples.html" >More examples</a></li></ul></li><li id="xooki-reference" class="submenu"><a href="../reference.html" >Reference</a><ul class="closed"><li id="xooki-intro" class="submenu">Introduction<ul class="closed"><li id="xooki-terminology"><a href="../terminology.html" >Terminology</a></li><li id="xooki-concept"><a href="../concept.html" >Main Concepts</a></li><li id="xooki-textual"><a href="../textual.html" >Text Conventions</a></li><li id="x
 ooki-principle"><a href="../principle.html" >How does it work ?</a></li><li id="xooki-bestpractices"><a href="../bestpractices.html" >Best practices</a></li><li id="xooki-install"><a href="../install.html" >Installation</a></li></ul></li><li id="xooki-settings" class="submenu"><a href="../settings.html" >Settings Files</a><ul class="closed"><li id="xooki-settings/property"><a href="../settings/property.html" >property</a></li><li id="xooki-settings/properties"><a href="../settings/properties.html" >properties</a></li><li id="xooki-settings/settings"><a href="../settings/settings.html" >settings</a></li><li id="xooki-settings/include"><a href="../settings/include.html" >include</a></li><li id="xooki-settings/classpath"><a href="../settings/classpath.html" >classpath</a></li><li id="xooki-settings/typedef"><a href="../settings/typedef.html" >typedef</a></li><li id="xooki-settings/credentials"><a href="../settings/credentials.html" >credentials</a></li><li id="xooki-settings/si
 gners"><a href="../settings/signers.html" >signers</a></li><li id="xooki-settings/lock-strategies"><a href="../settings/lock-strategies.html" >lock-strategies</a></li><li id="xooki-settings/caches" class="submenu"><a href="../settings/caches.html" >caches</a><ul class="closed"><li id="xooki-settings/caches/cache" class="submenu"><a href="../settings/caches/cache.html" >cache</a><ul class="closed"><li id="xooki-settings/caches/ttl"><a href="../settings/caches/ttl.html" >ttl</a></li></ul></li></ul></li><li id="xooki-settings/latest-strategies"><a href="../settings/latest-strategies.html" >latest-strategies</a></li><li id="xooki-settings/parsers"><a href="../settings/parsers.html" >parsers</a></li><li id="xooki-settings/namespaces" class="submenu"><a href="../settings/namespaces.html" >namespaces</a><ul class="closed"><li id="xooki-settings/namespace" class="submenu"><a href="../settings/namespace.html" >namespace</a><ul class="closed"><li id="xooki-settings/namespace/rule" cla
 ss="submenu"><a href="../settings/namespace/rule.html" >rule</a><ul class="closed"><li id="xooki-settings/namespace/fromtosystem" class="submenu"><a href="../settings/namespace/fromtosystem.html" >fromsystem / tosystem</a><ul class="closed"><li id="xooki-settings/namespace/src"><a href="../settings/namespace/src.html" >src</a></li><li id="xooki-settings/namespace/dest"><a href="../settings/namespace/dest.html" >dest</a></li></ul></li></ul></li></ul></li></ul></li><li id="xooki-settings/macrodef" class="submenu"><a href="../settings/macrodef.html" >macrodef</a><ul class="closed"><li id="xooki-settings/macrodef/attribute"><a href="../settings/macrodef/attribute.html" >attribute</a></li></ul></li><li id="xooki-settings/resolvers" class="submenu"><a href="../settings/resolvers.html" >resolvers</a><ul class="closed"><li id="xooki-resolver/ivyrep"><a href="../resolver/ivyrep.html" >IvyRep Resolver</a></li><li id="xooki-resolver/ibiblio"><a href="../resolver/ibiblio.html" >IBiblio 
 Resolver</a></li><li id="xooki-resolver/packager"><a href="../resolver/packager.html" >Packager resolver</a></li><li id="xooki-resolver/filesystem"><a href="../resolver/filesystem.html" >File System resolver</a></li><li id="xooki-resolver/url"><a href="../resolver/url.html" >Url Resolver</a></li><li id="xooki-resolver/chain"><a href="../resolver/chain.html" >Chain Resolver</a></li><li id="xooki-resolver/dual"><a href="../resolver/dual.html" >Dual resolver</a></li><li id="xooki-resolver/sftp"><a href="../resolver/sftp.html" >sftp resolver</a></li><li id="xooki-resolver/ssh"><a href="../resolver/ssh.html" >ssh resolver</a></li><li id="xooki-resolver/vfs"><a href="../resolver/vfs.html" >vfs</a></li></ul></li><li id="xooki-settings/conflict-managers"><a href="../settings/conflict-managers.html" >conflict-managers</a></li><li id="xooki-settings/modules" class="submenu"><a href="../settings/modules.html" >modules</a><ul class="closed"><li id="xooki-settings/module"><a href="../set
 tings/module.html" >module</a></li></ul></li><li id="xooki-settings/outputters"><a href="../settings/outputters.html" >outputters</a></li><li id="xooki-settings/statuses" class="submenu"><a href="../settings/statuses.html" >statuses</a><ul class="closed"><li id="xooki-settings/status"><a href="../settings/status.html" >status</a></li></ul></li><li id="xooki-settings/triggers"><a href="../settings/triggers.html" >triggers</a></li><li id="xooki-settings/version-matchers"><a href="../settings/version-matchers.html" >version-matchers</a></li></ul></li><li id="xooki-ivyfile" class="submenu"><a href="../ivyfile.html" >Ivy Files</a><ul class="closed"><li id="xooki-ivyfile/info" class="submenu"><a href="../ivyfile/info.html" >info</a><ul class="closed"><li id="xooki-ivyfile/extends"><a href="../ivyfile/extends.html" >extends</a></li><li id="xooki-ivyfile/license"><a href="../ivyfile/license.html" >license</a></li><li id="xooki-ivyfile/ivyauthor"><a href="../ivyfile/ivyauthor.html" >
 ivyauthor</a></li><li id="xooki-ivyfile/repository"><a href="../ivyfile/repository.html" >repository</a></li><li id="xooki-ivyfile/description"><a href="../ivyfile/description.html" >description</a></li></ul></li><li id="xooki-ivyfile/configurations" class="submenu"><a href="../ivyfile/configurations.html" >configurations</a><ul class="closed"><li id="xooki-ivyfile/conf"><a href="../ivyfile/conf.html" >conf</a></li><li id="xooki-ivyfile/include"><a href="../ivyfile/include.html" >include</a></li></ul></li><li id="xooki-ivyfile/publications" class="submenu"><a href="../ivyfile/publications.html" >publications</a><ul class="closed"><li id="xooki-ivyfile/artifact" class="submenu"><a href="../ivyfile/artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/artifact-conf"><a href="../ivyfile/artifact-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/dependencies" class="submenu"><a href="../ivyfile/dependencies.html" >dependencies</a><ul class="closed
 "><li id="xooki-ivyfile/dependency" class="submenu"><a href="../ivyfile/dependency.html" >dependency</a><ul class="closed"><li id="xooki-ivyfile/dependency-conf" class="submenu"><a href="../ivyfile/dependency-conf.html" >conf</a><ul class="closed"><li id="xooki-ivyfile/mapped"><a href="../ivyfile/mapped.html" >mapped</a></li></ul></li><li id="xooki-ivyfile/dependency-artifact" class="submenu"><a href="../ivyfile/dependency-artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/dependency-artifact-conf"><a href="../ivyfile/dependency-artifact-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/artifact-exclude" class="submenu"><a href="../ivyfile/artifact-exclude.html" >exclude</a><ul class="closed"><li id="xooki-ivyfile/artifact-exclude-conf"><a href="../ivyfile/artifact-exclude-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/dependency-include" class="submenu"><a href="../ivyfile/dependency-include.html" >include</a><ul class="closed"><li id="xoo
 ki-ivyfile/dependency-include-conf"><a href="../ivyfile/dependency-include-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/exclude"><a href="../ivyfile/exclude.html" >exclude</a></li><li id="xooki-ivyfile/override"><a href="../ivyfile/override.html" >override</a></li><li id="xooki-ivyfile/conflict"><a href="../ivyfile/conflict.html" >conflict</a></li></ul></li><li id="xooki-ivyfile/conflicts" class="submenu"><a href="../ivyfile/conflicts.html" >conflicts</a><ul class="closed"><li id="xooki-ivyfile/manager"><a href="../ivyfile/manager.html" >manager</a></li></ul></li></ul></li><li id="xooki-ant" class="submenu"><a href="../ant.html" >Ant Tasks</a><ul class="closed"><li id="xooki-use/artifactproperty"><a href="../use/artifactproperty.html" >artifactproperty</a></li><li id="xooki-use/artifactreport"><a href="../use/artifactreport.html" >artifactreport</a></li><li id="xooki-use/buildlist"><a href="../use/buildlist.html" >buildlist</a></li><li id="xooki-use/bui
 ldnumber"><a href="../use/buildnumber.html" >buildnumber</a></li><li id="xooki-use/cachefileset"><a href="../use/cachefileset.html" >cachefileset</a></li><li id="xooki-use/cachepath"><a href="../use/cachepath.html" >cachepath</a></li><li id="xooki-use/cleancache"><a href="../use/cleancache.html" >cleancache</a></li><li id="xooki-use/configure"><a href="../use/configure.html" >configure</a></li><li id="xooki-use/deliver"><a href="../use/deliver.html" >deliver</a></li><li id="xooki-use/findrevision"><a href="../use/findrevision.html" >findrevision</a></li><li id="xooki-use/info"><a href="../use/info.html" >info</a></li><li id="xooki-use/install"><a href="../use/install.html" >install</a></li><li id="xooki-use/listmodules"><a href="../use/listmodules.html" >listmodules</a></li><li id="xooki-use/makepom"><a href="../use/makepom.html" >makepom</a></li><li id="xooki-use/postresolvetask"><a href="../use/postresolvetask.html" >post resolve tasks</a></li><li id="xooki-use/publish"><a
  href="../use/publish.html" >publish</a></li><li id="xooki-use/repreport"><a href="../use/repreport.html" >repreport</a></li><li id="xooki-use/resolve"><a href="../use/resolve.html" >resolve</a></li><li id="xooki-use/retrieve"><a href="../use/retrieve.html" >retrieve</a></li><li id="xooki-use/report" class="submenu"><a href="../use/report.html" >report</a><ul class="closed"><li id="xooki-yed"><a href="../yed.html" >Using yEd to layout report graphs</a></li></ul></li><li id="xooki-use/settings"><a href="../use/settings.html" >settings</a></li><li id="xooki-use/var"><a href="../use/var.html" >var</a></li></ul></li><li id="xooki-standalone"><a href="../standalone.html" >Using standalone</a></li></ul></li><li id="xooki-dev" class="submenu"><a href="../dev.html" >Developer doc</a><ul class="closed"><li id="xooki-extend"><a href="../extend.html" >Extending Ivy</a></li><li id="xooki-dev/makerelease"><a href="../dev/makerelease.html" >Making a release</a></li><li id="xooki-dev/updat
 esite"><a href="../dev/updatesite.html" >Updating the updatesite</a></li></ul></li></ul></li></ul></div>
+
+		<center><iframe src="http://www.apache.org/ads/buttonbar.html"
+                         style="border-width:0;" frameborder="0" scrolling="no"
+                         width="135" height="265"></iframe>
+                </center>
+                
+		</div>
+
+		</td>
+		
+		<td valign="top">
+		<div id="main">
+
+		<h1 class="title">Using Ivy Module Configurations</h1>
+            <br class="xooki-br"/>This tutorial introduces the use of module configurations in ivy files. Ivy module configurations are 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 poured :-)<br class="xooki-br"/><br class="xooki-br"/>More seriously, configurations in Ivy can be better understood as views on your module, and you will see how they can be used effectively here.<br class="xooki-br"/><br class="xooki-br"/>Reference documentation on configurations can be found <a href="../terminology.html">here</a> and <a href="../ivyfile/configurations.html">here</a>.<br class="xooki-br"/><h1>Introduction</h1>
+Source code is available in <tt>src/example/configurations/multi-projects</tt>.<br class="xooki-br"/>We have two projects :<br class="xooki-br"/>  - filter-framework is a library that defines an api to filter String arrays and two implementations of this api.<br class="xooki-br"/>  - myapp is a very small app that uses filter-framework.<br class="xooki-br"/>  <br class="xooki-br"/>The filter-framework library project produces 3 artifacts:<br class="xooki-br"/>  - the api jar,<br class="xooki-br"/>  - an implementation jar with no external dependencies,<br class="xooki-br"/>  - a second implementation jar that needs commons-collections to perform.<br class="xooki-br"/><br class="xooki-br"/>The application only needs the api jar to compile and can use either of the two implementations at runtime.<br class="xooki-br"/><br class="xooki-br"/><h1>The library project</h1>
+The first project we'll look at in this tutorial is filter-framework. In order to have a fine-grained artifacts publication definition, we defined several configurations, each which maps to a set of artifacts that other projects can make use of.<br class="xooki-br"/><h2>The ivy.xml file</h2>
+
+<div class="ivy-file">
+<pre>
+&lt;ivy-module version="1.0"&gt;<br class="xooki-br"/>    &lt;info organisation="org.apache" module="filter-framework"/&gt;<br class="xooki-br"/>    &lt;configurations&gt;<br class="xooki-br"/>    	&lt;conf name="api"  description="only provide filter framework API"/&gt;<br class="xooki-br"/>    	&lt;conf name="homemade-impl" extends="api" description="provide a home made implementation of our api"/&gt;<br class="xooki-br"/>    	&lt;conf name="cc-impl" extends="api" description="provide an implementation that use apache common collection framework"/&gt;<br class="xooki-br"/>    	&lt;conf name="test" extends="cc-impl" visibility="private" description="for testing our framework"/&gt;<br class="xooki-br"/>    &lt;/configurations&gt;<br class="xooki-br"/>    &lt;publications&gt;<br class="xooki-br"/>    	&lt;artifact name="filter-api" type="jar"  conf="api" ext="jar"/&gt;<br class="xooki-br"/>    	&lt;artifact name="filter-hmimpl" type="jar"  conf="homemade-impl" ext="jar"/&gt;<
 br class="xooki-br"/>    	&lt;artifact name="filter-ccimpl" type="jar"  conf="cc-impl" ext="jar"/&gt;    	<br class="xooki-br"/>    &lt;/publications&gt;<br class="xooki-br"/>    &lt;dependencies&gt;<br class="xooki-br"/>        &lt;dependency org="commons-collections" name="commons-collections" rev="3.1" conf="cc-impl-&gt;default"/&gt;<br class="xooki-br"/>        &lt;dependency org="junit" name="junit" rev="3.8" conf="test-&gt;default"/&gt;<br class="xooki-br"/>    &lt;/dependencies&gt;<br class="xooki-br"/>&lt;/ivy-module&gt;
+</pre> 
+</div>
+<h2>Explanation</h2>
+As you can see, we defined 4 configurations, with 3 being public and 1 private. (the  junit dependency for testing).<br class="xooki-br"/>The 2 implementation configurations, <b>homemade-impl</b> and <b>cc-impl</b> extend the <b>api</b> configuration so that all artifacts defined in <b>api</b> will also be part of the extending configuration.<br class="xooki-br"/><br class="xooki-br"/>In the publications tag, we defined the artifacts we produce (jars in this case) and we assign them to a configuration. When others use our library they will have a flexible way to ask for what they need.<br class="xooki-br"/><br class="xooki-br"/><h2>See it in action</h2>
+The filter-framework project is built using Ant. Open a shell in the root directory of the project and type <tt>ant</tt>.
+<div class="shell"><pre>
+[ivy@apache:/ivy/configurations/multi-projects/filter-framework]$ ant 
+Buildfile: /ivy/configurations/multi-projects/filter-framework/build.xml
+
+clean:
+
+resolve:
+[ivy:retrieve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
+[ivy:retrieve] :: loading settings :: url = jar:file:///home/ivy/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+[ivy:retrieve] :: resolving dependencies :: org.apache#filter-framework;working@apache
+[ivy:retrieve] 	confs: [api, homemade-impl, cc-impl, test]
+[ivy:retrieve] 	found commons-collections#commons-collections;3.1 in public
+[ivy:retrieve] 	found junit#junit;3.8 in public
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/commons-collections/commons-collections/3.1/commons-collections-3.1.jar ...
+[ivy:retrieve] ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
+[ivy:retrieve] ...................................................................................................................................................................................................................................................................................................................................................................................... (546kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] commons-collections#commons-collections;3.1!commons-collections.jar (3432ms)
+[ivy:retrieve] downloading http://repo1.maven.org/maven2/junit/junit/3.8/junit-3.8.jar ...
+[ivy:retrieve] .......................................................................................................................................................................................................................................... (118kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] junit#junit;3.8!junit.jar (2013ms)
+[ivy:retrieve] :: resolution report :: resolve 7286ms :: artifacts dl 5460ms
+	---------------------------------------------------------------------
+	|                  |            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   |   2   |   0   ||   2   |   2   |
+	---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache#filter-framework
+[ivy:retrieve] 	confs: [api, homemade-impl, cc-impl, test]
+[ivy:retrieve] 	3 artifacts copied, 0 already retrieved (1211kB/63ms)
+
+build:
+    [mkdir] Created dir: /ivy/configurations/multi-projects/filter-framework/build
+    [mkdir] Created dir: /ivy/configurations/multi-projects/filter-framework/distrib
+    [javac] /ivy/configurations/multi-projects/filter-framework/build.xml:57: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
+    [javac] Compiling 4 source files to /ivy/configurations/multi-projects/filter-framework/build
+    [javac] Note: Some input files use unchecked or unsafe operations.
+    [javac] Note: Recompile with -Xlint:unchecked for details.
+      [jar] Building jar: /ivy/configurations/multi-projects/filter-framework/distrib/filter-api.jar
+      [jar] Building jar: /ivy/configurations/multi-projects/filter-framework/distrib/filter-hmimpl.jar
+      [jar] Building jar: /ivy/configurations/multi-projects/filter-framework/distrib/filter-ccimpl.jar
+
+test:
+    [mkdir] Created dir: /ivy/configurations/multi-projects/filter-framework/build/test-report
+    [mkdir] Created dir: /ivy/configurations/multi-projects/filter-framework/build/test-classes
+    [javac] /ivy/configurations/multi-projects/filter-framework/build.xml:82: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
+    [javac] Compiling 3 source files to /ivy/configurations/multi-projects/filter-framework/build/test-classes
+    [junit] Running filter.ccimpl.CCFilterTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0,109 sec
+    [junit] Running filter.hmimpl.HMFilterTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0,093 sec
+
+publish:
+[ivy:publish] :: delivering :: org.apache#filter-framework;working@apache :: 1.3 :: release :: Thu Sep 23 23:16:19 CEST 2010
+[ivy:publish] 	delivering ivy file to /ivy/configurations/multi-projects/filter-framework/distrib/ivy.xml
+[ivy:publish] :: publishing :: org.apache#filter-framework
+[ivy:publish] 	published filter-api to /home/ivy/.ivy2/local/org.apache/filter-framework/1.3.part/jars/filter-api.jar
+[ivy:publish] 	published filter-hmimpl to /home/ivy/.ivy2/local/org.apache/filter-framework/1.3.part/jars/filter-hmimpl.jar
+[ivy:publish] 	published filter-ccimpl to /home/ivy/.ivy2/local/org.apache/filter-framework/1.3.part/jars/filter-ccimpl.jar
+[ivy:publish] 	published ivy to /home/ivy/.ivy2/local/org.apache/filter-framework/1.3.part/ivys/ivy.xml
+[ivy:publish] 	publish commited: moved /home/ivy/.ivy2/local/org.apache/filter-framework/1.3.part 
+[ivy:publish] 		to /home/ivy/.ivy2/local/org.apache/filter-framework/1.3
+     [echo] project filter-framework released with version 1.3
+
+BUILD SUCCESSFUL
+Total time: 18 seconds
+
+</pre></div>
+The Ant default target is publish. This target uses Ivy to publish our library binaries to a local repository. Since we do not specify any repository path, the default one is used. (<tt>${home.dir}/.ivy2/local/org.apache/filter-framework/</tt>) At this point, we are ready to use our library.<br class="xooki-br"/><br class="xooki-br"/><h1>The application project</h1>
+
+Now that we have shipped (published) our fantastic filter library, we want to use it! The tutorial comes with a sample application called myapp.<br class="xooki-br"/><h2>The <tt>ivy.xml</tt> file</h2>
+
+<div class="ivy-file">
+<pre>
+&lt;ivy-module version="1.0"&gt;<br class="xooki-br"/>    &lt;info organisation="org.apache" module="myapp"/&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;configurations&gt;<br class="xooki-br"/>       	&lt;conf name="build" visibility="private" description="compilation only need api jar" /&gt;<br class="xooki-br"/>    	&lt;conf name="noexternaljar" description="use only company jar" /&gt;<br class="xooki-br"/>    	&lt;conf name="withexternaljar" description="use company jar and third party jars" /&gt;    <br class="xooki-br"/>    &lt;/configurations&gt;<br class="xooki-br"/>    <br class="xooki-br"/>    &lt;dependencies&gt;<br class="xooki-br"/>        &lt;dependency org="org.apache" name="filter-framework" rev="latest.integration" conf="build-&gt;api; noexternaljar-&gt;homemade-impl; withexternaljar-&gt;cc-impl"/&gt;<br class="xooki-br"/>    &lt;/dependencies&gt;<br class="xooki-br"/>&lt;/ivy-module&gt;
+</pre> 
+</div>
+<h2>Explanation</h2>
+We create 3 configurations that define the different ways we want to use the application. The <b>build</b> configuration defines the compile-time dependencies, and thus only needs the api conf from the filter-framework project. The other two configurations define runtime dependencies. One will only use our "home-made" jar, and the other will use an external jar.<br class="xooki-br"/><br class="xooki-br"/>We also defined a dependency on our previously built library. In this dependency, we use configuration mappings to match ours with the dependency's configurations. You can find more information about configuration mapping <a href="../ivyfile/configurations.html">here</a><br class="xooki-br"/><ol>
+  <li><b>build->api</b> : here we tell Ivy that our <b>build</b> configuration depends on the <b>api</b> configuration of the dependency</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 dependency.</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 dependency</li>
+</ol>
+Note that we never declare any of the dependency's artifacts we need in each configuration: it's the dependency module's ivy file which declares the published artifacts and which should be used in each configuration.<br class="xooki-br"/><br class="xooki-br"/>In the Ant <tt>build.xml</tt> file, we defined a 'resolve' target as follow:<br class="xooki-br"/>
+<pre>
+&lt;target name="resolve" description="--&gt; retreive dependencies with ivy"&gt;<br class="xooki-br"/>    &lt;ivy:retrieve pattern="${ivy.lib.dir}/[conf]/[artifact].[ext]"/&gt;<br class="xooki-br"/>&lt;/target&gt;    
+</pre> 
+
+When we call this target, Ivy will do a resolve using our <tt>ivy.xml</tt> file in the root folder and then retrieve all the artifacts. The artifacts retrieved are kept in separate folders according to the configurations they belong to. Here is how your lib directory should look after a call to this target:
+<div class="shell"><pre>
+ Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib<br class="xooki-br"/><br class="xooki-br"/>01/24/2006  11:19 AM    <REP>          build<br class="xooki-br"/>01/24/2006  11:19 AM    <REP>          noexternaljar<br class="xooki-br"/>01/24/2006  11:19 AM    <REP>          withexternaljar<br class="xooki-br"/>               0 fichier(s)                0 octets<br class="xooki-br"/><br class="xooki-br"/> Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\build<br class="xooki-br"/><br class="xooki-br"/>01/24/2006  10:53 AM             1,174 filter-api.jar<br class="xooki-br"/>               1 fichier(s)            1,174 octets<br class="xooki-br"/><br class="xooki-br"/> Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\noexternaljar<br class="xooki-br"/><br class="xooki-br"/>01/24/2006  10:53 AM             1,174 filter-api.jar<br class="xooki-br"/>01/24/2006  10:53 AM             1,030 filter-hmimpl.jar<br cl
 ass="xooki-br"/>               2 fichier(s)            2,204 octets<br class="xooki-br"/><br class="xooki-br"/> Repertoire de D:\ivy\src\example\configurations\multi-projects\myapp\lib\withexternaljar<br class="xooki-br"/>01/24/2006  10:53 AM           559,366 commons-collections.jar<br class="xooki-br"/>01/24/2006  10:53 AM             1,174 filter-api.jar<br class="xooki-br"/>01/24/2006  10:53 AM             1,626 filter-ccimpl.jar<br class="xooki-br"/>               3 fichier(s)          562,166 octets
+</pre></div>
+As you can see, for each configuration we have now a set of jars.<br class="xooki-br"/><br class="xooki-br"/>Let's try to launch our app.<br class="xooki-br"/><br class="xooki-br"/><h2>See it in action</h2>
+Use Ant to run the application. The default Ant target is <i>run-cc</i> and will launch the application using the Apache commons-collections implementation.
+<div class="shell"><pre>
+[ivy@apache:/ivy/configurations/multi-projects/myapp]$ ant 
+Buildfile: /ivy/configurations/multi-projects/myapp/build.xml
+
+resolve:
+[ivy:retrieve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
+[ivy:retrieve] :: loading settings :: url = jar:file:///home/ivy/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+[ivy:retrieve] :: resolving dependencies :: org.apache#myapp;working@apache
+[ivy:retrieve] 	confs: [build, noexternaljar, withexternaljar]
+[ivy:retrieve] 	found org.apache#filter-framework;1.3 in local
+[ivy:retrieve] 	[1.3] org.apache#filter-framework;latest.integration
+[ivy:retrieve] 	found commons-collections#commons-collections;3.1 in public
+[ivy:retrieve] downloading /home/ivy/.ivy2/local/org.apache/filter-framework/1.3/jars/filter-ccimpl.jar ...
+[ivy:retrieve] .. (1kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] org.apache#filter-framework;1.3!filter-ccimpl.jar (16ms)
+[ivy:retrieve] downloading /home/ivy/.ivy2/local/org.apache/filter-framework/1.3/jars/filter-hmimpl.jar ...
+[ivy:retrieve] .. (1kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] org.apache#filter-framework;1.3!filter-hmimpl.jar (15ms)
+[ivy:retrieve] downloading /home/ivy/.ivy2/local/org.apache/filter-framework/1.3/jars/filter-api.jar ...
+[ivy:retrieve] .. (1kB)
+[ivy:retrieve] .. (0kB)
+[ivy:retrieve] 	[SUCCESSFUL ] org.apache#filter-framework;1.3!filter-api.jar (31ms)
+[ivy:retrieve] :: resolution report :: resolve 156ms :: artifacts dl 62ms
+	---------------------------------------------------------------------
+	|                  |            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   |
+	---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache#myapp
+[ivy:retrieve] 	confs: [build, noexternaljar, withexternaljar]
+[ivy:retrieve] 	6 artifacts copied, 0 already retrieved (552kB/94ms)
+
+build:
+    [mkdir] Created dir: /ivy/configurations/multi-projects/myapp/build
+    [javac] /ivy/configurations/multi-projects/myapp/build.xml:56: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
+    [javac] Compiling 1 source file to /ivy/configurations/multi-projects/myapp/build
+
+run-cc:
+     [java] Filtering with:class filter.ccimpl.CCFilter
+     [java] Result :[two, tree]
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+
+</pre></div>
+Launching the application using the homemade implementation is also straightforward.<br class="xooki-br"/>type <tt>ant run-hm</tt>
+
+<div class="shell"><pre>
+[ivy@apache:/ivy/configurations/multi-projects/myapp]$ ant run-hm
+Buildfile: /ivy/configurations/multi-projects/myapp/build.xml
+
+resolve:
+[ivy:retrieve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
+[ivy:retrieve] :: loading settings :: url = jar:file:///home/ivy/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
+[ivy:retrieve] :: resolving dependencies :: org.apache#myapp;working@apache
+[ivy:retrieve] 	confs: [build, noexternaljar, withexternaljar]
+[ivy:retrieve] 	found org.apache#filter-framework;1.3 in local
+[ivy:retrieve] 	[1.3] org.apache#filter-framework;latest.integration
+[ivy:retrieve] 	found commons-collections#commons-collections;3.1 in public
+[ivy:retrieve] :: resolution report :: resolve 156ms :: artifacts dl 0ms
+	---------------------------------------------------------------------
+	|                  |            modules            ||   artifacts   |
+	|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
+	---------------------------------------------------------------------
+	|       build      |   1   |   0   |   0   |   0   ||   1   |   0   |
+	|   noexternaljar  |   1   |   0   |   0   |   0   ||   2   |   0   |
+	|  withexternaljar |   2   |   0   |   0   |   0   ||   3   |   0   |
+	---------------------------------------------------------------------
+[ivy:retrieve] :: retrieving :: org.apache#myapp
+[ivy:retrieve] 	confs: [build, noexternaljar, withexternaljar]
+[ivy:retrieve] 	0 artifacts copied, 6 already retrieved (0kB/31ms)
+
+build:
+    [javac] /ivy/configurations/multi-projects/myapp/build.xml:56: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
+
+run-hm:
+     [java] Filtering with:class filter.hmimpl.HMFilter
+     [java] Result :[two, tree]
+
+BUILD SUCCESSFUL
+Total time: 2 seconds
+</pre></div>
+Nice! We got the same result, but we can see that the implementation classes are different.<br class="xooki-br"/><br class="xooki-br"/><h1>Conclusion</h1>
+<b>You should use configurations as often as possible.</b> Configurations are a very important concept in Ivy. They allow you to group artifacts and give the group a meaning. When you write ivy files for projects that are intended for use by others, use configurations to allow people to get only what they need, without having to specify them one by one in their own dependency list. <br class="xooki-br"/>
+ 		</div><!-- main -->
+		</td>
+	</tr>
+</table>
+
+<table id="footer-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td align="center" valign="middle">
+		<div class="primary-links">:: 
+			<a href="../index.html">Home</a> ::
+			<a href="../download.html">Download</a> ::
+			<a href="../history/latest-milestone/index.html">Documentation</a> ::
+			<a href="../get-involved.html">Get Involved</a> ::
+			<a href="../search.html">Search</a> ::
+		</div>
+		</td>
+	</tr>
+</table>
+
+
+
+<div id="footer-message"></div>
+
+
+</div><!-- body -->
+</body>
+</html>

Added: ant/ivy/site/target/history/2.2.0/tutorial/defaultconf.html
URL: http://svn.apache.org/viewvc/ant/ivy/site/target/history/2.2.0/tutorial/defaultconf.html?rev=1005260&view=auto
==============================================================================
--- ant/ivy/site/target/history/2.2.0/tutorial/defaultconf.html (added)
+++ ant/ivy/site/target/history/2.2.0/tutorial/defaultconf.html Wed Oct  6 21:25:29 2010
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<html>
+<head>
+	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
+	<script type="text/javascript">var xookiConfig = {level: 1};</script>	
+	
+
+<title>Adjusting default settings | Apache Ivy</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <link rel="stylesheet" type="text/css" href="../style/style.css" />
+  <script src="../js/jquery.pack.js" type="text/javascript"></script>
+  <script src="../js/jquery.treeview.js" type="text/javascript"></script>
+  <script type="text/javascript">
+  $(document).ready(function(){$("#treemenu").Treeview({speed: "fast",store: true});});
+  </script>
+
+<script language="javascript" type="text/javascript">xooki = {u: function(url) {return "../xooki/"+url;}};</script>
+</head>
+<body>
+
+<div id="body">
+<table id="header" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td id="home" width="30%"><a href="http://ant.apache.org/"
+			title="Apache Ant"><img src="../images/ant-group-logo.gif" alt="Apache Ant"
+			border="0" /></a></td>
+
+		<td class="product" width="70%" align="right" valign="middle"><img
+			src="../images/logo.png" alt="ivy" border="0" /></td>
+	</tr>
+</table>
+
+<table id="top-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td>
+
+        <div style="float:right;margin: 0 10px;">
+        <!-- Google CSE Search Box Begins -->
+  <form id="searchbox_014292259695392975429:5y6qypnrni8" action="http://ant.apache.org/ivy/search.html">
+    <input type="hidden" name="cx" value="014292259695392975429:5y6qypnrni8" />
+    <input type="hidden" name="cof" value="FORID:11" />
+    <input name="q" type="text" size="30" />
+    <input type="submit" name="sa" value="Search" />
+  </form>
+  <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_014292259695392975429%3A5y6qypnrni8"></script>
+<!-- Google CSE Search Box Ends -->
+        </div>
+
+		<div id="navcontainer">
+		<a href="http://ant.apache.org/">Apache Ant</a> &gt; <a href="http://ant.apache.org/ivy/">Ivy</a> &gt; <a href="http://ant.apache.org/ivy/history.html">History</a> &gt; <span class="breadCrumb"><a href="../index.html" >Documentation (2.2.0)</a> &gt; <a href="../tutorial.html" >Tutorials</a> &gt; <a href="../tutorial/defaultconf.html" class="current">Adjusting default settings</a></span>
+		</div>
+		</td>
+	</tr>
+
+</table>
+
+<table id="content" border="0" cellpadding="0" cellspacing="0"
+	width="100%">
+	<tr>
+		<td id="sidebar-left">
+		<div class="block block-book" id="block-book-0">
+		<h2>Ivy</h2>
+
+		<div class="content"><ul id="treemenu" class="treeview"><li id="xooki-index" class="submenu"><a href="../index.html" >Documentation (2.2.0)</a><ul class="open"><li id="xooki-release-notes"><a href="../release-notes.html" >Release Notes</a></li><li id="xooki-tutorial" class="submenu"><a href="../tutorial.html" >Tutorials</a><ul class="open"><li id="xooki-tutorial/start"><a href="../tutorial/start.html" >Quick Start</a></li><li id="xooki-tutorial/defaultconf"><a href="../tutorial/defaultconf.html" class="current">Adjusting default settings</a></li><li id="xooki-tutorial/multiple"><a href="../tutorial/multiple.html" >Multiple Resolvers</a></li><li id="xooki-tutorial/dual"><a href="../tutorial/dual.html" >Dual Resolver</a></li><li id="xooki-tutorial/dependence"><a href="../tutorial/dependence.html" >Project dependencies</a></li><li id="xooki-tutorial/multiproject"><a href="../tutorial/multiproject.html" >Using Ivy in multiple projects environment</a></li><li id="xooki-tutorial
 /conf"><a href="../tutorial/conf.html" >Using Ivy Module Configurations</a></li><li id="xooki-tutorial/build-repository" class="submenu"><a href="../tutorial/build-repository.html" >Building a repository</a><ul class="closed"><li id="xooki-tutorial/build-repository/basic"><a href="../tutorial/build-repository/basic.html" >Basic repository copy</a></li><li id="xooki-tutorial/build-repository/advanced"><a href="../tutorial/build-repository/advanced.html" >Using namespaces</a></li></ul></li><li id="xooki-moreexamples"><a href="../moreexamples.html" >More examples</a></li></ul></li><li id="xooki-reference" class="submenu"><a href="../reference.html" >Reference</a><ul class="closed"><li id="xooki-intro" class="submenu">Introduction<ul class="closed"><li id="xooki-terminology"><a href="../terminology.html" >Terminology</a></li><li id="xooki-concept"><a href="../concept.html" >Main Concepts</a></li><li id="xooki-textual"><a href="../textual.html" >Text Conventions</a></li><li id="x
 ooki-principle"><a href="../principle.html" >How does it work ?</a></li><li id="xooki-bestpractices"><a href="../bestpractices.html" >Best practices</a></li><li id="xooki-install"><a href="../install.html" >Installation</a></li></ul></li><li id="xooki-settings" class="submenu"><a href="../settings.html" >Settings Files</a><ul class="closed"><li id="xooki-settings/property"><a href="../settings/property.html" >property</a></li><li id="xooki-settings/properties"><a href="../settings/properties.html" >properties</a></li><li id="xooki-settings/settings"><a href="../settings/settings.html" >settings</a></li><li id="xooki-settings/include"><a href="../settings/include.html" >include</a></li><li id="xooki-settings/classpath"><a href="../settings/classpath.html" >classpath</a></li><li id="xooki-settings/typedef"><a href="../settings/typedef.html" >typedef</a></li><li id="xooki-settings/credentials"><a href="../settings/credentials.html" >credentials</a></li><li id="xooki-settings/si
 gners"><a href="../settings/signers.html" >signers</a></li><li id="xooki-settings/lock-strategies"><a href="../settings/lock-strategies.html" >lock-strategies</a></li><li id="xooki-settings/caches" class="submenu"><a href="../settings/caches.html" >caches</a><ul class="closed"><li id="xooki-settings/caches/cache" class="submenu"><a href="../settings/caches/cache.html" >cache</a><ul class="closed"><li id="xooki-settings/caches/ttl"><a href="../settings/caches/ttl.html" >ttl</a></li></ul></li></ul></li><li id="xooki-settings/latest-strategies"><a href="../settings/latest-strategies.html" >latest-strategies</a></li><li id="xooki-settings/parsers"><a href="../settings/parsers.html" >parsers</a></li><li id="xooki-settings/namespaces" class="submenu"><a href="../settings/namespaces.html" >namespaces</a><ul class="closed"><li id="xooki-settings/namespace" class="submenu"><a href="../settings/namespace.html" >namespace</a><ul class="closed"><li id="xooki-settings/namespace/rule" cla
 ss="submenu"><a href="../settings/namespace/rule.html" >rule</a><ul class="closed"><li id="xooki-settings/namespace/fromtosystem" class="submenu"><a href="../settings/namespace/fromtosystem.html" >fromsystem / tosystem</a><ul class="closed"><li id="xooki-settings/namespace/src"><a href="../settings/namespace/src.html" >src</a></li><li id="xooki-settings/namespace/dest"><a href="../settings/namespace/dest.html" >dest</a></li></ul></li></ul></li></ul></li></ul></li><li id="xooki-settings/macrodef" class="submenu"><a href="../settings/macrodef.html" >macrodef</a><ul class="closed"><li id="xooki-settings/macrodef/attribute"><a href="../settings/macrodef/attribute.html" >attribute</a></li></ul></li><li id="xooki-settings/resolvers" class="submenu"><a href="../settings/resolvers.html" >resolvers</a><ul class="closed"><li id="xooki-resolver/ivyrep"><a href="../resolver/ivyrep.html" >IvyRep Resolver</a></li><li id="xooki-resolver/ibiblio"><a href="../resolver/ibiblio.html" >IBiblio 
 Resolver</a></li><li id="xooki-resolver/packager"><a href="../resolver/packager.html" >Packager resolver</a></li><li id="xooki-resolver/filesystem"><a href="../resolver/filesystem.html" >File System resolver</a></li><li id="xooki-resolver/url"><a href="../resolver/url.html" >Url Resolver</a></li><li id="xooki-resolver/chain"><a href="../resolver/chain.html" >Chain Resolver</a></li><li id="xooki-resolver/dual"><a href="../resolver/dual.html" >Dual resolver</a></li><li id="xooki-resolver/sftp"><a href="../resolver/sftp.html" >sftp resolver</a></li><li id="xooki-resolver/ssh"><a href="../resolver/ssh.html" >ssh resolver</a></li><li id="xooki-resolver/vfs"><a href="../resolver/vfs.html" >vfs</a></li></ul></li><li id="xooki-settings/conflict-managers"><a href="../settings/conflict-managers.html" >conflict-managers</a></li><li id="xooki-settings/modules" class="submenu"><a href="../settings/modules.html" >modules</a><ul class="closed"><li id="xooki-settings/module"><a href="../set
 tings/module.html" >module</a></li></ul></li><li id="xooki-settings/outputters"><a href="../settings/outputters.html" >outputters</a></li><li id="xooki-settings/statuses" class="submenu"><a href="../settings/statuses.html" >statuses</a><ul class="closed"><li id="xooki-settings/status"><a href="../settings/status.html" >status</a></li></ul></li><li id="xooki-settings/triggers"><a href="../settings/triggers.html" >triggers</a></li><li id="xooki-settings/version-matchers"><a href="../settings/version-matchers.html" >version-matchers</a></li></ul></li><li id="xooki-ivyfile" class="submenu"><a href="../ivyfile.html" >Ivy Files</a><ul class="closed"><li id="xooki-ivyfile/info" class="submenu"><a href="../ivyfile/info.html" >info</a><ul class="closed"><li id="xooki-ivyfile/extends"><a href="../ivyfile/extends.html" >extends</a></li><li id="xooki-ivyfile/license"><a href="../ivyfile/license.html" >license</a></li><li id="xooki-ivyfile/ivyauthor"><a href="../ivyfile/ivyauthor.html" >
 ivyauthor</a></li><li id="xooki-ivyfile/repository"><a href="../ivyfile/repository.html" >repository</a></li><li id="xooki-ivyfile/description"><a href="../ivyfile/description.html" >description</a></li></ul></li><li id="xooki-ivyfile/configurations" class="submenu"><a href="../ivyfile/configurations.html" >configurations</a><ul class="closed"><li id="xooki-ivyfile/conf"><a href="../ivyfile/conf.html" >conf</a></li><li id="xooki-ivyfile/include"><a href="../ivyfile/include.html" >include</a></li></ul></li><li id="xooki-ivyfile/publications" class="submenu"><a href="../ivyfile/publications.html" >publications</a><ul class="closed"><li id="xooki-ivyfile/artifact" class="submenu"><a href="../ivyfile/artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/artifact-conf"><a href="../ivyfile/artifact-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/dependencies" class="submenu"><a href="../ivyfile/dependencies.html" >dependencies</a><ul class="closed
 "><li id="xooki-ivyfile/dependency" class="submenu"><a href="../ivyfile/dependency.html" >dependency</a><ul class="closed"><li id="xooki-ivyfile/dependency-conf" class="submenu"><a href="../ivyfile/dependency-conf.html" >conf</a><ul class="closed"><li id="xooki-ivyfile/mapped"><a href="../ivyfile/mapped.html" >mapped</a></li></ul></li><li id="xooki-ivyfile/dependency-artifact" class="submenu"><a href="../ivyfile/dependency-artifact.html" >artifact</a><ul class="closed"><li id="xooki-ivyfile/dependency-artifact-conf"><a href="../ivyfile/dependency-artifact-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/artifact-exclude" class="submenu"><a href="../ivyfile/artifact-exclude.html" >exclude</a><ul class="closed"><li id="xooki-ivyfile/artifact-exclude-conf"><a href="../ivyfile/artifact-exclude-conf.html" >conf</a></li></ul></li><li id="xooki-ivyfile/dependency-include" class="submenu"><a href="../ivyfile/dependency-include.html" >include</a><ul class="closed"><li id="xoo
 ki-ivyfile/dependency-include-conf"><a href="../ivyfile/dependency-include-conf.html" >conf</a></li></ul></li></ul></li><li id="xooki-ivyfile/exclude"><a href="../ivyfile/exclude.html" >exclude</a></li><li id="xooki-ivyfile/override"><a href="../ivyfile/override.html" >override</a></li><li id="xooki-ivyfile/conflict"><a href="../ivyfile/conflict.html" >conflict</a></li></ul></li><li id="xooki-ivyfile/conflicts" class="submenu"><a href="../ivyfile/conflicts.html" >conflicts</a><ul class="closed"><li id="xooki-ivyfile/manager"><a href="../ivyfile/manager.html" >manager</a></li></ul></li></ul></li><li id="xooki-ant" class="submenu"><a href="../ant.html" >Ant Tasks</a><ul class="closed"><li id="xooki-use/artifactproperty"><a href="../use/artifactproperty.html" >artifactproperty</a></li><li id="xooki-use/artifactreport"><a href="../use/artifactreport.html" >artifactreport</a></li><li id="xooki-use/buildlist"><a href="../use/buildlist.html" >buildlist</a></li><li id="xooki-use/bui
 ldnumber"><a href="../use/buildnumber.html" >buildnumber</a></li><li id="xooki-use/cachefileset"><a href="../use/cachefileset.html" >cachefileset</a></li><li id="xooki-use/cachepath"><a href="../use/cachepath.html" >cachepath</a></li><li id="xooki-use/cleancache"><a href="../use/cleancache.html" >cleancache</a></li><li id="xooki-use/configure"><a href="../use/configure.html" >configure</a></li><li id="xooki-use/deliver"><a href="../use/deliver.html" >deliver</a></li><li id="xooki-use/findrevision"><a href="../use/findrevision.html" >findrevision</a></li><li id="xooki-use/info"><a href="../use/info.html" >info</a></li><li id="xooki-use/install"><a href="../use/install.html" >install</a></li><li id="xooki-use/listmodules"><a href="../use/listmodules.html" >listmodules</a></li><li id="xooki-use/makepom"><a href="../use/makepom.html" >makepom</a></li><li id="xooki-use/postresolvetask"><a href="../use/postresolvetask.html" >post resolve tasks</a></li><li id="xooki-use/publish"><a
  href="../use/publish.html" >publish</a></li><li id="xooki-use/repreport"><a href="../use/repreport.html" >repreport</a></li><li id="xooki-use/resolve"><a href="../use/resolve.html" >resolve</a></li><li id="xooki-use/retrieve"><a href="../use/retrieve.html" >retrieve</a></li><li id="xooki-use/report" class="submenu"><a href="../use/report.html" >report</a><ul class="closed"><li id="xooki-yed"><a href="../yed.html" >Using yEd to layout report graphs</a></li></ul></li><li id="xooki-use/settings"><a href="../use/settings.html" >settings</a></li><li id="xooki-use/var"><a href="../use/var.html" >var</a></li></ul></li><li id="xooki-standalone"><a href="../standalone.html" >Using standalone</a></li></ul></li><li id="xooki-dev" class="submenu"><a href="../dev.html" >Developer doc</a><ul class="closed"><li id="xooki-extend"><a href="../extend.html" >Extending Ivy</a></li><li id="xooki-dev/makerelease"><a href="../dev/makerelease.html" >Making a release</a></li><li id="xooki-dev/updat
 esite"><a href="../dev/updatesite.html" >Updating the updatesite</a></li></ul></li></ul></li></ul></div>
+
+		<center><iframe src="http://www.apache.org/ads/buttonbar.html"
+                         style="border-width:0;" frameborder="0" scrolling="no"
+                         width="135" height="265"></iframe>
+                </center>
+                
+		</div>
+
+		</td>
+		
+		<td valign="top">
+		<div id="main">
+
+		<h1 class="title">Adjusting default settings</h1>
+            <br class="xooki-br"/>Ivy comes bundled with some default settings which makes it pretty simple to use in a typical environment. This tutorial, which is close to a reference document, explains what those default settings are and how they can be adjusted to your needs. <br class="xooki-br"/><br class="xooki-br"/>To fully understand the concept of settings and what you can do with them, we suggest reading other tutorials related to settings (like <a href="../tutorial/multiple.html">Multiple Resolvers</a> and <a href="../tutorial/dual.html">Dual Resolver</a>) or the <a href="../settings.html">Settings Files</a> reference documentation.<br class="xooki-br"/><br class="xooki-br"/><h1>Concept</h1>
+The default settings include 3 types of repositories:
+<ul>
+<li>local</li> a repository which is private to the user. 
+<li>shared</li> a repository which is shared between all the members of a team
+<li>public</li> a public repository on which most modules, and especially third party modules, can be found
+</ul>
+
+Note that if you work alone, the distinction between a local and shared repository is not very important, but there are some things you should know to distinguish them.<br class="xooki-br"/><br class="xooki-br"/>Now let's describe each of these repository concepts in more detail. We will describe how they are set up physically later.<br class="xooki-br"/><h2>Local</h2>
+The local repository is particularly useful when you want to do something without being disturbed by anything else happening in the environment. This means that whenever Ivy is able to locate a module in this repository it will be used, no matter what is available in others.<br class="xooki-br"/><br class="xooki-br"/>For instance, if you have a module declaring a dependency on the module <i>foo</i> with a revision of <i>latest.integration</i>, then if a revision of <i>foo</i> is found in the local repository, it will be used, <em>even if a more recent revision is available in other repositories</em>. <br class="xooki-br"/><br class="xooki-br"/>This may be disturbing for some of you, but imagine you have to implement a new feature on a project, and in order to achieve that you need to modify two modules: you add a new method in module <i>foo</i> and exploit this new method in module <i>bar</i>. Then if you publish the module <i>foo</i> to your local repository, you will be su
 re to get it in your <i>bar</i> module, even if someone else publishes a new revision of <i>foo</i> in the shared repository (this revision not having the new method you are currently adding).<br class="xooki-br"/><br class="xooki-br"/>But be careful, when you have finished your development and publish it on the shared repository, you will have to clean your local repository to benefit from new versions published in the shared repository.<br class="xooki-br"/><br class="xooki-br"/>Note also that modules found in the local repository must be complete, i.e. they must provide both a module descriptor and the published artifacts. <br class="xooki-br"/><h2>Shared</h2>
+As its name suggest, the shared repository is aimed to be shared among a whole development team. It is a place where you can publish your team's private modules, and it's also a place where you can put modules not available in the public repository (sun jars, for instance). You can also put modules here that are simply inaccurate in a public repository (bad or incomplete module descriptors for instance).<br class="xooki-br"/><br class="xooki-br"/>Note that modules can be split across the shared repository and the public one: For example, you can have the module descriptor in the shared repository and the artifacts in the public one.<br class="xooki-br"/><h2>Public</h2>
+The public repository is the place where most modules can be found, but which sometimes lack the information you need. It's usually a repository available through an internet connection only, even if this is not mandatory.<br class="xooki-br"/><h1>Setting up the repositories</h1>
+Now that we have seen the objective of each of the three repositories, let's see how they are setup and how to configure them to fit your needs.<br class="xooki-br"/><br class="xooki-br"/>First, several repositories use the same root in your filesystem. Referenced as <tt>${ivy.default.ivy.user.dir}</tt>, this is by default the directory <tt>.ivy2</tt> in your user home.<br class="xooki-br"/><br class="xooki-br"/>Note that several things can be done by setting Ivy variables. To set them without defining your own <tt>ivysettings.xml</tt> file, you can:<ul>
+<li>set an Ant property before any call to Ivy in your build file if you use Ivy from Ant</li>
+<li>set an environment variable if you use Ivy from the command line</li>
+</ul>
+For example:
+<pre>
+&lt;target name="resolve"&gt;<br class="xooki-br"/>  &lt;property name="ivy.default.ivy.user.dir" value="/path/to/ivy/user/dir"/&gt;<br class="xooki-br"/>  &lt;ivy:resolve /&gt;<br class="xooki-br"/>&lt;/target&gt;
+</pre>
+
+Next we will show you how to override default values for the different kinds of repositories. Note that you can find what the default values are below in the details of the default settings.<br class="xooki-br"/><h2>Local</h2>
+By default, the local repository lies in <tt>${ivy.default.ivy.user.dir}/local</tt>. This is usually a good place, but you may want to modify it. No problem, you just have to set the following Ivy variable to the directory you want to use: <pre>ivy.local.default.root</pre>. For instance:
+<pre>ivy.local.default.root=/opt/ivy/repository/local</pre>.<br class="xooki-br"/><br class="xooki-br"/>If you already have something you would like to use as your local repository, you may also want to modify the layout of this repository. Once again, two variables are available for that:
+<pre>ivy.local.default.ivy.pattern</pre> gives the pattern to find ivy files
+<pre>ivy.local.default.artifact.pattern</pre> gives the pattern to find artifacts<br class="xooki-br"/>For example:
+<pre>
+ivy.local.default.root=/opt/ivy/repository/local<br class="xooki-br"/>ivy.local.default.ivy.pattern=[module]/[revision]/ivy.xml<br class="xooki-br"/>ivy.local.default.artifact.pattern=[module]/[revision]/[artifact].[ext]
+</pre>
+<h2>Shared</h2>
+By default, the shared repository lies in <tt>${ivy.default.ivy.user.dir}/shared</tt>. This is fine if you work alone, but the shared repository is supposed to be, mmm, shared! So changing this directory is often required, and it is usually modified to point to a network shared directory. You can use the <pre>ivy.shared.default.root</pre> variable to specify a different directory. Moreover, you can also configure the layout with variables similar to the ones used for the local repository:
+<pre>ivy.shared.default.ivy.pattern</pre> gives the pattern to find ivy files
+<pre>ivy.shared.default.artifact.pattern</pre> gives the pattern to find artifacts<br class="xooki-br"/>For example:
+<pre>
+ivy.shared.default.root=/opt/ivy/repository/shared<br class="xooki-br"/>ivy.shared.default.ivy.pattern=[organisation]/[module]/[revision]/ivy.xml<br class="xooki-br"/>ivy.shared.default.artifact.pattern=[organisation]/[module]/[revision]/[artifact].[ext]
+</pre>
+
+<h2>Public</h2>
+By default, the public repository is ibiblio in m2 compatible mode (in other words, the maven 2 public repository).<br class="xooki-br"/><br class="xooki-br"/>This repository has the advantage of providing a lot of modules, with metadata for most of them. The quality of metadata is not always perfect, but it's a very good start to use a tool like Ivy and benefit from the power of transitive dependency management. <br class="xooki-br"/><br class="xooki-br"/>Despite its ease of use, we suggest reading the <a href="../bestpractices.html">Best practices</a> to have a good understanding of the pros and cons of using a public unmanaged repository before depending on such a repository for your enterprise build system.<br class="xooki-br"/><br class="xooki-br"/><em>In 1.4 version Ivy was using ivyrep as the default resolver, if you want to restore this, set<br class="xooki-br"/>ivy.14.compatible=true as an ant property</em><br class="xooki-br"/><br class="xooki-br"/><h1>Going furthe
 r</h1>
+OK, so we have seen how to easily change the settings of the three main repositories. But what if my shared repository is on a web server? What if you don't want to use maven 2 repository as the public repository? What if ... <br class="xooki-br"/><br class="xooki-br"/>No problem, Ivy is very flexible and can be configured with specific settings to match your needs and environment. But before considering writing your own settings from scratch, we suggest reading the following where you will learn how to leverage a part of the default settings and adjust the rest.<br class="xooki-br"/><br class="xooki-br"/>But before explaining how, you will need to have a quick overview of how Ivy is configured by default.<br class="xooki-br"/><br class="xooki-br"/>By default, Ivy is configured using an <tt>ivysettings.xml</tt> which is packaged in the Ivy jar. Here is this settings file:
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;settings defaultResolver="default"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-public.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-local.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+OK, so not much info here, except a lot of inclusions. These inclusions have been done on purpose so that you can easily change only one part of the ivysettings and easily benefit from the rest. For example, if you want to define your own public resolver, you will just have to configure Ivy with an ivysettings like the following:
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;settings defaultResolver="default"/&gt;<br class="xooki-br"/>  &lt;include url="<a href="http://myserver/ivy/myivysettings-public.xml">http://myserver/ivy/myivysettings-public.xml</a>"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-local.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/&gt;<br class="xooki-br"/>  &lt;include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+Note that only the <tt>ivysettings-public.xml</tt> inclusion has changed to include a homemade public resolver. Note also that this can be used like that thanks to the fact that <tt>${ivy.default.settings.dir}</tt> is a variable which is always set to the place where Ivy's default settings files are (i.e. packaged in the jar).<br class="xooki-br"/>To finish this example, you have to write your own ivysettings file (that you will make available at <a href="http://myserver/ivy/myivysettings-public.xml">http://myserver/ivy/myivysettings-public.xml</a> in this example) for defining your own public resolver. For instance:
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;resolvers&gt;<br class="xooki-br"/>    &lt;filesystem name="public"&gt;<br class="xooki-br"/>      &lt;ivy pattern="/path/to/my/public/rep/[organisation]/[module]/ivy-[revision].xml" /&gt;<br class="xooki-br"/>      &lt;artifact pattern="/path/to/my/public/rep/[organisation]/[module]/[artifact]-[revision].[ext]" /&gt;<br class="xooki-br"/>    &lt;/filesystem&gt;<br class="xooki-br"/>  &lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+Now the last thing you will need in order to properly take advantage of the default settings is the content of each included ivysettings file:<br class="xooki-br"/><strong>ivysettings-public.xml</strong>
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;resolvers&gt;<br class="xooki-br"/>    &lt;ibiblio name="public" m2compatible="true"/&gt;<br class="xooki-br"/>  &lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+<strong>ivysettings-shared.xml</strong>
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;property name="ivy.shared.default.root"             value="${ivy.default.ivy.user.dir}/shared" override="false"/&gt;<br class="xooki-br"/>  &lt;property name="ivy.shared.default.ivy.pattern"      value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/&gt;<br class="xooki-br"/>  &lt;property name="ivy.shared.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/&gt;<br class="xooki-br"/>  &lt;resolvers&gt;<br class="xooki-br"/>    &lt;filesystem name="shared"&gt;<br class="xooki-br"/>      &lt;ivy pattern="${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern}" /&gt;<br class="xooki-br"/>      &lt;artifact pattern="${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern}" /&gt;<br class="xooki-br"/>    &lt;/filesystem&gt;<br class="xooki-br"/>  &lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+<strong>ivysettings-local.xml</strong>
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;property name="ivy.local.default.root"             value="${ivy.default.ivy.user.dir}/local" override="false"/&gt;<br class="xooki-br"/>  &lt;property name="ivy.local.default.ivy.pattern"      value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/&gt;<br class="xooki-br"/>  &lt;property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/&gt;<br class="xooki-br"/>  &lt;resolvers&gt;<br class="xooki-br"/>    &lt;filesystem name="local"&gt;<br class="xooki-br"/>      &lt;ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" /&gt;<br class="xooki-br"/>      &lt;artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" /&gt;<br class="xooki-br"/>    &lt;/filesystem&gt;<br class="xooki-br"/>  &lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+<strong>ivysettings-main-chain.xml</strong>
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;resolvers&gt;<br class="xooki-br"/>    &lt;chain name="main" dual="true"&gt;<br class="xooki-br"/>      &lt;resolver ref="shared"/&gt;<br class="xooki-br"/>      &lt;resolver ref="public"/&gt;<br class="xooki-br"/>    &lt;/chain&gt;<br class="xooki-br"/>  &lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+<strong>ivysettings-default-chain.xml</strong>
+<pre>
+&lt;ivysettings&gt;<br class="xooki-br"/>  &lt;resolvers&gt;<br class="xooki-br"/>    &lt;chain name="default" returnFirst="true"&gt;<br class="xooki-br"/>      &lt;resolver ref="local"/&gt;<br class="xooki-br"/>      &lt;resolver ref="main"/&gt;<br class="xooki-br"/>    &lt;/chain&gt;<br class="xooki-br"/>  &lt;/resolvers&gt;<br class="xooki-br"/>&lt;/ivysettings&gt;
+</pre>
+
+There you go, you should have enough clues to configure Ivy the way you want. Check the <a href="../settings.html">settings documentation</a> to see if what you want to do is possible, and go ahead!<br class="xooki-br"/>	
+ 		</div><!-- main -->
+		</td>
+	</tr>
+</table>
+
+<table id="footer-menu" summary="Navigation elements." border="0"
+	cellpadding="0" cellspacing="0" width="100%">
+	<tr>
+		<td align="center" valign="middle">
+		<div class="primary-links">:: 
+			<a href="../index.html">Home</a> ::
+			<a href="../download.html">Download</a> ::
+			<a href="../history/latest-milestone/index.html">Documentation</a> ::
+			<a href="../get-involved.html">Get Involved</a> ::
+			<a href="../search.html">Search</a> ::
+		</div>
+		</td>
+	</tr>
+</table>
+
+
+
+<div id="footer-message"></div>
+
+
+</div><!-- body -->
+</body>
+</html>



Mime
View raw message