You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2016/11/24 11:58:29 UTC

svn commit: r1771121 - in /sling/trunk/contrib/extensions/distribution: core/src/main/java/org/apache/sling/distribution/serialization/ extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/ extensions/src/test/java/org/apache/...

Author: tommaso
Date: Thu Nov 24 11:58:29 2016
New Revision: 1771121

URL: http://svn.apache.org/viewvc?rev=1771121&view=rev
Log:
SLING-5815 - added more tests for kryo and avro serializers, added some nullable/checkfornull annotations to export options/filter

Modified:
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java
    sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java
    sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java?rev=1771121&r1=1771120&r2=1771121&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java Thu Nov 24 11:58:29 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.distribution.serialization;
 
+import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -42,10 +43,12 @@ public class DistributionExportFilter {
         // can only be constructed by #createFilter
     }
 
+    @Nonnull
     public Set<TreeFilter> getNodeFilters() {
         return nodeFilters;
     }
 
+    @Nonnull
     public TreeFilter getPropertyFilter() {
         return propertyFilter;
     }
@@ -157,6 +160,7 @@ public class DistributionExportFilter {
             excludes.add(path);
         }
 
+        @Nonnull
         public String getPath() {
             return path;
         }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java?rev=1771121&r1=1771120&r2=1771121&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java Thu Nov 24 11:58:29 2016
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.distribution.serialization;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
 import java.io.OutputStream;
 
 import org.apache.sling.api.resource.ResourceResolver;
@@ -32,7 +34,7 @@ public final class DistributionExportOpt
     private final DistributionRequest request;
     private final DistributionExportFilter filter;
 
-    public DistributionExportOptions(DistributionRequest request, DistributionExportFilter filter) {
+    public DistributionExportOptions(@Nullable DistributionRequest request, @Nullable DistributionExportFilter filter) {
         this.request = request;
         this.filter = filter;
     }
@@ -41,6 +43,7 @@ public final class DistributionExportOpt
      * get the distribution request
      * @return the distribution request
      */
+    @CheckForNull
     public DistributionRequest getRequest() {
         return request;
     }
@@ -49,6 +52,7 @@ public final class DistributionExportOpt
      * get the export filter
      * @return the export filter
      */
+    @CheckForNull
     public DistributionExportFilter getFilter() {
         return filter;
     }

Modified: sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java?rev=1771121&r1=1771120&r2=1771121&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java Thu Nov 24 11:58:29 2016
@@ -24,10 +24,15 @@ import java.util.List;
 import java.util.NavigableMap;
 import java.util.TreeMap;
 
+import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.distribution.DistributionRequest;
 import org.apache.sling.distribution.DistributionRequestType;
 import org.apache.sling.distribution.SimpleDistributionRequest;
+import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
+import org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder;
+import org.apache.sling.distribution.serialization.DistributionContentSerializer;
 import org.apache.sling.distribution.serialization.DistributionExportFilter;
 import org.apache.sling.distribution.serialization.DistributionExportOptions;
 import org.apache.sling.testing.resourceresolver.MockHelper;
@@ -98,4 +103,75 @@ public class AvroContentSerializerTest {
         InputStream inputStream = getClass().getResourceAsStream("/avro/dp.avro");
         avroContentSerializer.importFromStream(resourceResolver, inputStream);
     }
+
+    @Test
+    public void testBuildAndInstallOnSingleDeepPath() throws Exception {
+        String type = "avro";
+        DistributionContentSerializer contentSerializer = new AvroContentSerializer(type);
+        String tempFilesFolder = "target";
+        String[] nodeFilters = new String[0];
+        String[] propertyFilters = new String[0];
+        DistributionPackageBuilder packageBuilder = new FileDistributionPackageBuilder(type, contentSerializer,
+                tempFilesFolder, null, nodeFilters, propertyFilters);
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, true, "/libs");
+        DistributionPackage distributionPackage = packageBuilder.createPackage(resourceResolver, request);
+
+        Resource resource = resourceResolver.getResource("/libs/sub");
+        resourceResolver.delete(resource);
+        resourceResolver.commit();
+
+        assertTrue(packageBuilder.installPackage(resourceResolver, distributionPackage));
+
+        assertNotNull(resourceResolver.getResource("/libs"));
+        assertNotNull(resourceResolver.getResource("/libs/sub"));
+        assertNotNull(resourceResolver.getResource("/libs/sameLevel"));
+    }
+
+    @Test
+    public void testBuildAndInstallOnSingleShallowPath() throws Exception {
+        String type = "avro";
+        DistributionContentSerializer contentSerializer = new AvroContentSerializer(type);
+        String tempFilesFolder = "target";
+        String[] nodeFilters = new String[0];
+        String[] propertyFilters = new String[0];
+        DistributionPackageBuilder packageBuilder = new FileDistributionPackageBuilder(type, contentSerializer,
+                tempFilesFolder, null, nodeFilters, propertyFilters);
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/libs/sub");
+        DistributionPackage distributionPackage = packageBuilder.createPackage(resourceResolver, request);
+
+        Resource resource = resourceResolver.getResource("/libs/sub");
+        resourceResolver.delete(resource);
+        resourceResolver.commit();
+
+        assertTrue(packageBuilder.installPackage(resourceResolver, distributionPackage));
+
+        assertNotNull(resourceResolver.getResource("/libs"));
+        assertNotNull(resourceResolver.getResource("/libs/sub"));
+        assertNotNull(resourceResolver.getResource("/libs/sameLevel"));
+    }
+
+    @Test
+    public void testBuildAndInstallOnMultipleShallowPaths() throws Exception {
+        String type = "avro";
+        DistributionContentSerializer contentSerializer = new AvroContentSerializer(type);
+        String tempFilesFolder = "target";
+        String[] nodeFilters = new String[0];
+        String[] propertyFilters = new String[0];
+        DistributionPackageBuilder packageBuilder = new FileDistributionPackageBuilder(type, contentSerializer,
+                tempFilesFolder, null, nodeFilters, propertyFilters);
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/libs/sub", "/libs/sameLevel");
+        DistributionPackage distributionPackage = packageBuilder.createPackage(resourceResolver, request);
+
+        Resource resource = resourceResolver.getResource("/libs/sub");
+        resourceResolver.delete(resource);
+        resource = resourceResolver.getResource("/libs/sameLevel");
+        resourceResolver.delete(resource);
+        resourceResolver.commit();
+
+        assertTrue(packageBuilder.installPackage(resourceResolver, distributionPackage));
+
+        assertNotNull(resourceResolver.getResource("/libs"));
+        assertNotNull(resourceResolver.getResource("/libs/sub"));
+        assertNotNull(resourceResolver.getResource("/libs/sameLevel"));
+    }
 }

Modified: sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java?rev=1771121&r1=1771120&r2=1771121&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java Thu Nov 24 11:58:29 2016
@@ -24,10 +24,15 @@ import java.util.List;
 import java.util.NavigableMap;
 import java.util.TreeMap;
 
+import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.distribution.DistributionRequest;
 import org.apache.sling.distribution.DistributionRequestType;
 import org.apache.sling.distribution.SimpleDistributionRequest;
+import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
+import org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder;
+import org.apache.sling.distribution.serialization.DistributionContentSerializer;
 import org.apache.sling.distribution.serialization.DistributionExportFilter;
 import org.apache.sling.distribution.serialization.DistributionExportOptions;
 import org.apache.sling.testing.resourceresolver.MockHelper;
@@ -80,4 +85,76 @@ public class KryoContentSerializerTest {
         InputStream inputStream = getClass().getResourceAsStream("/kryo/dp.kryo");
         kryoContentSerializer.importFromStream(resourceResolver, inputStream);
     }
+
+    @Test
+    public void testBuildAndInstallOnSingleDeepPath() throws Exception {
+        String type = "kryo";
+        DistributionContentSerializer contentSerializer = new KryoContentSerializer(type);
+        String tempFilesFolder = "target";
+        String[] nodeFilters = new String[0];
+        String[] propertyFilters = new String[0];
+        DistributionPackageBuilder packageBuilder = new FileDistributionPackageBuilder(type, contentSerializer,
+                tempFilesFolder, null, nodeFilters, propertyFilters);
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, true, "/libs");
+        DistributionPackage distributionPackage = packageBuilder.createPackage(resourceResolver, request);
+
+        Resource resource = resourceResolver.getResource("/libs/sub");
+        resourceResolver.delete(resource);
+        resourceResolver.commit();
+
+        assertTrue(packageBuilder.installPackage(resourceResolver, distributionPackage));
+
+        assertNotNull(resourceResolver.getResource("/libs"));
+        assertNotNull(resourceResolver.getResource("/libs/sub"));
+        assertNotNull(resourceResolver.getResource("/libs/sameLevel"));
+    }
+
+    @Test
+    public void testBuildAndInstallOnSingleShallowPath() throws Exception {
+        String type = "kryo";
+        DistributionContentSerializer contentSerializer = new KryoContentSerializer(type);
+        String tempFilesFolder = "target";
+        String[] nodeFilters = new String[0];
+        String[] propertyFilters = new String[0];
+        DistributionPackageBuilder packageBuilder = new FileDistributionPackageBuilder(type, contentSerializer,
+                tempFilesFolder, null, nodeFilters, propertyFilters);
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/libs/sub");
+        DistributionPackage distributionPackage = packageBuilder.createPackage(resourceResolver, request);
+
+        Resource resource = resourceResolver.getResource("/libs/sub");
+        resourceResolver.delete(resource);
+        resourceResolver.commit();
+
+        assertTrue(packageBuilder.installPackage(resourceResolver, distributionPackage));
+
+        assertNotNull(resourceResolver.getResource("/libs"));
+        assertNotNull(resourceResolver.getResource("/libs/sub"));
+        assertNotNull(resourceResolver.getResource("/libs/sameLevel"));
+    }
+
+    @Test
+    public void testBuildAndInstallOnMultipleShallowPaths() throws Exception {
+        String type = "kryo";
+        DistributionContentSerializer contentSerializer = new KryoContentSerializer(type);
+        String tempFilesFolder = "target";
+        String[] nodeFilters = new String[0];
+        String[] propertyFilters = new String[0];
+        DistributionPackageBuilder packageBuilder = new FileDistributionPackageBuilder(type, contentSerializer,
+                tempFilesFolder, null, nodeFilters, propertyFilters);
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/libs/sub", "/libs/sameLevel");
+        DistributionPackage distributionPackage = packageBuilder.createPackage(resourceResolver, request);
+
+        Resource resource = resourceResolver.getResource("/libs/sub");
+        resourceResolver.delete(resource);
+        resource = resourceResolver.getResource("/libs/sameLevel");
+        resourceResolver.delete(resource);
+        resourceResolver.commit();
+
+        assertTrue(packageBuilder.installPackage(resourceResolver, distributionPackage));
+
+        assertNotNull(resourceResolver.getResource("/libs"));
+        assertNotNull(resourceResolver.getResource("/libs/sub"));
+        assertNotNull(resourceResolver.getResource("/libs/sameLevel"));
+    }
+
 }