OW2 Consortium
Search OW2 Mail Archive: 

Advanced Search - Powered by Google


Mail Archive Home | gotm-commits List | March 2004 Index

    Date Index  -->     Thread Index  -->

CVS update of ow-transaction (79 files)


    Date: Tuesday, March 23, 2004 @ 13:54:26
  Author: rouvoy
    Path: /cvsroot/gotm/ow-transaction

   Added: .classpath .cvsignore .project build.xml doc/overview.html
          doc/uml/CoordinationComponent.png doc/uml/EventComponent.png
          doc/uml/LockComponent.png doc/uml/TransactionComponent.png
          doc/uml/XIDComponent.png
          src/java/org/objectweb/transaction/api/Feature.java
          src/java/org/objectweb/transaction/api/Identity.java
          src/java/org/objectweb/transaction/api/State.java
          
src/java/org/objectweb/transaction/api/conflict/ConflictCheckFeature.java
          
          
src/java/org/objectweb/transaction/api/conflict/ConflitOperationFeature.java
           src/java/org/objectweb/transaction/api/conflict/package.html
          
src/java/org/objectweb/transaction/api/coordination/CoordinationFeature.java
          
          src/java/org/objectweb/transaction/api/coordination/package.html
          
src/java/org/objectweb/transaction/api/dependency/DependencyType.java
          
          
src/java/org/objectweb/transaction/api/dependency/DependencyTypeFeature.java
           src/java/org/objectweb/transaction/api/dependency/package.html
          src/java/org/objectweb/transaction/api/event/Event.java
          src/java/org/objectweb/transaction/api/event/EventContext.java
          
src/java/org/objectweb/transaction/api/event/EventEnlistmentFeature.java
          
          
src/java/org/objectweb/transaction/api/event/EventListenerFeature.java
          
          
src/java/org/objectweb/transaction/api/event/EventNotificationFeature.java
           src/java/org/objectweb/transaction/api/event/package.html
          
src/java/org/objectweb/transaction/api/lock/ConflictLockCheckFeature.java
          
          
src/java/org/objectweb/transaction/api/lock/ExclusiveLockFeature.java
           src/java/org/objectweb/transaction/api/lock/LockIdentifier.java
          src/java/org/objectweb/transaction/api/lock/LockMode.java
          src/java/org/objectweb/transaction/api/lock/LockQueueState.java
          src/java/org/objectweb/transaction/api/lock/ModeLockFeature.java
          src/java/org/objectweb/transaction/api/lock/ReleaseLockFeature.java
           src/java/org/objectweb/transaction/api/lock/package.html
          src/java/org/objectweb/transaction/api/package.html
          src/java/org/objectweb/transaction/api/resource/ResourceEvent.java
          
          src/java/org/objectweb/transaction/api/resource/ResourceVote.java
           src/java/org/objectweb/transaction/api/resource/package.html
          src/java/org/objectweb/transaction/api/stamp/Stamp.java
          
src/java/org/objectweb/transaction/api/stamp/StampProviderFeature.java
           src/java/org/objectweb/transaction/api/stamp/package.html
          
src/java/org/objectweb/transaction/api/synchronization/SynchronizationEvent.java
          
          src/java/org/objectweb/transaction/api/synchronization/package.html
          
          
src/java/org/objectweb/transaction/api/transaction/InvalidTransactionStatusException.java
          
          
src/java/org/objectweb/transaction/api/transaction/TransactionActivationFeature.java
          
          
src/java/org/objectweb/transaction/api/transaction/TransactionHolderFeature.java
          
          
src/java/org/objectweb/transaction/api/transaction/TransactionInterruptionFeature.java
          
          
src/java/org/objectweb/transaction/api/transaction/TransactionState.java
          
          
src/java/org/objectweb/transaction/api/transaction/TransactionStatus.java
          
          
src/java/org/objectweb/transaction/api/transaction/TransactionStatusFeature.java
           src/java/org/objectweb/transaction/api/transaction/package.html
          src/java/org/objectweb/transaction/api/xid/XidState.java
          src/java/org/objectweb/transaction/api/xid/package.html
          
src/java/org/objectweb/transaction/lib/resource/ResourceEventCommit.java
          
          
src/java/org/objectweb/transaction/lib/resource/ResourceEventContext.java
          
          
src/java/org/objectweb/transaction/lib/resource/ResourceEventRollback.java
          
          
src/java/org/objectweb/transaction/lib/resource/ResourceEventVote.java
          
          
src/java/org/objectweb/transaction/lib/resource/ResourceVoteCommit.java
          
          
src/java/org/objectweb/transaction/lib/resource/ResourceVoteReadOnly.java
          
          
src/java/org/objectweb/transaction/lib/resource/ResourceVoteRollback.java
           src/java/org/objectweb/transaction/lib/resource/package.html
          
src/java/org/objectweb/transaction/lib/synchronization/SynchronizationEventAfterCompletion.java
          
          
src/java/org/objectweb/transaction/lib/synchronization/SynchronizationEventBeforeCompletion.java
          
          src/java/org/objectweb/transaction/lib/synchronization/package.html
          
          
src/java/org/objectweb/transaction/lib/transaction/DependencyTypeCausal.java
          
          
src/java/org/objectweb/transaction/lib/transaction/DependencyTypeOrder.java
          
          
src/java/org/objectweb/transaction/lib/transaction/DependencyTypeWeakCausal.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusCommitted.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusCommitting.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusMarkedRollback.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusNoTransaction.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusPrepared.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusPreparing.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusRolledBack.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusRollingBack.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusTransactionActive.java
          
          
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusUnknown.java
           src/java/org/objectweb/transaction/lib/transaction/package.html

* Updated version of the ObjectWeb Transaction API


--------------------------------------------------------------------------------------------------+
 .classpath                                                                   
                    |    6 
 .cvsignore                                                                   
                    |    2 
 .project                                                                     
                    |   17 
 build.xml                                                                    
                    |  197 ++++++++
 doc/overview.html                                                            
                    |    4 
 doc/uml/CoordinationComponent.png                                            
                    |    <<Binary file>>
 doc/uml/EventComponent.png                                                   
                    |    <<Binary file>>
 doc/uml/LockComponent.png                                                    
                    |    <<Binary file>>
 doc/uml/TransactionComponent.png                                             
                    |    <<Binary file>>
 doc/uml/XIDComponent.png                                                     
                    |    <<Binary file>>
 src/java/org/objectweb/transaction/api/Feature.java                          
                    |   43 +
 src/java/org/objectweb/transaction/api/Identity.java                         
                    |   50 ++
 src/java/org/objectweb/transaction/api/State.java                            
                    |   43 +
 src/java/org/objectweb/transaction/api/conflict/ConflictCheckFeature.java    
                    |   51 ++
 src/java/org/objectweb/transaction/api/conflict/ConflitOperationFeature.java 
                    |   45 +
 src/java/org/objectweb/transaction/api/conflict/package.html                 
                    |   36 +
 src/java/org/objectweb/transaction/api/coordination/CoordinationFeature.java 
                    |   52 ++
 src/java/org/objectweb/transaction/api/coordination/package.html             
                    |   54 ++
 src/java/org/objectweb/transaction/api/dependency/DependencyType.java        
                    |   42 +
 src/java/org/objectweb/transaction/api/dependency/DependencyTypeFeature.java 
                    |   45 +
 src/java/org/objectweb/transaction/api/dependency/package.html               
                    |   36 +
 src/java/org/objectweb/transaction/api/event/Event.java                      
                    |   48 ++
 src/java/org/objectweb/transaction/api/event/EventContext.java               
                    |   38 +
 src/java/org/objectweb/transaction/api/event/EventEnlistmentFeature.java     
                    |   60 ++
 src/java/org/objectweb/transaction/api/event/EventListenerFeature.java       
                    |   60 ++
 src/java/org/objectweb/transaction/api/event/EventNotificationFeature.java   
                    |   52 ++
 src/java/org/objectweb/transaction/api/event/package.html                    
                    |   41 +
 src/java/org/objectweb/transaction/api/lock/ConflictLockCheckFeature.java    
                    |   53 ++
 src/java/org/objectweb/transaction/api/lock/ExclusiveLockFeature.java        
                    |   66 ++
 src/java/org/objectweb/transaction/api/lock/LockIdentifier.java              
                    |   43 +
 src/java/org/objectweb/transaction/api/lock/LockMode.java                    
                    |   41 +
 src/java/org/objectweb/transaction/api/lock/LockQueueState.java              
                    |   47 +
 src/java/org/objectweb/transaction/api/lock/ModeLockFeature.java             
                    |   70 ++
 src/java/org/objectweb/transaction/api/lock/ReleaseLockFeature.java          
                    |   52 ++
 src/java/org/objectweb/transaction/api/lock/package.html                     
                    |  237 ++++++++++
 src/java/org/objectweb/transaction/api/package.html                          
                    |   35 +
 src/java/org/objectweb/transaction/api/resource/ResourceEvent.java           
                    |   45 +
 src/java/org/objectweb/transaction/api/resource/ResourceVote.java            
                    |   48 ++
 src/java/org/objectweb/transaction/api/resource/package.html                 
                    |   36 +
 src/java/org/objectweb/transaction/api/stamp/Stamp.java                      
                    |   41 +
 src/java/org/objectweb/transaction/api/stamp/StampProviderFeature.java       
                    |   50 ++
 src/java/org/objectweb/transaction/api/stamp/package.html                    
                    |   36 +
 
src/java/org/objectweb/transaction/api/synchronization/SynchronizationEvent.java
                 |   41 +
 src/java/org/objectweb/transaction/api/synchronization/package.html          
                    |   36 +
 
src/java/org/objectweb/transaction/api/transaction/InvalidTransactionStatusException.java
        |   40 +
 
src/java/org/objectweb/transaction/api/transaction/TransactionActivationFeature.java
             |   62 ++
 
src/java/org/objectweb/transaction/api/transaction/TransactionHolderFeature.java
                 |   46 +
 
src/java/org/objectweb/transaction/api/transaction/TransactionInterruptionFeature.java
           |   56 ++
 src/java/org/objectweb/transaction/api/transaction/TransactionState.java     
                    |   71 ++
 src/java/org/objectweb/transaction/api/transaction/TransactionStatus.java    
                    |   45 +
 
src/java/org/objectweb/transaction/api/transaction/TransactionStatusFeature.java
                 |   52 ++
 src/java/org/objectweb/transaction/api/transaction/package.html              
                    |   89 +++
 src/java/org/objectweb/transaction/api/xid/XidState.java                     
                    |  118 ++++
 src/java/org/objectweb/transaction/api/xid/package.html                      
                    |   39 +
 src/java/org/objectweb/transaction/lib/resource/ResourceEventCommit.java     
                    |   64 ++
 src/java/org/objectweb/transaction/lib/resource/ResourceEventContext.java    
                    |   44 +
 src/java/org/objectweb/transaction/lib/resource/ResourceEventRollback.java   
                    |   60 ++
 src/java/org/objectweb/transaction/lib/resource/ResourceEventVote.java       
                    |   61 ++
 src/java/org/objectweb/transaction/lib/resource/ResourceVoteCommit.java      
                    |   60 ++
 src/java/org/objectweb/transaction/lib/resource/ResourceVoteReadOnly.java    
                    |   60 ++
 src/java/org/objectweb/transaction/lib/resource/ResourceVoteRollback.java    
                    |   60 ++
 src/java/org/objectweb/transaction/lib/resource/package.html                 
                    |   44 +
 
src/java/org/objectweb/transaction/lib/synchronization/SynchronizationEventAfterCompletion.java
  |   60 ++
 
src/java/org/objectweb/transaction/lib/synchronization/SynchronizationEventBeforeCompletion.java
 |   60 ++
 src/java/org/objectweb/transaction/lib/synchronization/package.html          
                    |   43 +
 src/java/org/objectweb/transaction/lib/transaction/DependencyTypeCausal.java 
                    |   63 ++
 src/java/org/objectweb/transaction/lib/transaction/DependencyTypeOrder.java  
                    |   61 ++
 
src/java/org/objectweb/transaction/lib/transaction/DependencyTypeWeakCausal.java
                 |   61 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusCommitted.java
               |   68 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusCommitting.java
              |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusMarkedRollback.java
          |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusNoTransaction.java
           |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusPrepared.java
                |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusPreparing.java
               |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusRolledBack.java
              |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusRollingBack.java
             |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusTransactionActive.java
       |   67 ++
 
src/java/org/objectweb/transaction/lib/transaction/TransactionStatusUnknown.java
                 |   67 ++
 src/java/org/objectweb/transaction/lib/transaction/package.html              
                    |   59 ++
 79 files changed, 4148 insertions(+)


Index: ow-transaction/.classpath
diff -u /dev/null ow-transaction/.classpath:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/.classpath   Tue Mar 23 13:54:25 2004
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src/java"/>
+       <classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+       <classpathentry kind="output" path="build/class"/>
+</classpath>
Index: ow-transaction/.cvsignore
diff -u /dev/null ow-transaction/.cvsignore:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/.cvsignore   Tue Mar 23 13:54:25 2004
@@ -0,0 +1,2 @@
+build
+distrib
Index: ow-transaction/.project
diff -u /dev/null ow-transaction/.project:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/.project     Tue Mar 23 13:54:25 2004
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>ow-transaction</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
Index: ow-transaction/build.xml
diff -u /dev/null ow-transaction/build.xml:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/build.xml    Tue Mar 23 13:54:25 2004
@@ -0,0 +1,197 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: build.xml,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+
+<project name="transaction" default="all">
+  <description>Transaction Working Group API</description>
+
+  <property name="src.dir"  value="src"/>
+  <property name="java.dir" value="${src.dir}/java"/>
+  <property name="idl.dir"  value="${src.dir}/idl"/>
+  <property name="doc.dir"  value="doc"/>
+
+  <property name="class.dir" value="class"/>
+  <property name="lib.dir"   value="lib"/>
+  
+  <property name="build.dir" value="${basedir}/build"/>
+  <property name="dist.dir"  value="${basedir}/distrib"/>
+
+  <property name="api.jar.name" value="ow_transaction_api.jar"/>
+  <property name="lib.jar.name" value="ow_transaction_lib.jar"/>
+  <property name="dist.name"    value="TransactionWorkingGroup"/>
+  
+  <property name="tx.version" value="0.1b"/>
+
+  
+  <path id="classpath">
+    <pathelement location="${build.dir}/${class.dir}"/>
+  </path>
+
+
+  <target name="all" description="clean + distrib">
+    <antcall target="clean"/>
+    <antcall target="distrib"/>
+  </target>
+
+
+  <target name="jdoc" description="build the javadoc">
+    <javadoc destdir="${build.dir}/${doc.dir}" 
+              author="true" version="true"
+                 use="true" private="true"
+         windowtitle="Transaction Working Group API"
+            overview="${doc.dir}/overview.html">
+      <packageset dir="${java.dir}" defaultexcludes="yes">
+        <include name="**/*" />
+      </packageset>
+      <doctitle>
+        <![CDATA[<h1>Transaction Working Group - v. ${tx.version}</h1>]]>
+        <![CDATA[<h2>API Specification</h2>]]>
+      </doctitle>
+      <tag name="todo"   scope="all" description="To do:" />
+      <tag name="adl.id" scope="all" description="ADL:" />
+
+      <group title="Transaction Interfaces">
+        <package name="org.objectweb.transaction.api"/>
+        <package name="org.objectweb.transaction.api.*"/>
+      </group>
+      <group title="Transaction Libraries">
+        <package name="org.objectweb.transaction.lib.*"/>
+      </group>
+
+      <link href="http://java.sun.com/products/jdk/1.2/docs/api/"; />
+      <link 
href="http://developer.java.sun.com/developer/products/xml/docs/api/"/>
+    </javadoc>
+    <replace file="${build.dir}/${doc.dir}/overview-summary.html"
+             token="DO NOT REMOVE THIS LINE (will be automatically 
removed)."/>             
+    <copy todir="${build.dir}/${doc.dir}">
+      <fileset dir="${doc.dir}" includes="uml/*.png"/>
+    </copy>
+  </target>
+
+  <target name="compile-api" 
+   description="compile the interfaces in the build directory">
+    <mkdir dir="${build.dir}/${class.dir}"/>
+    <javac srcdir="${java.dir}" destdir="${build.dir}/${class.dir}" 
debug="on">
+      <classpath refid="classpath"/>
+      <include name="org/objectweb/transaction/api/**/*.java"/>
+    </javac>
+  </target>
+
+  <target name="compile-lib" depends="compile-api" 
+   description="compile the classes in the build directory">
+    <javac srcdir="${java.dir}" destdir="${build.dir}/${class.dir}" 
debug="on">
+      <classpath refid="classpath"/>
+      <include name="org/objectweb/transaction/lib/**/*.java"/>
+    </javac>
+  </target>
+
+  <target name="compile" depends="compile-lib" 
+   description="compile the API in the build directory"/>
+
+    
+  <target name="build-api" depends="compile-api" 
+   description="build the api archive in the lib directory">
+    <mkdir dir="${build.dir}/${lib.dir}"/>
+    <jar destfile="${build.dir}/${lib.dir}/${api.jar.name}">
+      <fileset dir="${build.dir}/${class.dir}" 
+          includes="org/objectweb/transaction/api/**/*"/>
+    </jar>
+  </target>
+
+  <target name="build-lib" depends="compile-lib" 
+   description="build the library archive in the lib directory">
+    <mkdir dir="${build.dir}/${lib.dir}"/>
+    <jar destfile="${build.dir}/${lib.dir}/${lib.jar.name}">
+      <fileset dir="${build.dir}/${class.dir}" 
+          includes="org/objectweb/transaction/lib/**/*"/>
+    </jar>
+  </target>
+  
+  <target name="build" depends="build-api,build-lib" 
+   description="build the archives in the lib directory"/>
+
+  <target name="distrib-src" description="build the source distribution">
+    <property name="dist-src"  value="${dist.name}-${tx.version}-src"/>
+    <property name="dist-src.dir" value="${dist.dir}/${dist-src}"/>
+    <mkdir dir="${dist-src.dir}"/>
+       <copy todir="${dist-src.dir}" file="build.xml"/>
+    <mkdir dir="${dist-src.dir}/${src.dir}"/>
+    <copy todir="${dist-src.dir}/${src.dir}">
+      <fileset dir="${src.dir}" includes="**/*"/>
+    </copy>
+    <mkdir dir="${dist-src.dir}/${doc.dir}"/>
+    <copy todir="${dist-src.dir}/${doc.dir}">
+      <fileset dir="${doc.dir}" includes="**/*"/>
+    </copy>
+<!--
+    <mkdir dir="${dist-src.dir}/${idl.dir}"/>
+    <copy todir="${dist-src.dir}/${idl.dir}">
+      <fileset dir="${idl.dir}" includes="**/*"/>
+    </copy>
+-->
+    <zip zipfile="${dist.dir}/${dist-src}.zip">
+      <fileset dir="${dist.dir}" includes="${dist-src}/**/*"/>
+    </zip>    
+    <tar destfile="${dist.dir}/${dist-src}.tar" longfile="gnu">
+      <tarfileset dir="${dist.dir}" includes="${dist-src}/**/*"/>
+    </tar>
+    <gzip src="${dist.dir}/${dist-src}.tar" 
zipfile="${dist.dir}/${dist-src}.tar.gz"/>
+    <bzip2 src="${dist.dir}/${dist-src}.tar" 
zipfile="${dist.dir}/${dist-src}.tar.bz2"/>
+  </target>
+
+  
+  <target name="distrib-bin" depends="jdoc,build" 
+   description="build the binary distribution">
+    <property name="dist-bin"     value="${dist.name}-${tx.version}-bin"/>
+    <property name="dist-bin.dir" value="${dist.dir}/${dist-bin}"/>
+    <mkdir dir="${dist-bin.dir}"/>
+    <copy todir="${dist-bin.dir}">
+      <fileset dir="${build.dir}" includes="${doc.dir}/**/*"/>
+      <fileset dir="${build.dir}" includes="${lib.dir}/**/*"/>
+    </copy>
+<!--
+    <mkdir dir="${dist-bin.dir}/${idl.dir}"/>
+    <copy todir="${dist-bin.dir}/${idl.dir}">
+      <fileset dir="${idl.dir}" includes="**/*"/>
+    </copy>
+-->
+    <zip zipfile="${dist.dir}/${dist-bin}.zip">
+      <fileset dir="${dist.dir}" includes="${dist-bin}/**/*"/>
+    </zip>
+    <tar destfile="${dist.dir}/${dist-bin}.tar" longfile="gnu">
+      <tarfileset dir="${dist.dir}" includes="${dist-bin}/**/*"/>
+    </tar>
+    <gzip src="${dist.dir}/${dist-bin}.tar" 
zipfile="${dist.dir}/${dist-bin}.tar.gz"/>
+    <bzip2 src="${dist.dir}/${dist-bin}.tar" 
zipfile="${dist.dir}/${dist-bin}.tar.bz2"/>
+  </target>
+
+  <target name="distrib" depends="distrib-src,distrib-bin" 
+   description="build all distributions"/>
+
+  <target name="clean" description="clean the directory">
+    <delete dir="${build.dir}" failonerror="no"/>
+    <delete dir="${dist.dir}"  failonerror="no"/>
+  </target>
+</project>
\ No newline at end of file
Index: ow-transaction/doc/overview.html
diff -u /dev/null ow-transaction/doc/overview.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/doc/overview.html    Tue Mar 23 13:54:26 2004
@@ -0,0 +1,4 @@
+<html>
+<body>
+</body>
+</html>
Index: ow-transaction/doc/uml/CoordinationComponent.png
cvs rdiff: failed to read diff file header /tmp/cvs0ZM4UO for 
CoordinationComponent.png,v: end of file
Index: ow-transaction/doc/uml/EventComponent.png
cvs rdiff: failed to read diff file header /tmp/cvsZFziNW for 
EventComponent.png,v: end of file
Index: ow-transaction/doc/uml/LockComponent.png
cvs rdiff: failed to read diff file header /tmp/cvs6fURzX for 
LockComponent.png,v: end of file
Index: ow-transaction/doc/uml/TransactionComponent.png
cvs rdiff: failed to read diff file header /tmp/cvspC9LoY for 
TransactionComponent.png,v: end of file
Index: ow-transaction/doc/uml/XIDComponent.png
cvs rdiff: failed to read diff file header /tmp/cvss2pGfZ for 
XIDComponent.png,v: end of file
Index: ow-transaction/src/java/org/objectweb/transaction/api/Feature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/Feature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/Feature.java  Tue 
Mar 23 13:54:25 2004
@@ -0,0 +1,43 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: Feature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api;
+
+/**
+ * Root Interface for Derived Features
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="FEATURE" value="feature"
+ */
+public interface Feature 
+{
+    /**
+     * Identifier for the ADL
+     */
+    public static final String FEATURE = "feature" ;
+}
Index: ow-transaction/src/java/org/objectweb/transaction/api/Identity.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/Identity.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/Identity.java Tue 
Mar 23 13:54:25 2004
@@ -0,0 +1,50 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: Identity.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api;
+
+/**
+ * Generic interface of a Transaction Identity
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ *
+ * @version 0.1
+ * 
+ * @adl.id name="IDENTITY" value="identity"
+ */
+public interface Identity 
+{
+    /**
+     * ADL identifier
+     */
+    public static final String IDENTITY = "identity";
+    
+    /**
+     * Provides the identifier of the component.
+     * @return text identifier
+     */
+    public String getIdentifier();
+}
Index: ow-transaction/src/java/org/objectweb/transaction/api/State.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/State.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/State.java    Tue 
Mar 23 13:54:25 2004
@@ -0,0 +1,43 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: State.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api;
+
+/**
+ * Root Interface for Derived State Entities
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="STATE" value="state"
+ */
+public interface State 
+{
+    /**
+     * Identifier for the ADL
+     */
+    public static final String STATE = "state" ;
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/ConflictCheckFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/ConflictCheckFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/ConflictCheckFeature.java
    Tue Mar 23 13:54:25 2004
@@ -0,0 +1,51 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ConflictCheckFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.conflict;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature for checking is a conflict component is really 
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * @adl.id name="CONFLICT_CHECK_FEATURE" value="conflict-check-feature"
+ */
+public interface ConflictCheckFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier
+     */
+    public static final String CONFLICT_CHECK_FEATURE = 
"conflict-check-feature";
+
+    /**
+     * Checks if the current definition is conflictual
+     * @return true if conflictual
+     */
+    public boolean checkConflict();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/ConflitOperationFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/ConflitOperationFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/ConflitOperationFeature.java
 Tue Mar 23 13:54:25 2004
@@ -0,0 +1,45 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ConflitOperationFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.conflict;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature providing conflict the operation element in the conflict 
definition.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface ConflitOperationFeature 
+         extends Feature
+{
+    /**
+     * Provides the name of the related method.
+     * @return the name of the method.
+     */
+    public String getOperation();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/conflict/package.html 
Tue Mar 23 13:54:25 2004
@@ -0,0 +1,36 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Conflict</b> API.
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
conflicts.
+      It means that this module allows to define the notion of conflict 
between a set of operations.
+    </p>
+  </body>
+</html>
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/coordination/CoordinationFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/coordination/CoordinationFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/coordination/CoordinationFeature.java
 Tue Mar 23 13:54:26 2004
@@ -0,0 +1,52 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: CoordinationFeature.java,v 1.1 2004/03/23 12:54:26 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.coordination;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature of validation for the commit engine
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ *
+ * @version 0.1
+ * 
+ * @adl.id name="PROCESS_FEATURE" value="coordination-process"
+ */
+public interface CoordinationFeature 
+         extends Feature 
+{
+    /**
+     * Identifier for the ADL
+     */
+    public static final String PROCESS_FEATURE = "coord-process" ;
+
+    /**
+     * Order for executing a Validation Process
+     */
+    public void process();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/coordination/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/coordination/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/coordination/package.html
     Tue Mar 23 13:54:26 2004
@@ -0,0 +1,54 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:26 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Coordination</b> API.
+    </p>
+    <h3>Table of contents</h3>
+    <p align="justify">
+      <ol>
+        <li><a href="#about">About Coordination</a></li>
+        <li><a href="#uml">Example</a></li>
+      </ol>
+    </p>
+    <p align="justify">
+        This part includes only the interfaces dealing with the purpose of 
the coordination process.
+        This means mainly that only Durability properties are considered in 
this part.
+    </p>
+
+    <h3><a name="about"></a>About Coordination</h3>
+    <p align="justify">
+        The coordination process is a notion that has been recently 
specified in the web-services specifications but the notion of coordination 
is something that has always existed in transaction monitors.
+               The purpose of this package is to specify the behavior of a 
coordination engine and what are the required interfaces for defining such 
engine.
+    </p>
+
+
+    <h3><a name="uml"></a>Example</h3>
+    <img src="../../../../../uml/CoordinationComponent.png" />
+
+  </body>
+</html>
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/DependencyType.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/DependencyType.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/DependencyType.java
        Tue Mar 23 13:54:25 2004
@@ -0,0 +1,42 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: DependencyType.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.dependency;
+
+/**
+ * Defines various types for dependencies.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface DependencyType 
+{
+    /**
+     * Retrieves the int value for this type of dependency.
+     * @return the encoded value for the requested DependencyType
+     */
+    public int getValue();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/DependencyTypeFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/DependencyTypeFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/DependencyTypeFeature.java
 Tue Mar 23 13:54:25 2004
@@ -0,0 +1,45 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: DependencyTypeFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.dependency;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature providing the type of dependency if dependency type is defined.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface DependencyTypeFeature 
+         extends Feature 
+{
+    /**
+     * Provides the type of dependency considered.
+     * @return the instance of the type considered.
+     */
+    public DependencyType getType();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/dependency/package.html 
      Tue Mar 23 13:54:25 2004
@@ -0,0 +1,36 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Dependency</b> API.
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
connection between components.
+      Currently it takes into account dependencies (nested, delegated, 
replicated, ...) between components (transactions, locks, conflicts, ...).
+    </p>
+  </body>
+</html>
Index: ow-transaction/src/java/org/objectweb/transaction/api/event/Event.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/event/Event.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/event/Event.java    
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,48 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: Event.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.event;
+
+/**
+ * Description of an Event.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface Event 
+{
+    /**
+     * Provides the int value associated to this event.
+     * @return the internal value.
+     */
+    public int getValue();
+    
+    /**
+     * Provides the instance of the underlying event.
+     * @return the event instance.
+     */
+    public Event getEvent();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventContext.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventContext.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventContext.java 
      Tue Mar 23 13:54:25 2004
@@ -0,0 +1,38 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: EventContext.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.event;
+
+/**
+ * Root interface for Event contexts.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface EventContext 
+{
+    public Event getEvent();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventEnlistmentFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventEnlistmentFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventEnlistmentFeature.java
     Tue Mar 23 13:54:25 2004
@@ -0,0 +1,60 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: EventEnlistmentFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.event;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature allowing the enlistment of EventNotificationFeature interfaces.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="EVENT_NOTIFICATION_FEATURE" value="evt-notification"
+ */
+public interface EventEnlistmentFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier
+     */
+    public static final String EVENT_ENLISTMENT_FEATURE = "evt-enlistment";
+    
+    /**
+     * Enlist an EventNotificationFeature interface as handler for the 
specified Event.
+     * @param evt the event to be notified.
+     * @param hdl the handler to enlist.
+     */
+    public void enlist(Event evt, EventNotificationFeature hdl);
+    
+    /**
+     * Delist an EventNotificationFeature interface as handler for the 
specified Event.
+     * @param evt the event to forget.
+     * @param hdl the handler to delist.
+     */
+    public void delist(Event evt, EventNotificationFeature hdl);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventListenerFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventListenerFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventListenerFeature.java
       Tue Mar 23 13:54:25 2004
@@ -0,0 +1,60 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: EventListenerFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.event;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature providing the list of EventNofiticationFeature registered 
elements.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * @adl.id name="EVENT_LISTENER_FEATURE" value="evt-listener"
+ */
+public interface EventListenerFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier.
+     */
+    public static final String EVENT_LISTENER_FEATURE = "evt-listener";
+
+    /**
+     * Provides the list of all Event elements registered.
+     * independently of the suscribed event.
+     * @return the list of all EventNotificationFeature
+     */
+    public Event[] getEvents();
+    
+    /**
+     * Provides the list of EventNotificationFeature registered for the 
+     * specified Event type.
+     * @param evt the type of Event
+     * @return the list of EventNotificationFeature corresponding to the 
Event type.
+     */
+    public EventNotificationFeature[] getListeners(Event evt);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventNotificationFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventNotificationFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/event/EventNotificationFeature.java
   Tue Mar 23 13:54:25 2004
@@ -0,0 +1,52 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: EventNotificationFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.event;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Definition of the Event notification interface.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="EVENT_NOTIFICATION_FEATURE" value="evt-notification"
+ */
+public interface EventNotificationFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier.
+     */
+    public static final String EVENT_NOTIFICATION_FEATURE = 
"evt-notification";
+
+    /**
+     * Notify handlers of the occurence of an event.
+     * @param ctx the context in which the event occurs.
+     */
+    public void notify(EventContext ctx);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/event/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/event/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/event/package.html  
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,41 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Event</b> API.
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
event notification.
+      The implementation of a transaction monitor requires to take into 
account a lot of different kind of event (validation process, lock 
mechanisms, resources coordinations, ...).
+      So it is necessary to define a common Event Engine for managing the 
event notifications of the monitor. 
+    </p>
+
+    <h3><a name="uml"></a>Example</h3>
+    <img src="../../../../../uml/EventComponent.png" />
+
+  </body>
+</html>
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ConflictLockCheckFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ConflictLockCheckFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ConflictLockCheckFeature.java
    Tue Mar 23 13:54:25 2004
@@ -0,0 +1,53 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ConflictLockCheckFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature providing a way of checking if two LockMode are conflicting.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * @adl.id name="CONFLICT_LOCK_CHECK_FEATURE" 
value="conflict-lock-check-feature"
+ */
+public interface ConflictLockCheckFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier.
+     */
+    public static final String CONFLICT_LOCK_CHECK_FEATURE = 
"conflict-lock-check-feature";
+
+    /**
+     * Checkes if two lock modes are conflicting.
+     * @param acquired the lock mode acquired.
+     * @param requested the lock mode requested.
+     * @return true if the two modes are conflicting (false if 
non-conflicting).
+     */
+    public boolean isConflict(LockMode acquired, LockMode requested);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ExclusiveLockFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ExclusiveLockFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ExclusiveLockFeature.java
        Tue Mar 23 13:54:25 2004
@@ -0,0 +1,66 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ExclusiveLockFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+/**
+ * Definition of an exclusive Lock.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="EXCLUSIVE_LOCK_FEATURE" value="exclusive-lock-feature"
+ */
+public interface ExclusiveLockFeature 
+         extends ReleaseLockFeature 
+{
+    /**
+     * ADL Identifier
+     */
+    public static final String EXCLUSIVE_LOCK_FEATURE = 
"exclusive-lock-feature";
+    
+    /**
+     * Acquire the Lock. 
+     * If the Lock is not available, the method wait for the release of the 
Lock
+     * @param id - the lock requester
+     */
+    public void acquire(LockIdentifier id);
+
+    /**
+     * Try to acquire the Lock.
+     * This is a non-blocking method.
+     * @param id - the lock requester
+     * @return true if the lock is acquired - false if the lock can not be 
acquired.
+     */
+    public boolean tryAcquire(LockIdentifier id);
+
+    /**
+     * Check if the Lock is acquired.
+     * @param id - the lock requester
+     * @return true if the lock is currently acquired - false if the lock is 
not acquired.
+     */
+    public boolean isAcquired(LockIdentifier id);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockIdentifier.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockIdentifier.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockIdentifier.java
      Tue Mar 23 13:54:25 2004
@@ -0,0 +1,43 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: LockIdentifier.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+/**
+ * Defines the interface of a Lock identifier.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface LockIdentifier 
+{
+    /**
+     * Method which compare two LockIdentifier entities.
+     * @param id the LocIdentifier to compare.
+     * @return true if the two identifiers are the sames else return false.
+     */
+    public boolean equals(LockIdentifier id);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockMode.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockMode.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/lock/LockMode.java  
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,41 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: LockMode.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+import org.objectweb.transaction.api.event.Event;
+
+/**
+ * Particular  Event dealing with different kind of lock mode.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface LockMode 
+         extends Event
+{
+
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockQueueState.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockQueueState.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/lock/LockQueueState.java
      Tue Mar 23 13:54:25 2004
@@ -0,0 +1,47 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: LockQueueState.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+import org.objectweb.transaction.api.State;
+
+/**
+ * State describing a queue of acquired locks.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * @adl.id name="LOCK_QUEUE_STATE" value="lock-queue-state"
+ */
+public interface LockQueueState 
+         extends State 
+{
+    /**
+     * ADL Identifier.
+     */
+    public static final String LOCK_QUEUE_STATE = "lock-queue-state";
+    
+    public void addToQueue();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ModeLockFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ModeLockFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ModeLockFeature.java
     Tue Mar 23 13:54:25 2004
@@ -0,0 +1,70 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ModeLockFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+/**
+ * Definition of a mode Lock.
+ * A possible specialisation is the Read/Write model.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="MODE_LOCK_FEATURE" value="mode-lock-feature"
+ */
+public interface ModeLockFeature 
+         extends ReleaseLockFeature 
+{
+    /**
+     * ADL Identifier
+     */
+    public static final String MODE_LOCK_FEATURE = "mode-lock-feature";
+        
+    /**
+     * Acquire the Lock with a specific mode. 
+     * If the Lock is not available, the method wait for the release of the 
Lock.
+     * @param id - the lock requester.
+     * @param mode - the requested mode of lock.
+     */
+    public void acquire(LockIdentifier id, LockMode mode);
+
+    /**
+     * Try to acquire the Lock.
+     * This is a non-blocking method.
+     * @param id - the lock requester.
+     * @param mode - the requested lock mode.
+     * @return true if the lock is acquired - false if the lock can not be 
acquired.
+     */
+    public boolean tryAcquire(LockIdentifier id, LockMode mode);
+
+    /**
+     * Check if the Lock is acquired.
+     * @param id - the lock requester.
+     * @param mode - the requested lock mode.
+     * @return true if the lock is currently acquired - false if the lock is 
not acquired.
+     */
+    public boolean isAcquired(LockIdentifier id, LockMode mode);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ReleaseLockFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ReleaseLockFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/lock/ReleaseLockFeature.java
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,52 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ReleaseLockFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.lock;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Abstract Feature Definition for a Lock Feature.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * 
+ * @adl.id name="RELEASE_LOCK_FEATURE" value="release-lock-feature"
+ */
+public interface ReleaseLockFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier
+     */
+    public static final String RELEASE_LOCK_FEATURE = "release-lock-feature";
+    
+    /**
+     * Release the underlying lock acquired.
+     * @param id - identifier of the lock requester
+     */
+    public void release(LockIdentifier id);
+}
Index: ow-transaction/src/java/org/objectweb/transaction/api/lock/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/lock/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/lock/package.html   
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,237 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Lock</b> API.
+    </p>
+    <h3>Table of contents</h3>
+    <p align="justify">
+      <ol>
+        <li><a href="#about">About Locking</a></li>
+        <li><a href="#policy">Lock Policies</a></li>
+        <li><a href="#model">Lock Dependencies</a></li>
+        <li><a href="#uml">Example</a></li>
+      </ol>
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
locks.
+      This means mainly that only Consistency properties are considered in 
this part.
+    </p>
+    
+    <h3><a name="about"></a>About Locking</h3>
+    <p align="justify">
+      Locking ensures the <b>consitency</b> of accessed data.
+      Before accessing a data, the system request the lock associated to 
this data.
+      If the lock is available, the request is satisfied and the system can 
access the data.
+      If the lock is not available, the system should wait for the release 
of this lock before following its execution.
+      Usually, the lock is released when the system do not use the data 
anymore.
+      But in the context of transaction, the lock is released after the 
completion of the transaction.
+    </p>
+    
+       <p>
+       When implementing transactional locking, we considered the three 
criteria as follows:
+               <ol>
+                       <li>When a lock is requested, we need an efficient 
way of checking whether a conflicting lock is already held by another 
transaction.
+                       <li>When a lock is released, transactions that 
requested conflicting locks earlier and have therefore been suspended should 
now be considered for being resumed.
+                       <li>When a transaction terminates, all locks (still) 
held on behalf of the transaction are released at once.
+               </ol>
+       </p>
+       <p>
+               There are also other points to consider:
+               <ul>
+                       <li><b>FIFO</b>: requests are satisfied in the order 
they arrived (if possible)
+                       <li><b>No starvation</b>: To prevent exclusive locks 
starvation, a shared lock request shouldn't be allowed to pass a previously 
issued exclusive lock request that is already waiting for one or more shared 
locks to be released.
+                       <li><b>Lock conversion</b>: if the same transaction 
which holds a lock asks for another lock, then :
+                               <ul>
+                                       <li>the original lock can be 
converted or</li> 
+                                       <li>a transaction can have multiple 
locks acquired on the same item.</li>
+                               </ul>
+                       </li>
+               </ul>
+    </p>
+    
+    <h3><a name="policy"></a>Lock Models</h3>
+    <h4>Read/Write Model  (<i>R/W Model</i>)</h4>
+    <p align="justify">
+      <table width="100" border="1" align="center">
+        <tr align="center">
+          <td>Locked\Requested</td>
+          <td>Read</td>
+          <td>Write</td>
+        </tr>
+        <tr align="center">
+          <td>Read</td>
+          <td><b>Yes</b></td>
+          <td>No</td>
+        </tr>
+        <tr align="center">
+          <td>Write</td>
+          <td>No</td>
+          <td>No</td>
+        </tr>
+      </table>
+    </p>
+       <p align="justify">    
+       Two transactions can share a r/w lock by having it acquired in 
non-conflicting modes (two reads). 
+       If a lock is acquired by a transaction in the write mode, if another 
transaction is going to acquire a lock in the read or write (both are 
conflicting with write) modes, it suspended until the conflicting write lock 
is released.
+       </p>
+       <p align="justify">
+       As for supended waiting requests, a single queue of suspended lock 
requests is sufficient. 
+       However, it is also possible to have separate R and W queues as in 
<i>MySQL</i>: 
+       The locking method <i>MySQL</i> uses for WRITE locks works as follows:
+               <ul>
+                       <li>If there are no locks on the table, put a write 
lock on it.</li>
+                       <li>Otherwise, put the lock request in the write lock 
queue. </li>
+               </ul>
+
+               The locking method <i>MySQL</i> uses for READ locks works as 
follows:
+               <ul>
+                       <li>If there are no write locks on the table, put a 
read lock on it.</li>
+                       <li>Otherwise, put the lock request in the read lock 
queue.</li> 
+               </ul>
+
+               When a lock is released, the lock is made available to the 
threads in the write lock queue, then to the threads in the read lock queue.
+               This means that:
+               <ul>
+                       <li>if you have many updates on a table, SELECT 
statements will wait until there are no more updates,</li>
+                       <li>since there are two queues, there can be write 
lock starvation problem</li>
+               </ul>
+       </p>
+       <p align="justify">
+               The r/w model often considers other locks related to read and 
write operations. This includes:
+               <ul align="justify">
+                       <li>
+                               <i>Update locks</i>: 
+                       <table width="100" border="1" align="center">
+                               <tr align="center">
+                                       <td>Locked\Requested</td>
+                                       <td>Read</td>
+                                       <td>Update</td>
+                                       <td>Write</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Read</td>
+                                       <td><b>Yes</b></td>
+                                       <td><b>Yes</b></td>
+                                       <td>No</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Update</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Write</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                               </tr>
+                       </table>
+                               <p align="justify">
+                                       Use of this lock mode prevents 
deadlocks in case that multiple transactions are reading some data, decide 
which data to update, and then update selected data. 
+                               In this case, transaction share the data 
thanks to sharing the read lock acquired, but they are deadlocked when 
waiting for the write (exclusive) lock since the other read locks have to be 
released. 
+                               Update lock solve this problem thanks to it 
is not conflicting with read, but it is conflicting with itself and also read 
is conflicting with it. 
+                               Therefore, there can be only one transaction 
that acquired the lock in the update mode, which prevents new update or read 
locks acquired. 
+                               Before going to write (to convert the update 
mode to the write mode), the transaction just has to wait for reads acquired 
before.
+                       </p>
+                   </li>
+                       <li>
+                               <i>Intention locks</i>: 
+                       <table width="100" border="1" align="center">
+                               <tr align="center">
+                                       <td>Locked\Requested</td>
+                                       <td>Read (S)</td>
+                                       <td>Write (X)</td>
+                                       <td>Read Intention (IS)</td>
+                                       <td>Write Intention (IX)</td>
+                                       <td>Read + Write Intention (SIX)</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Read (S)</td>
+                                       <td><b>Yes</b></td>
+                                       <td>No</td>
+                                       <td><b>Yes</b></td>
+                                       <td>No</td>
+                                       <td>No</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Write (X)</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Read Intention (IS)</td>
+                                       <td><b>Yes</b></td>
+                                       <td>No</td>
+                                       <td><b>Yes</b></td>
+                                       <td><b>Yes</b></td>
+                                       <td><b>Yes</b></td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Write Intention (IX)</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td><b>Yes</b></td>
+                                       <td><b>Yes</b></td>
+                                       <td>No</td>
+                               </tr>
+                               <tr align="center">
+                                       <td>Read + Write Intention (SIX)</td>
+                                       <td>No</td>
+                                       <td>No</td>
+                                       <td><b>Yes</b></td>
+                                       <td>No</td>
+                                       <td>No</td>
+                               </tr>
+                       </table>
+                               <p align="justify">
+                                       These locks are used in locking with 
different granularity. 
+                               E.g., in relational databases, we can lock a 
single record or whole table. 
+                               To indicate that it is not possible to lock a 
table in the write mode when there is one of its records locked in the read 
(or write) mode, we lock the table by the intention-read (intention-write 
mode). 
+                               An equivalent of the update lock is the 
read-intention-write mode.
+                       </p>
+                   </li>
+               </ul>
+       </p>
+       <p align="justify">
+               Note that even in the r/w model with the update lock mode as 
an extension, the conflict table is not symmetric
+       </p>
+    
+    
+    <h3><a name="dependency"></a>Lock Dependencies</h3>
+    <p align="justify">
+    </p>    
+
+    <h3><a name="uml"></a>Example</h3>
+    <img src="../../../../../uml/LockComponent.png" />
+
+  </body>
+</html>
Index: ow-transaction/src/java/org/objectweb/transaction/api/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/package.html  Tue 
Mar 23 13:54:25 2004
@@ -0,0 +1,35 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Framework</b> API.
+    </p>
+    <p>
+      This part includes only the basic interfaces which would be reused by 
the differents modules of the Transaction Working Group.
+    </p>
+  </body>
+</html>
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/resource/ResourceEvent.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/resource/ResourceEvent.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/resource/ResourceEvent.java
   Tue Mar 23 13:54:26 2004
@@ -0,0 +1,45 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: ResourceEvent.java,v 1.1 2004/03/23 12:54:26 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.resource;
+
+import org.objectweb.transaction.api.event.Event;
+
+/**
+ * Root Interface for Events of a Resource
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ *
+ * @version 0.1
+ */
+public interface ResourceEvent 
+         extends Event
+{
+    /**
+     * Identifier for the ADL
+     */
+    public static final String RESOURCE_EVENT = "resource-event" ;
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/resource/ResourceVote.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/resource/ResourceVote.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/resource/ResourceVote.java
    Tue Mar 23 13:54:26 2004
@@ -0,0 +1,48 @@
+/*====================================================================
+
+ ObjectWeb Transaction Working Group API
+ Contact: http://www.objectweb.org
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ USA
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): ______________________________________.
+
+ ---------------------------------------------------------------------
+ $Id: ResourceVote.java,v 1.1 2004/03/23 12:54:26 rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.transaction.api.resource;
+
+/**
+ * Description of an Event.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface ResourceVote 
+{
+    /**
+     * Provides the int value associated to this vote.
+     * @return the internal value.
+     */
+    public int getValue();
+    
+    /**
+     * Provides the instance of the underlying Vote.
+     * @return the instance of the Vote.
+     */
+    public ResourceVote getVote();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/resource/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/resource/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/resource/package.html 
Tue Mar 23 13:54:26 2004
@@ -0,0 +1,36 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:26 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Resource</b> API.
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
resources.
+      This means mainly that only Isolation properties are considered in 
this part.
+    </p>
+  </body>
+</html>
Index: ow-transaction/src/java/org/objectweb/transaction/api/stamp/Stamp.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/stamp/Stamp.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/stamp/Stamp.java    
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,41 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+====================================================================*/
+package org.objectweb.transaction.api.stamp;
+
+/**
+ * Representation of a Stamp
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface Stamp 
+{
+    /**
+     * Compare two Stamp for ordering them.
+     * @param s the stamp to compare to the current one.
+     * @return 0 is stamps are equivalent, &lt; 0 if current stamp is 
inferior to the parameter and &gt; 0 in the other case.
+     */
+    public int compare(Stamp s);
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/stamp/StampProviderFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/stamp/StampProviderFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/stamp/StampProviderFeature.java
       Tue Mar 23 13:54:25 2004
@@ -0,0 +1,50 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+====================================================================*/
+package org.objectweb.transaction.api.stamp;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Feature providing instances of stamps when requested depending on a 
+ * particular parameter (time, counter, ...).
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * @adl.id name="STAMP_PROVIDER_FEATURE" value="stamp-provider-feature"
+ */
+public interface StampProviderFeature 
+         extends Feature 
+{
+    /**
+     * ADL Identifier
+     */
+    public static final String STAMP_PROVIDER_FEATURE = 
"stamp-provider-feature";
+
+    /**
+     * Provides a stamp.
+     * @return the instance of the stamp.
+     */
+    public Stamp getStamp();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/stamp/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/stamp/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ ow-transaction/src/java/org/objectweb/transaction/api/stamp/package.html  
  Tue Mar 23 13:54:25 2004
@@ -0,0 +1,36 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:25 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Stamp</b> API.
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
stamps.
+      This means mainly that only Consistency properties are considered in 
this part.
+    </p>
+  </body>
+</html>
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/synchronization/SynchronizationEvent.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/synchronization/SynchronizationEvent.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/synchronization/SynchronizationEvent.java
     Tue Mar 23 13:54:26 2004
@@ -0,0 +1,41 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: SynchronizationEvent.java,v 1.1 2004/03/23 12:54:26 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.synchronization;
+
+import org.objectweb.transaction.api.event.Event;
+
+/**
+ * Root interface for derived synchronization events.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public interface SynchronizationEvent 
+         extends Event 
+{
+
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/synchronization/package.html
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/synchronization/package.html:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/synchronization/package.html
  Tue Mar 23 13:54:26 2004
@@ -0,0 +1,36 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb Transaction Working Group API                              -->
+<!-- Contact: http://www.objectweb.org                                    -->
+
+<!-- This library is free software; you can redistribute it and/or        -->
+<!-- modify it under the terms of the GNU Lesser General Public           -->
+<!-- License as published by the Free Software Foundation; either         -->
+<!-- version 2.1 of the License, or any later version.                    -->
+
+<!-- This library is distributed in the hope that it will be useful,      -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of       -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     -->
+<!-- Lesser General Public License for more details.                      -->
+
+<!-- You should have received a copy of the GNU Lesser General Public     -->
+<!-- License along with this library; if not, write to the Free Software  -->
+<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 -->
+<!-- USA                                                                  -->
+
+<!-- Initial developer(s): Romain Rouvoy.                                 -->
+<!-- Contributor(s): ______________________________________.              -->
+
+<!-- $Id: package.html,v 1.1 2004/03/23 12:54:26 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+<html>
+  <body>
+    <p>
+      Specification of the <b>Synchronization</b> API.
+    </p>
+    <p>
+      This part includes only the interfaces dealing with the purpose of 
synchronizations.
+      This means mainly that only Consistency properties are considered in 
this part.
+    </p>
+  </body>
+</html>
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/InvalidTransactionStatusException.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/InvalidTransactionStatusException.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/InvalidTransactionStatusException.java
    Tue Mar 23 13:54:25 2004
@@ -0,0 +1,40 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: InvalidTransactionStatusException.java,v 1.1 2004/03/23 12:54:25 rouvoy 
Exp $
+====================================================================*/
+package org.objectweb.transaction.api.transaction;
+
+/**
+ * Exception raised when the TransactionStatus is conflictual with the 
+ * current transaction.
+ * 
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ */
+public class InvalidTransactionStatusException 
+     extends Exception 
+{
+
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/TransactionActivationFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/TransactionActivationFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/TransactionActivationFeature.java
 Tue Mar 23 13:54:25 2004
@@ -0,0 +1,62 @@
+/*====================================================================
+
+ObjectWeb Transaction Working Group API
+Contact: http://www.objectweb.org
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): ______________________________________.
+
+---------------------------------------------------------------------
+$Id: TransactionActivationFeature.java,v 1.1 2004/03/23 12:54:25 rouvoy Exp $
+====================================================================*/
+package org.objectweb.transaction.api.transaction;
+
+import org.objectweb.transaction.api.Feature;
+
+/**
+ * Defines the operation allowed when activating transactions.
+ *
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx";>Romain Rouvoy</a>
+ * @version 0.1
+ * @adl.id name="TX_ACTIVATION_FEATURE" value="tx-activation"
+ */
+public interface TransactionActivationFeature 
+                extends Feature
+{
+    /**
+     * Identifier for the ADL
+     */
+    public static final String TX_ACTIVATION_FEATURE = "tx-activation";
+    
+       /**
+        * Starts a new transaction process
+        */
+       public void begin();
+       
+       /**
+        * Stops the current transaction process and
+        * applies the changes
+        */
+       public void commit();
+       
+       /**
+        * Stops the current transaction process and
+        * forgets the changes
+        */
+       public void rollback();
+}
Index: 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/TransactionHolderFeature.java
diff -u /dev/null 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/TransactionHolderFeature.java:1.1
--- /dev/null   Tue Mar 23 13:54:26 2004
+++ 
ow-transaction/src/java/org/objectweb/transaction/api/transaction/TransactionHolderFeature.java
     Tue Mar 23 13:54:25 2004
@@ -0,0 +1,46 @@
+/*=========