Author: xavier
Date: Wed Nov 28 15:09:45 2007
New Revision: 599189
URL: http://svn.apache.org/viewvc?rev=599189&view=rev
Log:
NEW: support atomic publish operation (IVY-492) (with contribution from Geoff
Reedy)
Modified:
incubator/ivy/core/trunk/doc/resolver/filesystem.html
Modified: incubator/ivy/core/trunk/doc/resolver/filesystem.html
URL:
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/resolver/filesystem.html?rev=599189&r1=599188&r2=599189&view=diff
==============================================================================
--- incubator/ivy/core/trunk/doc/resolver/filesystem.html (original)
+++ incubator/ivy/core/trunk/doc/resolver/filesystem.html Wed Nov 28 15:09:45
2007
@@ -37,6 +37,27 @@
<span class="since">since 1.3</span> Using the m2compatible attribute, this
resolver will convert dots found in organisation in slashes like maven2 does
for groupId. For instance, it will transform the organisation from
'com.company' into 'com/company' when replacing the token [organisation] in
your pattern.
+<h2>Atomic publish support</h2>
+<span class="since">since 2.0</span> This resolver supports atomic publish,
which is very suitable for environments with a lot of concurrent publish and
resolve. The atomic publish relies on the atomicity of the rename operation in
the underlying filesystem (which includes NTFS and POSIX based filesystems).
+In this case the resolver starts by publishing the module according to the
pattern, but where a '.part' suffix is appended to the revision. Then the
publish is committed with a rename to the final location.
+
+<b>Limitations</b>
+Atomic publish is currently limited in several ways:
+<ul>
+<li>you need to use a pattern for both the artifact and the ivy files which
uses the revision as last directory. For instance
[module]/[revision]/[artifact].[ext] works,
[module]/[artifact]-[revision].[ext] doesn't</li>
+<li>both the artifact and ivy pattern should have the same prefix until the
[revision] token.</li>
+<li>overwrite during publish is not supported</li>
+<li>you should not use revision names ending with '.part'</li>
+</ul>
+
+The <b>transactional</b> attribute can be used to configure the atomicity
behavior:
+<ul>
+<li>auto</li> use transaction if possible (according to limitation), otherwise
don't
+<li>true</li> always use transaction, fail the build if a limitation is is not
fulfilled
+<li>false</li> don't use transaction at all
+</ul>
+
+
<h1>Attributes</h1>
This resolver shares the <a
href="../configuration/resolvers.html#common">common attributes</a> of standard
resolvers.
<table class="ivy-attributes">
@@ -48,6 +69,8 @@
<td>No, defaults to false</td></tr>
<tr><td>local</td><td>True if this resolver should be considered local,
false otherwise <span class="since">since 1.4</span>. See useOrigin attribute
on the [[ant:resolve]] task for details.</td>
<td>No, defaults to true</td></tr>
+ <tr><td>transactional</td><td>true to force the use of transaction, false
to prevent the use of transaction, auto to get transaction when possible <span
class="since">since 2.0</span>. See above for details.</td>
+ <td>No, defaults to auto</td></tr>
</tbody>
</table>
<h1>Child elements</h1>