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"));
+ }
+
}