ozeigermann    2004/08/03 03:48:28

  Modified:    src/webdav/server/org/apache/slide/webdav/method
                        AbstractWebdavMethod.java
               src/conf/webapp Domain.xml
  Log:
  Added switch (on by default) that allows all methods to be executed
  inside transactions
  
  Revision  Changes    Path
  1.42      +19 -0     
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AbstractWebdavMethod.java
  
  Index: AbstractWebdavMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AbstractWebdavMethod.java,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- AbstractWebdavMethod.java 3 Aug 2004 09:37:47 -0000       1.41
  +++ AbstractWebdavMethod.java 3 Aug 2004 10:48:27 -0000       1.42
  @@ -340,6 +340,10 @@
               if (!slideToken.isExternalTransaction()) {
                   token.begin();
                   transactionIsStarted = true;
  +                if (txForAllRequests()) {
  +                    slideToken.setForceStoreEnlistment(true);
  +                }
  +
                   if (this instanceof ReadMethod) {
                       assureGlobalReadLock();
                   } else if (this instanceof WriteMethod) {
  @@ -801,11 +805,26 @@
           return 
"true".equalsIgnoreCase(token.getNamespaceConfig().getParameter("history-collection-hack"));
       }
   
  +    /**
  +     * Checks whether all requests shall be done inside of transactions.
  +     */
  +    protected boolean txForAllRequests() {
  +        return 
"true".equalsIgnoreCase(token.getNamespaceConfig().getParameter("all-methods-in-transactions"));
  +    }
  +
  +    /**
  +     * Checks if Slide is configured to allow at most a single write request at a 
time.
  +     * @return <code>true</code> if there can be at most one write request at a 
time 
  +     */
       protected boolean isSequentialWrite() {
           String sm = token.getNamespaceConfig().getParameter("sequential-mode");
           return ("write".equalsIgnoreCase(sm) || "full".equalsIgnoreCase(sm));
       }
       
  +    /**
  +     * Checks if Slide is configured to allow reads while write requests are being 
executed.
  +     * @return <code>true</code> if reads are disallowed during writes 
  +     */
       protected boolean isSequentialRead() {
           return 
"full".equalsIgnoreCase(token.getNamespaceConfig().getParameter("sequential-mode"));
       }
  
  
  
  1.64      +2 -0      jakarta-slide/src/conf/webapp/Domain.xml
  
  Index: Domain.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/conf/webapp/Domain.xml,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- Domain.xml        27 Jul 2004 11:39:49 -0000      1.63
  +++ Domain.xml        3 Aug 2004 10:48:27 -0000       1.64
  @@ -75,6 +75,8 @@
               <parameter name="nested_roles_maxdepth">0</parameter>
               <!-- Can be "off", "write" and "full" -->
               <parameter name="sequential-mode">full</parameter>
  +            <!-- "false" lets all read-only methods be executed outside of 
transactions -->
  +            <parameter name="all-methods-in-transactions">true</parameter>
           </configuration>
           <data>
               <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/">
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to