Search in sources :

Example 6 with DistributionExportFilter

use of org.apache.sling.distribution.serialization.DistributionExportFilter in project sling by apache.

the class FileDistributionPackageBuilder method createPackageForAdd.

@Override
protected DistributionPackage createPackageForAdd(@Nonnull ResourceResolver resourceResolver, @Nonnull final DistributionRequest request) throws DistributionException {
    DistributionPackage distributionPackage;
    OutputStream outputStream = null;
    String digestMessage = null;
    final File file;
    try {
        file = File.createTempFile("distrpck-create-" + randomUUID(), "." + getType(), tempDirectory);
        if (digestAlgorithm != null) {
            outputStream = openDigestOutputStream(new FileOutputStream(file), digestAlgorithm);
        } else {
            outputStream = new FileOutputStream(file);
        }
        final DistributionExportFilter filter = distributionContentSerializer.isRequestFiltering() ? null : DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters);
        DistributionExportOptions distributionExportOptions = new DistributionExportOptions(request, filter);
        distributionContentSerializer.exportToStream(resourceResolver, distributionExportOptions, outputStream);
        outputStream.flush();
        if (digestAlgorithm != null) {
            digestMessage = readDigestMessage((DigestOutputStream) outputStream);
        }
        distributionPackage = new FileDistributionPackage(file, getType(), digestAlgorithm, digestMessage);
    } catch (IOException e) {
        throw new DistributionException(e);
    } finally {
        IOUtils.closeQuietly(outputStream);
    }
    return distributionPackage;
}
Also used : DistributionExportOptions(org.apache.sling.distribution.serialization.DistributionExportOptions) DistributionPackage(org.apache.sling.distribution.packaging.DistributionPackage) DigestUtils.openDigestOutputStream(org.apache.sling.distribution.util.impl.DigestUtils.openDigestOutputStream) DigestOutputStream(java.security.DigestOutputStream) OutputStream(java.io.OutputStream) DigestUtils.openDigestOutputStream(org.apache.sling.distribution.util.impl.DigestUtils.openDigestOutputStream) FileOutputStream(java.io.FileOutputStream) DigestOutputStream(java.security.DigestOutputStream) FileOutputStream(java.io.FileOutputStream) DistributionExportFilter(org.apache.sling.distribution.serialization.DistributionExportFilter) DistributionException(org.apache.sling.distribution.common.DistributionException) IOException(java.io.IOException) File(java.io.File)

Example 7 with DistributionExportFilter

use of org.apache.sling.distribution.serialization.DistributionExportFilter in project sling by apache.

the class ResourceDistributionPackageBuilder method export.

private void export(@Nonnull ResourceResolver resourceResolver, @Nonnull final DistributionRequest request, OutputStream outputStream) throws DistributionException {
    final DistributionExportFilter filter = distributionContentSerializer.isRequestFiltering() ? null : DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters);
    DistributionExportOptions distributionExportOptions = new DistributionExportOptions(request, filter);
    distributionContentSerializer.exportToStream(resourceResolver, distributionExportOptions, outputStream);
}
Also used : DistributionExportOptions(org.apache.sling.distribution.serialization.DistributionExportOptions) DistributionExportFilter(org.apache.sling.distribution.serialization.DistributionExportFilter)

Example 8 with DistributionExportFilter

use of org.apache.sling.distribution.serialization.DistributionExportFilter in project sling by apache.

the class KryoContentSerializerTest method testExtract.

@Test
public void testExtract() throws Exception {
    KryoContentSerializer kryoContentSerializer = new KryoContentSerializer("kryo");
    DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/libs");
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    NavigableMap<String, List<String>> nodeFilters = new TreeMap<String, List<String>>();
    NavigableMap<String, List<String>> propertyFilters = new TreeMap<String, List<String>>();
    try {
        DistributionExportFilter filter = DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters);
        kryoContentSerializer.exportToStream(resourceResolver, new DistributionExportOptions(request, filter), outputStream);
        byte[] bytes = outputStream.toByteArray();
        assertNotNull(bytes);
        assertTrue(bytes.length > 0);
    } finally {
        outputStream.close();
    }
}
Also used : DistributionExportOptions(org.apache.sling.distribution.serialization.DistributionExportOptions) SimpleDistributionRequest(org.apache.sling.distribution.SimpleDistributionRequest) DistributionRequest(org.apache.sling.distribution.DistributionRequest) SimpleDistributionRequest(org.apache.sling.distribution.SimpleDistributionRequest) List(java.util.List) DistributionExportFilter(org.apache.sling.distribution.serialization.DistributionExportFilter) ByteArrayOutputStream(java.io.ByteArrayOutputStream) TreeMap(java.util.TreeMap) Test(org.junit.Test)

Aggregations

DistributionExportFilter (org.apache.sling.distribution.serialization.DistributionExportFilter)8 DistributionExportOptions (org.apache.sling.distribution.serialization.DistributionExportOptions)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)4 DistributionRequest (org.apache.sling.distribution.DistributionRequest)4 Test (org.junit.Test)4 List (java.util.List)3 TreeMap (java.util.TreeMap)3 SimpleDistributionRequest (org.apache.sling.distribution.SimpleDistributionRequest)3 IOException (java.io.IOException)2 OutputStream (java.io.OutputStream)2 Resource (org.apache.sling.api.resource.Resource)2 DistributionException (org.apache.sling.distribution.common.DistributionException)2 Kryo (com.esotericsoftware.kryo.Kryo)1 Output (com.esotericsoftware.kryo.io.Output)1 File (java.io.File)1 FileOutputStream (java.io.FileOutputStream)1 DigestOutputStream (java.security.DigestOutputStream)1 LinkedList (java.util.LinkedList)1 Session (javax.jcr.Session)1 Workspace (javax.jcr.Workspace)1