protected DistributionPackage createPackageForAdd()

in src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java [94:142]


    protected DistributionPackage createPackageForAdd(@NotNull ResourceResolver resourceResolver, @NotNull DistributionRequest request) throws DistributionException {
        DistributionPackage distributionPackage;

        try {
            FileBackedMemoryOutputStream outputStream = null;
            DigestOutputStream digestStream = null;
            String digestMessage = null;

            try {
                outputStream = new FileBackedMemoryOutputStream(fileThreshold, memoryUnit, useOffHeapMemory, tempDirectory, "distrpck-create-", "." + getType());
                if (digestAlgorithm != null) {
                    digestStream = openDigestOutputStream(outputStream, digestAlgorithm);
                    export(resourceResolver, request, digestStream);
                } else {
                    export(resourceResolver, request, outputStream);
                }
                outputStream.flush();

                if (digestAlgorithm != null) {
                    digestMessage = readDigestMessage(digestStream);
                }
            } finally {
                IOUtils.closeQuietly(outputStream);
                IOUtils.closeQuietly(digestStream);
            }

            Resource packagesRoot = DistributionPackageUtils.getPackagesRoot(resourceResolver, packagesPath);

            InputStream inputStream = null;
            Resource packageResource = null;

            try {
                inputStream = outputStream.openWrittenDataInputStream();

                packageResource = uploadStream(resourceResolver, packagesRoot, inputStream, outputStream.size(),
                        request);
            } finally {
                IOUtils.closeQuietly(inputStream);
                outputStream.clean();
            }

            distributionPackage = new ResourceDistributionPackage(packageResource, getType(), resourceResolver,
                    digestAlgorithm, digestMessage, null);
        } catch (IOException e) {
            throw new DistributionException(e);
        }

        return distributionPackage;
    }