You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/12/06 15:08:35 UTC

svn commit: r1042650 - in /jackrabbit/branches/2.2: ./ jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security/user/ jackrabbit-core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/ jackrabbit-core/src/test/java/org/apache/jac...

Author: jukka
Date: Mon Dec  6 14:08:34 2010
New Revision: 1042650

URL: http://svn.apache.org/viewvc?rev=1042650&view=rev
Log:
2.2: Merged trunk revisions.

Modified:
    jackrabbit/branches/2.2/   (props changed)
    jackrabbit/branches/2.2/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security/user/QueryBuilder.java
    jackrabbit/branches/2.2/jackrabbit-core/pom.xml
    jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java
    jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
    jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java
    jackrabbit/branches/2.2/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestAll.java

Propchange: jackrabbit/branches/2.2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec  6 14:08:34 2010
@@ -2,4 +2,4 @@
 /jackrabbit/sandbox/JCR-1456:774917-886178
 /jackrabbit/sandbox/JCR-2170:812417-816332
 /jackrabbit/sandbox/tripod-JCR-2209:795441-795863
-/jackrabbit/trunk:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041761
+/jackrabbit/trunk:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643

Modified: jackrabbit/branches/2.2/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security/user/QueryBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security/user/QueryBuilder.java?rev=1042650&r1=1042649&r2=1042650&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security/user/QueryBuilder.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/security/user/QueryBuilder.java Mon Dec  6 14:08:34 2010
@@ -94,7 +94,7 @@ public interface QueryBuilder<T> {
      * Set limits for the query. The limits consists of an offset and a maximal
      * number of results. <code>offset</code> refers to the offset within the full
      * result set at which the returned result set should start expressed in terms 
-     * of the number of {@link Authorizable}s to skip. <code>limit</code> sets the
+     * of the number of {@link Authorizable}s to skip. <code>maxCount</code> sets the
      * maximum size of the result set expressed in terms of the number of authorizables
      * to return.
      *

Modified: jackrabbit/branches/2.2/jackrabbit-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/pom.xml?rev=1042650&r1=1042649&r2=1042650&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/pom.xml (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/pom.xml Mon Dec  6 14:08:34 2010
@@ -33,6 +33,10 @@
   <name>Jackrabbit Core</name>
   <description>Jackrabbit content repository implementation</description>
 
+  <properties>
+    <org.apache.jackrabbit.test.integration>false</org.apache.jackrabbit.test.integration>
+  </properties>
+
   <build>
     <plugins>
       <plugin>
@@ -106,6 +110,10 @@ org.apache.jackrabbit.test.api.Shareable
 org.apache.jackrabbit.test.api.ShareableNodeTest#testGetNodesByPattern
               </value>
             </property>
+            <property>
+              <name>org.apache.jackrabbit.test.integration</name>
+              <value>${org.apache.jackrabbit.test.integration}</value>
+            </property>
           </systemProperties>
         </configuration>
         <executions>
@@ -287,16 +295,22 @@ org.apache.jackrabbit.test.api.Shareable
     </dependency>
   </dependencies>
 
-  <!--
-    These profiles can be used to run the (integration) tests against different DB backends.
-    For instance, if you want to run the integration tests against MySQL backend, do:
-    
-      mvn clean integration-test -Pmysql,use-descriptor-overlay
-    
-    Note: the ${config.db.name} database is dropped and re-created in the clean phase. 
-  -->
   <profiles>
     <profile>
+      <id>integrationTesting</id>
+      <properties>
+        <org.apache.jackrabbit.test.integration>true</org.apache.jackrabbit.test.integration>
+      </properties>
+    </profile>
+    <!--
+      These profiles can be used to run the (integration) tests against different DB backends.
+      For instance, if you want to run the integration tests against MySQL backend, do:
+
+        mvn clean integration-test -Pmysql,use-descriptor-overlay
+
+      Note: the ${config.db.name} database is dropped and re-created in the clean phase. 
+    -->
+    <profile>
       <id>mysql</id>
       <properties>
         <config.db.name>jackrabbit</config.db.name>

Modified: jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java?rev=1042650&r1=1042649&r2=1042650&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java Mon Dec  6 14:08:34 2010
@@ -16,6 +16,10 @@
  */
 package org.apache.jackrabbit.core.version;
 
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.JCR_ACTIVITY;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.JCR_VERSIONHISTORY;
+import static org.apache.jackrabbit.spi.commons.name.NameConstants.MIX_VERSIONABLE;
+
 import java.util.Calendar;
 
 import javax.jcr.ItemNotFoundException;
@@ -554,6 +558,45 @@ abstract class InternalVersionManagerBas
     }
 
     /**
+     * Creates a new version of the given node using the given version
+     * creation time.
+     *
+     * @param node the node to be checked in
+     * @param created version creation time
+     * @return the new version
+     * @throws RepositoryException if an error occurs
+     */
+    protected InternalVersion checkin(NodeStateEx node, Calendar created)
+            throws RepositoryException {
+        WriteOperation operation = startWriteOperation();
+        try {
+            boolean simple =
+                !node.getEffectiveNodeType().includesNodeType(MIX_VERSIONABLE);
+            InternalVersionHistoryImpl vh;
+            if (simple) {
+                // in simple versioning the history id needs to be calculated
+                vh = (InternalVersionHistoryImpl) getVersionHistoryOfNode(
+                        node.getNodeId());
+            } else {
+                // in full versioning, the history id can be retrieved via
+                // the property
+                vh = (InternalVersionHistoryImpl) getVersionHistory(
+                        node.getPropertyValue(JCR_VERSIONHISTORY).getNodeId());
+            }
+
+            InternalVersion version =
+                internalCheckin(vh, node, simple, created);
+
+            operation.save();
+            return version;
+        } catch (ItemStateException e) {
+            throw new RepositoryException(e);
+        } finally {
+            operation.close();
+        }
+    }
+
+    /**
      * Checks in a node
      *
      * @param history the version history
@@ -568,26 +611,19 @@ abstract class InternalVersionManagerBas
             InternalVersionHistoryImpl history,
             NodeStateEx node, boolean simple, Calendar created)
             throws RepositoryException {
-        WriteOperation operation = startWriteOperation();
-        try {
-            String versionName = calculateCheckinVersionName(history, node, simple);
-            InternalVersionImpl v = history.checkin(
-                    NameFactoryImpl.getInstance().create("", versionName),
-                    node, created);
-
-            // check for jcr:activity
-            if (node.hasProperty(NameConstants.JCR_ACTIVITY)) {
-                NodeId actId = node.getPropertyValue(NameConstants.JCR_ACTIVITY).getNodeId();
-                InternalActivityImpl act = (InternalActivityImpl) getItem(actId);
-                act.addVersion(v);
-            }
-            operation.save();
-            return v;
-        } catch (ItemStateException e) {
-            throw new RepositoryException(e);
-        } finally {
-            operation.close();
+        String versionName = calculateCheckinVersionName(history, node, simple);
+        InternalVersionImpl v = history.checkin(
+                NameFactoryImpl.getInstance().create("", versionName),
+                node, created);
+
+        // check for jcr:activity
+        if (node.hasProperty(JCR_ACTIVITY)) {
+            NodeId actId = node.getPropertyValue(JCR_ACTIVITY).getNodeId();
+            InternalActivityImpl act = (InternalActivityImpl) getItem(actId);
+            act.addVersion(v);
         }
+
+        return v;
     }
 
     /**

Modified: jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java?rev=1042650&r1=1042649&r2=1042650&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java Mon Dec  6 14:08:34 2010
@@ -401,26 +401,15 @@ public class InternalVersionManagerImpl 
      * item-reading listeners in the observation thread.
      */
     public InternalVersion checkin(
-            final Session session,
-            final NodeStateEx node, final Calendar created)
+            Session session, final NodeStateEx node, final Calendar created)
             throws RepositoryException {
-        return (InternalVersion)
-                escFactory.doSourced((SessionImpl) session, new SourcedTarget() {
-            public Object run() throws RepositoryException {
-                InternalVersionHistoryImpl vh;
-                if (node.getEffectiveNodeType().includesNodeType(NameConstants.MIX_VERSIONABLE)) {
-                    // in full versioning, the history id can be retrieved via
-                    // the property
-                    NodeId histId = node.getPropertyValue(NameConstants.JCR_VERSIONHISTORY).getNodeId();
-                    vh = (InternalVersionHistoryImpl) getVersionHistory(histId);
-                    return internalCheckin(vh, node, false, created);
-                } else {
-                    // in simple versioning the history id needs to be calculated
-                    vh = (InternalVersionHistoryImpl) getVersionHistoryOfNode(node.getNodeId());
-                    return internalCheckin(vh, node, true, created);
-                }
-            }
-        });
+        return (InternalVersion) escFactory.doSourced(
+                (SessionImpl) session,
+                new SourcedTarget() {
+                    public Object run() throws RepositoryException {
+                        return checkin(node, created);
+                    }
+                });
     }
 
     /**

Modified: jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java?rev=1042650&r1=1042649&r2=1042650&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalXAVersionManager.java Mon Dec  6 14:08:34 2010
@@ -233,20 +233,7 @@ public class InternalXAVersionManager ex
             Session session, NodeStateEx node, Calendar created)
             throws RepositoryException {
         if (isInXA()) {
-            InternalVersionHistoryImpl vh;
-            InternalVersion version;
-            if (node.getEffectiveNodeType().includesNodeType(NameConstants.MIX_VERSIONABLE)) {
-                // in full versioning, the history id can be retrieved via
-                // the property
-                NodeId histId = node.getPropertyValue(NameConstants.JCR_VERSIONHISTORY).getNodeId();
-                vh = (InternalVersionHistoryImpl) getVersionHistory(histId);
-                version = internalCheckin(vh, node, false, created);
-            } else {
-                // in simple versioning the history id needs to be calculated
-                vh = (InternalVersionHistoryImpl) getVersionHistoryOfNode(node.getNodeId());
-                version = internalCheckin(vh, node, true, created);
-            }
-            return version;
+            return checkin(node, created);
         } else {
             return vMgr.checkin(session, node, created);
         }
@@ -480,6 +467,7 @@ public class InternalXAVersionManager ex
      * <p/>
      * Before modifying version history given, make a local copy of it.
      */
+    @Override
     protected InternalVersion internalCheckin(
             InternalVersionHistoryImpl history,
             NodeStateEx node, boolean simple, Calendar created)

Modified: jackrabbit/branches/2.2/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestAll.java?rev=1042650&r1=1042649&r2=1042650&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestAll.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestAll.java Mon Dec  6 14:08:34 2010
@@ -58,6 +58,20 @@ public class TestAll extends TestCase {
         suite.addTestSuite(ConcurrentReorderTest.class);
         suite.addTestSuite(ConcurrentAddRemoveNodeTest.class);
 
+        if (Boolean.getBoolean("org.apache.jackrabbit.test.integration")) {
+            suite.addTestSuite(ConcurrencyTest.class);
+            // suite.addTestSuite(ConcurrencyTest3.class);
+            suite.addTestSuite(ConcurrentVersioningTest.class);
+            // suite.addTestSuite(ConcurrentVersioningWithTransactionsTest.class);
+            suite.addTestSuite(ConcurrentCheckinMixedTransactionTest.class);
+            suite.addTestSuite(ConcurrentLoginTest.class);
+            suite.addTestSuite(ConcurrentNodeModificationTest.class);
+            suite.addTestSuite(ConcurrentReadWriteTest.class);
+            suite.addTestSuite(ConcurrentRenameTest.class);
+            suite.addTestSuite(ConcurrentSaveTest.class);
+            suite.addTestSuite(ConcurrentWorkspaceCopyTest.class);
+        }
+
         suite.addTestSuite(UserPerWorkspaceSecurityManagerTest.class);
 
         suite.addTestSuite(PersistenceManagerTest.class);