You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2009/05/04 18:05:31 UTC

svn commit: r771344 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/ jackrabbit-jcr-tests/src...

Author: reschke
Date: Mon May  4 16:05:30 2009
New Revision: 771344

URL: http://svn.apache.org/viewvc?rev=771344&view=rev
Log:
JCR-2085: RetentionPolicy now obtained from a pre-populated node, see new property "retentionpolicyholder"; change cleanup so that it cleans up retention policies as well.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java
    jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/JackrabbitRepositoryStub.properties
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JNDIRepositoryStub.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryHelper.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/retention/AbstractRetentionTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/JackrabbitRepositoryStub.java Mon May  4 16:05:30 2009
@@ -43,8 +43,6 @@
 import org.apache.jackrabbit.api.JackrabbitWorkspace;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.core.retention.RetentionPolicyImpl;
-import org.apache.jackrabbit.core.retention.RetentionRegistryImpl;
-import org.apache.jackrabbit.test.NotExecutableException;
 import org.apache.jackrabbit.test.RepositoryStub;
 import org.apache.jackrabbit.test.RepositoryStubException;
 
@@ -176,10 +174,6 @@
         return repository;
     }
 
-    public RetentionPolicy getRetentionPolicy(Session session) throws NotExecutableException, RepositoryException {
-        return RetentionPolicyImpl.createRetentionPolicy(RepositoryStub.RETENTION_POLICY_NAME, session);
-    }
-
     private void prepareTestContent(Session session)
             throws RepositoryException, IOException {
         JackrabbitWorkspace workspace =
@@ -206,10 +200,7 @@
         addQueryTestData(getOrAddNode(data, "query"));
         addNodeTestData(getOrAddNode(data, "node"));
         addExportTestData(getOrAddNode(data, "docViewTest"));
-        
-        // add a policy
-        // TODO check we're doing the right thing here
-        RetentionPolicyImpl.createRetentionPolicy("retentionPolicyName", session);
+        addRetentionTestData(getOrAddNode(data, "retentionTest"));
         
         session.save();
     }
@@ -240,6 +231,14 @@
     }
 
     /**
+     * Creates a node with a RetentionPolicy
+     */
+    private void addRetentionTestData(Node node) throws RepositoryException {
+        RetentionPolicy rp = RetentionPolicyImpl.createRetentionPolicy("testRetentionPolicy", node.getSession());
+        node.getSession().getRetentionManager().setRetentionPolicy(node.getPath(), rp);
+    }
+
+    /**
      * Creates four nodes under the given node. Each node has a String
      * property named "prop1" with some content set.
      */

Modified: jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/JackrabbitRepositoryStub.properties
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/JackrabbitRepositoryStub.properties?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/JackrabbitRepositoryStub.properties (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/JackrabbitRepositoryStub.properties Mon May  4 16:05:30 2009
@@ -505,3 +505,7 @@
 #         OPV behaviour in order to successfully test Node.restore and Workspace.restore with uuid conflict.
 javax.jcr.tck.simple.nodename4=childNodeName
 
+# ==============================================================================
+# JAVAX.JCR.RETENTION CONFIGURATION
+# ==============================================================================
+javax.jcr.tck.retentionpolicyholder=/testdata/retentionTest

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java Mon May  4 16:05:30 2009
@@ -27,6 +27,7 @@
 import javax.jcr.Repository;
 import javax.jcr.NamespaceException;
 import javax.jcr.RangeIterator;
+import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.Value;
 import javax.jcr.ValueFactory;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
@@ -34,6 +35,8 @@
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.nodetype.PropertyDefinition;
+import javax.jcr.retention.RetentionManager;
+import javax.jcr.retention.RetentionPolicy;
 
 import java.util.StringTokenizer;
 import java.util.Random;
@@ -743,11 +746,29 @@
         s.refresh(false);
         Node root = s.getRootNode();
         Node testRootNode;
+        
+        RetentionManager rm;
+        try {
+            rm = s.getRetentionManager();
+        } catch (UnsupportedRepositoryOperationException ex) {
+            rm = null;
+        }
+        
         if (root.hasNode(testPath)) {
             // clean test root
             testRootNode = root.getNode(testPath);
             for (NodeIterator children = testRootNode.getNodes(); children.hasNext();) {
                 Node child = children.nextNode();
+
+                // Remove retention policy if needed
+                if (rm != null) {
+                    RetentionPolicy pol = rm.getRetentionPolicy(child.getPath());
+                    if (pol != null) {
+                        rm.removeRetentionPolicy(child.getPath());
+                        s.save();
+                    }
+                }
+                
                 NodeDefinition nodeDef = child.getDefinition();
                 if (!nodeDef.isMandatory() && !nodeDef.isProtected()) {
                     // try to remove child

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JNDIRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JNDIRepositoryStub.java?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JNDIRepositoryStub.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JNDIRepositoryStub.java Mon May  4 16:05:30 2009
@@ -16,14 +16,12 @@
  */
 package org.apache.jackrabbit.test;
 
+import java.util.Properties;
+
 import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.retention.RetentionPolicy;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.rmi.PortableRemoteObject;
-import java.util.Properties;
 
 /**
  * Implements the abstract class <code>RepositoryStub</code> and uses JNDI
@@ -65,10 +63,4 @@
         }
         return repository;
     }
-
-    public RetentionPolicy getRetentionPolicy(Session session) throws NotExecutableException, RepositoryException {
-        // TODO
-        throw new NotExecutableException("");
-    }
-
 }

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryHelper.java?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryHelper.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryHelper.java Mon May  4 16:05:30 2009
@@ -16,14 +16,13 @@
  */
 package org.apache.jackrabbit.test;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jcr.Credentials;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.Credentials;
-import javax.jcr.retention.RetentionPolicy;
-
-import java.util.Map;
-import java.util.HashMap;
 
 /**
  * Utility class to get access to {@link javax.jcr.Session} instances.
@@ -188,9 +187,4 @@
     public Credentials getSuperuserCredentials() {
         return repoStub.getSuperuserCredentials();
     }
-    
-    public RetentionPolicy getRetentionPolicy(Session session) throws NotExecutableException, RepositoryException {
-        return repoStub.getRetentionPolicy(session);
-    }
-    
 }

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java Mon May  4 16:05:30 2009
@@ -118,7 +118,7 @@
      */
     public static final String PROP_HOLD_NAME = "holdname";
     
-    public static final String RETENTION_POLICY_NAME = "retentionPolicyName";
+    public static final String RETENTION_POLICY_HOLDER = "retentionpolicyholder";
 
     /**
      * @since JCR 2.0
@@ -301,10 +301,4 @@
     public String getProperty(String name) {
         return environment.getProperty(name);
     }
-    
-    /**
-     * Return a retention policy for testing.
-     * @return retention policy
-     */
-    public abstract RetentionPolicy getRetentionPolicy(Session session) throws NotExecutableException, RepositoryException;
 }

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/retention/AbstractRetentionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/retention/AbstractRetentionTest.java?rev=771344&r1=771343&r2=771344&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/retention/AbstractRetentionTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/retention/AbstractRetentionTest.java Mon May  4 16:05:30 2009
@@ -53,7 +53,7 @@
     }
 
     protected RetentionPolicy getApplicableRetentionPolicy() throws NotExecutableException, RepositoryException {
-        return helper.getRetentionPolicy(superuser);
+        return superuser.getRetentionManager().getRetentionPolicy(getProperty(RepositoryStub.RETENTION_POLICY_HOLDER));
     }
 
     protected static RetentionManager getRetentionManager(Session s) throws RepositoryException, NotExecutableException {