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>


Reply via email to