You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2014/11/26 14:08:11 UTC

svn commit: r1641803 - in /sling/trunk/contrib/extensions/distribution: api/src/main/java/org/apache/sling/distribution/agent/ api/src/main/java/org/apache/sling/distribution/communication/ core/src/main/java/org/apache/sling/distribution/agent/impl/ c...

Author: mpetria
Date: Wed Nov 26 13:08:10 2014
New Revision: 1641803

URL: http://svn.apache.org/r1641803
Log:
SLING-4153: hiding authorization strategy and request time

Added:
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationException.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationStrategy.java
Removed:
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionRequestAuthorizationException.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionRequestAuthorizationStrategy.java
Modified:
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategy.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyFactory.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionTriggerServlet.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageTest.java

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java Wed Nov 26 13:08:10 2014
@@ -27,28 +27,17 @@ import java.util.Arrays;
  */
 public final class DistributionRequest {
 
-    private final long time;
 
     private final DistributionRequestType actionType;
 
     private final String[] paths;
 
     public DistributionRequest(@Nonnull DistributionRequestType actionType, @Nonnull String... paths) {
-        this.time = System.currentTimeMillis();
         this.actionType = actionType;
         this.paths = paths;
     }
 
     /**
-     * get the time this distribution request was created as a {@code long} returned by {@code System#currentTimeMillis}.
-     *
-     * @return the distribution request creation time as returned by {@code System#currentTimeMillis}
-     */
-    public long getTime() {
-        return time;
-    }
-
-    /**
      * get the {@link DistributionRequestType} associated with this request
      *
      * @return the type of actionType for request as a {@link DistributionRequestType}
@@ -69,7 +58,6 @@ public final class DistributionRequest {
     @Override
     public String toString() {
         return "DistributionRequest{" +
-                "time=" + time +
                 ", actionType=" + actionType +
                 ", paths=" + Arrays.toString(paths) +
                 '}';

Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationException.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationException.java?rev=1641803&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationException.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationException.java Wed Nov 26 13:08:10 2014
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.distribution.agent.impl;
+
+/**
+ * An {@link Exception} representing failed authorization in execution of a certain {@link org.apache.sling.distribution.communication.DistributionRequest}
+ */
+public class DistributionRequestAuthorizationException extends Exception {
+    public DistributionRequestAuthorizationException(String message) {
+        super(message);
+    }
+}

Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationStrategy.java?rev=1641803&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationStrategy.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionRequestAuthorizationStrategy.java Wed Nov 26 13:08:10 2014
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.distribution.agent.impl;
+
+import javax.annotation.Nonnull;
+
+import aQute.bnd.annotation.ConsumerType;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.distribution.communication.DistributionRequest;
+
+/**
+ * Strategy for authorizing requests
+ */
+@ConsumerType
+public interface DistributionRequestAuthorizationStrategy {
+
+    /**
+     * @param resourceResolver   a {@link org.apache.sling.api.resource.ResourceResolver} representing the calling 'user'
+     * @param distributionRequest a request bringing metadata for getting {@link org.apache.sling.distribution.packaging.DistributionPackage}s
+     *                           to be exported
+     * @throws DistributionRequestAuthorizationException if the {@link org.apache.sling.api.resource.ResourceResolver} is
+     *                                                  not authorized to execute the given {@link org.apache.sling.distribution.communication.DistributionRequest}
+     */
+    void checkPermission(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest) throws DistributionRequestAuthorizationException;
+
+}

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategy.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategy.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategy.java Wed Nov 26 13:08:10 2014
@@ -24,9 +24,8 @@ import javax.jcr.Session;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
 
+import org.apache.jackrabbit.util.Text;
 import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationException;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.communication.DistributionRequest;
 import org.apache.sling.distribution.communication.DistributionRequestType;
 
@@ -79,11 +78,25 @@ public class PrivilegeDistributionReques
 
         Privilege[] privileges = new Privilege[] { acMgr.privilegeFromName(jcrPrivilege), acMgr.privilegeFromName(Privilege.JCR_REMOVE_NODE)  };
         for (String path : paths) {
-            if(session.nodeExists(path) && !acMgr.hasPrivileges(path, privileges)) {
+
+            String closestParentPath = getClosestParent(session, path);
+
+            if (closestParentPath == null || !acMgr.hasPrivileges(closestParentPath, privileges)) {
                 throw new DistributionRequestAuthorizationException("Not enough privileges");
             }
         }
+    }
+
+    private String getClosestParent(Session session, String path) throws RepositoryException {
+        do {
+            if (session.nodeExists(path)) {
+                return path;
+            }
+            path = Text.getRelativeParent(path, 1);
+        }
+        while (path != null && path.length() > 0);
 
+        return null;
     }
 
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyFactory.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyFactory.java Wed Nov 26 13:08:10 2014
@@ -28,8 +28,6 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationException;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.communication.DistributionRequest;
 import org.apache.sling.distribution.component.impl.DistributionComponentUtils;
 import org.osgi.framework.BundleContext;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java Wed Nov 26 13:08:10 2014
@@ -28,14 +28,13 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.distribution.agent.DistributionAgent;
 import org.apache.sling.distribution.agent.DistributionAgentException;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
+
 import org.apache.sling.distribution.communication.DistributionRequest;
 import org.apache.sling.distribution.communication.DistributionRequestState;
 import org.apache.sling.distribution.communication.DistributionResponse;
@@ -378,7 +377,9 @@ public class SimpleDistributionAgent imp
             } catch (PersistenceException e) {
                 log.error("cannot commit changes to resource resolver", e);
             }
-            resourceResolver.close();
+            finally {
+                resourceResolver.close();
+            }
         }
 
     }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java Wed Nov 26 13:08:10 2014
@@ -35,7 +35,6 @@ import org.apache.felix.scr.annotations.
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.distribution.agent.DistributionAgent;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.component.impl.DistributionComponentUtils;
 import org.apache.sling.distribution.event.impl.DistributionEventFactory;
 import org.apache.sling.distribution.packaging.DistributionPackageExporter;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentUtils.java Wed Nov 26 13:08:10 2014
@@ -25,7 +25,7 @@ import java.util.Map;
 
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.distribution.agent.DistributionAgent;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
+import org.apache.sling.distribution.agent.impl.DistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.agent.impl.PrivilegeDistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.agent.impl.SimpleDistributionAgentFactory;
 import org.apache.sling.distribution.packaging.DistributionPackageExporter;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java Wed Nov 26 13:08:10 2014
@@ -56,7 +56,6 @@ public class VoidDistributionPackage ext
         this.requestType = request.getRequestType();
         this.id = request.getRequestType().toString()
                 + ':' + Arrays.toString(request.getPaths()).replaceAll("\\[", "").replaceAll("\\]", "")
-                + ':' + request.getTime()
                 + ':' + type;
         this.getInfo().setPaths(paths);
         this.getInfo().setRequestType(requestType);
@@ -67,12 +66,11 @@ public class VoidDistributionPackage ext
 
         String[] parts = streamString.split(":");
 
-        if (parts.length < 4) return null;
+        if (parts.length < 3) return null;
 
         String actionString = parts[0];
         String pathsString = parts[1];
-        String timeString = parts[2];
-        String typeString = parts[3];
+        String typeString = parts[2];
 
         DistributionRequestType distributionRequestType = DistributionRequestType.fromName(actionString);
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java Wed Nov 26 13:08:10 2014
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.util.Properties;
+import java.util.UUID;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.vault.fs.api.ImportMode;
@@ -100,7 +101,7 @@ public class FileVaultDistributionPackag
             Properties props = new Properties();
             String packageGroup = "sling/distribution";
             props.setProperty(VaultPackage.NAME_GROUP, packageGroup);
-            String packageName = String.valueOf(request.getTime());
+            String packageName = PACKAGING_TYPE + "_" + System.currentTimeMillis() + "_" +  UUID.randomUUID();
             props.setProperty(VaultPackage.NAME_NAME, packageName);
             props.setProperty(VaultPackage.NAME_VERSION, VERSION);
             inf.setProperties(props);

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionTriggerServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionTriggerServlet.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionTriggerServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionTriggerServlet.java Wed Nov 26 13:08:10 2014
@@ -101,7 +101,7 @@ public class DistributionTriggerServlet 
     private void writeEvent(PrintWriter writer, DistributionRequest distributionRequest) {
 
         // write the event type (make sure to include the double newline)
-        writer.write("id: " + distributionRequest.getTime() + "\n");
+        writer.write("id: " + System.currentTimeMillis() + "\n");
 
         // write the actual data
         // this could be simple text or could be JSON-encoded text that the
@@ -110,7 +110,6 @@ public class DistributionTriggerServlet 
 
         // flush the buffers to make sure the container sends the bytes
         writer.flush();
-        log.debug("SSE event {}: {} {}", new Object[]{distributionRequest.getTime(), distributionRequest.getRequestType(),
-                distributionRequest.getPaths()});
+        log.debug("SSE event {} {}", new Object[]{distributionRequest.getRequestType(), distributionRequest.getPaths()});
     }
 }

Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java Wed Nov 26 13:08:10 2014
@@ -22,7 +22,6 @@ import java.util.Arrays;
 
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.communication.DistributionRequest;
 import org.apache.sling.distribution.communication.DistributionRequestType;
 import org.apache.sling.distribution.communication.DistributionResponse;

Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageTest.java?rev=1641803&r1=1641802&r2=1641803&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageTest.java Wed Nov 26 13:08:10 2014
@@ -37,17 +37,12 @@ public class VoidDistributionPackageTest
     @Test
     public void testCreatedAndReadPackagesEquality() throws Exception {
         DistributionRequest request = new DistributionRequest(DistributionRequestType.DELETE, "/abc");
-        long time = System.currentTimeMillis();
         VoidDistributionPackage createdPackage = new VoidDistributionPackage(request);
-        VoidDistributionPackage readPackage = VoidDistributionPackage.fromStream(new ByteArrayInputStream(("DELETE:/abc:" + time + ":VOID").getBytes()));
+        VoidDistributionPackage readPackage = VoidDistributionPackage.fromStream(new ByteArrayInputStream(("DELETE:/abc:VOID").getBytes()));
         assertEquals(createdPackage.getType(), readPackage.getType());
         assertEquals(createdPackage.getInfo().getRequestType(), readPackage.getInfo().getRequestType());
         assertEquals(Arrays.toString(createdPackage.getInfo().getPaths()), Arrays.toString(readPackage.getInfo().getPaths()));
-        try {
-            assertEquals(createdPackage.getId(), readPackage.getId());
-            assertTrue(IOUtils.contentEquals(createdPackage.createInputStream(), readPackage.createInputStream()));
-        } catch (AssertionError e) {
-            // FIXME : at the moment do nothing, as this may be caused by differences in the time encapsulated in the request
-        }
+        assertEquals(createdPackage.getId(), readPackage.getId());
+        assertTrue(IOUtils.contentEquals(createdPackage.createInputStream(), readPackage.createInputStream()));
     }
 }