You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cs...@apache.org on 2019/07/22 11:22:46 UTC
[sling-org-apache-sling-distribution-core] branch SLING-8591
created (now 5ee881c)
This is an automated email from the ASF dual-hosted git repository.
cschneider pushed a change to branch SLING-8591
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-core.git.
at 5ee881c SLING-8591 - Hook to support custom code when installing or deleting distribution packages
This branch includes the following new commits:
new 5ee881c SLING-8591 - Hook to support custom code when installing or deleting distribution packages
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[sling-org-apache-sling-distribution-core] 01/01: SLING-8591 - Hook
to support custom code when installing or deleting distribution packages
Posted by cs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cschneider pushed a commit to branch SLING-8591
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-core.git
commit 5ee881ce9f3b1e32e928364c81142012dd1eb7d4
Author: Christian Schneider <cs...@adobe.com>
AuthorDate: Mon Jul 22 13:22:19 2019 +0200
SLING-8591 - Hook to support custom code when installing or deleting distribution packages
---
.../distribution/packaging/PackageInstallHook.java | 46 ++++++++++++++++++++++
.../impl/AbstractDistributionPackageBuilder.java | 13 +++++-
.../impl/FileDistributionPackageBuilder.java | 6 ++-
.../impl/InMemoryDistributionPackageBuilder.java | 6 ++-
.../packaging/impl/NoopPackageInstallHook.java | 43 ++++++++++++++++++++
.../impl/ResourceDistributionPackageBuilder.java | 6 ++-
.../sling/distribution/packaging/package-info.java | 2 +-
.../impl/DistributionPackageBuilderFactory.java | 11 ++++--
.../VaultDistributionPackageBuilderFactory.java | 11 ++++--
.../impl/FileDistributionPackageBuilderTest.java | 4 +-
.../InMemoryDistributionPackageBuilderTest.java | 4 +-
.../LocalDistributionPackageImporterTest.java | 5 ++-
12 files changed, 139 insertions(+), 18 deletions(-)
diff --git a/src/main/java/org/apache/sling/distribution/packaging/PackageInstallHook.java b/src/main/java/org/apache/sling/distribution/packaging/PackageInstallHook.java
new file mode 100644
index 0000000..622b737
--- /dev/null
+++ b/src/main/java/org/apache/sling/distribution/packaging/PackageInstallHook.java
@@ -0,0 +1,46 @@
+/*
+ * 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.packaging;
+
+import org.apache.sling.api.resource.ResourceResolver;
+
+import aQute.bnd.annotation.ProviderType;
+
+/**
+ * Callback that allows to run code after a DistributionPackage is installed.
+ */
+@ProviderType
+public interface PackageInstallHook {
+ public static String NOOP_NAME = "noop_install_hook";
+ public static String NOOP_FILTER = "(name=" + PackageInstallHook.NOOP_NAME + ")";
+
+ /**
+ * Will be called after a package was installed into the repository
+ * @param resourceResolver
+ * @param distPackage
+ */
+ void onPostAdd(ResourceResolver resourceResolver, DistributionPackage distPackage);
+
+ /**
+ * Will be called after a package was installed into the repository
+ * @param resourceResolver
+ * @param distPackage
+ */
+ void onPreRemove(ResourceResolver resourceResolver, DistributionPackage distPackage);
+}
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java b/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java
index 0993667..e6f090d 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java
@@ -35,6 +35,7 @@ import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.serialization.impl.vlt.VltUtils;
import org.apache.sling.distribution.util.DistributionJcrUtils;
import org.jetbrains.annotations.NotNull;
@@ -51,8 +52,11 @@ public abstract class AbstractDistributionPackageBuilder implements Distribution
private final String type;
- AbstractDistributionPackageBuilder(String type) {
+ private PackageInstallHook installHook;
+
+ AbstractDistributionPackageBuilder(String type, PackageInstallHook installHook) {
this.type = type;
+ this.installHook = installHook;
}
public String getType() {
@@ -170,6 +174,7 @@ public abstract class AbstractDistributionPackageBuilder implements Distribution
Session session = null;
try {
if (distributionPackage != null) {
+ installHook.onPreRemove(resourceResolver, distributionPackage);
session = getSession(resourceResolver);
for (String path : distributionPackage.getInfo().getPaths()) {
if (session.itemExists(path)) {
@@ -193,7 +198,11 @@ public abstract class AbstractDistributionPackageBuilder implements Distribution
InputStream inputStream = null;
try {
inputStream = distributionPackage.createInputStream();
- return installPackageInternal(resourceResolver, inputStream);
+ boolean isInstalled = installPackageInternal(resourceResolver, inputStream);
+ if (isInstalled) {
+ installHook.onPostAdd(resourceResolver, distributionPackage);
+ }
+ return isInstalled;
} catch (IOException e) {
throw new DistributionException(e);
} finally {
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java b/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
index a79a7a2..35dbf8b 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
@@ -37,6 +37,7 @@ import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.serialization.DistributionContentSerializer;
import org.apache.sling.distribution.serialization.DistributionExportFilter;
import org.apache.sling.distribution.serialization.DistributionExportOptions;
@@ -64,8 +65,9 @@ public class FileDistributionPackageBuilder extends AbstractDistributionPackageB
DistributionContentSerializer distributionContentSerializer,
String tempFilesFolder,
String digestAlgorithm, String[] nodeFilters,
- String[] propertyFilters) {
- super(type);
+ String[] propertyFilters,
+ PackageInstallHook postInstallHook) {
+ super(type, postInstallHook);
this.distributionContentSerializer = distributionContentSerializer;
this.nodeFilters = VltUtils.parseFilters(nodeFilters);
this.propertyFilters = VltUtils.parseFilters(propertyFilters);
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilder.java b/src/main/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilder.java
index d55b77e..d7e7cd1 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilder.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilder.java
@@ -33,6 +33,7 @@ import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.serialization.DistributionContentSerializer;
import org.apache.sling.distribution.serialization.DistributionExportFilter;
import org.apache.sling.distribution.serialization.DistributionExportOptions;
@@ -58,8 +59,9 @@ public class InMemoryDistributionPackageBuilder extends AbstractDistributionPack
public InMemoryDistributionPackageBuilder(@NotNull String type,
@NotNull DistributionContentSerializer serializer,
@Nullable String[] nodeFilters,
- @Nullable String[] propertyFilters) {
- super(type);
+ @Nullable String[] propertyFilters,
+ PackageInstallHook postInstallHook) {
+ super(type, postInstallHook);
this.serializer = serializer;
this.nodeFilters = VltUtils.parseFilters(nodeFilters);
this.propertyFilters = VltUtils.parseFilters(propertyFilters);
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/NoopPackageInstallHook.java b/src/main/java/org/apache/sling/distribution/packaging/impl/NoopPackageInstallHook.java
new file mode 100644
index 0000000..f99f92e
--- /dev/null
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/NoopPackageInstallHook.java
@@ -0,0 +1,43 @@
+/*
+ * 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.packaging.impl;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
+
+/**
+ * Default hook that simply does nothing
+ */
+@Component
+@Service(PackageInstallHook.class)
+@Property(name = "name", value = "Builder name: {name}")
+public class NoopPackageInstallHook implements PackageInstallHook {
+
+ @Override
+ public void onPostAdd(ResourceResolver resourceResolver, DistributionPackage distPackage) {
+ }
+
+ @Override
+ public void onPreRemove(ResourceResolver resourceResolver, DistributionPackage distPackage) {
+ }
+}
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java b/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java
index 919d3d9..ada62d0 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java
@@ -44,6 +44,7 @@ import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.serialization.DistributionContentSerializer;
import org.apache.sling.distribution.serialization.DistributionExportFilter;
import org.apache.sling.distribution.serialization.DistributionExportOptions;
@@ -76,8 +77,9 @@ public class ResourceDistributionPackageBuilder extends AbstractDistributionPack
MemoryUnit memoryUnit,
boolean useOffHeapMemory,
String digestAlgorithm, String[] nodeFilters,
- String[] propertyFilters) {
- super(type);
+ String[] propertyFilters,
+ PackageInstallHook postInstallHook) {
+ super(type, postInstallHook);
this.distributionContentSerializer = distributionContentSerializer;
this.nodeFilters = VltUtils.parseFilters(nodeFilters);
this.propertyFilters = VltUtils.parseFilters(propertyFilters);
diff --git a/src/main/java/org/apache/sling/distribution/packaging/package-info.java b/src/main/java/org/apache/sling/distribution/packaging/package-info.java
index 8f378be..e0a3160 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/package-info.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
-@Version("0.0.1")
+@Version("0.1.0")
package org.apache.sling.distribution.packaging;
import aQute.bnd.annotation.Version;
diff --git a/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java b/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java
index 09b8c9b..7d7f30a 100644
--- a/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java
+++ b/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java
@@ -44,6 +44,7 @@ import org.apache.sling.distribution.monitor.impl.MonitoringDistributionPackageB
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder;
import org.apache.sling.distribution.packaging.impl.InMemoryDistributionPackageBuilder;
import org.apache.sling.distribution.packaging.impl.ResourceDistributionPackageBuilder;
@@ -193,6 +194,10 @@ public class DistributionPackageBuilderFactory implements DistributionPackageBui
private ServiceRegistration packageCleanup = null;
+ @Property(name = "installHook.target", label = "install hook", description = "Hook to be called after package was installed and before package will be removed.", value = PackageInstallHook.NOOP_FILTER)
+ @Reference
+ private PackageInstallHook installHook;
+
@Activate
public void activate(BundleContext context,
Map<String, Object> config) {
@@ -209,15 +214,15 @@ public class DistributionPackageBuilderFactory implements DistributionPackageBui
DistributionPackageBuilder wrapped;
if ("file".equals(persistenceType)) {
- wrapped = new FileDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, digestAlgorithm, nodeFilters, propertyFilters);
+ wrapped = new FileDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, digestAlgorithm, nodeFilters, propertyFilters, installHook);
} else if ("inmemory".equals(persistenceType)) {
- wrapped = new InMemoryDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, nodeFilters, propertyFilters);
+ wrapped = new InMemoryDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, nodeFilters, propertyFilters, installHook);
} else {
final int fileThreshold = PropertiesUtil.toInteger(config.get(FILE_THRESHOLD), DEFAULT_FILE_THRESHOLD_VALUE);
String memoryUnitName = PropertiesUtil.toString(config.get(MEMORY_UNIT), DEFAULT_MEMORY_UNIT);
final MemoryUnit memoryUnit = MemoryUnit.valueOf(memoryUnitName);
final boolean useOffHeapMemory = PropertiesUtil.toBoolean(config.get(USE_OFF_HEAP_MEMORY), DEFAULT_USE_OFF_HEAP_MEMORY);
- ResourceDistributionPackageBuilder resourceDistributionPackageBuilder = new ResourceDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, fileThreshold, memoryUnit, useOffHeapMemory, digestAlgorithm, nodeFilters, propertyFilters);
+ ResourceDistributionPackageBuilder resourceDistributionPackageBuilder = new ResourceDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, fileThreshold, memoryUnit, useOffHeapMemory, digestAlgorithm, nodeFilters, propertyFilters, installHook);
Runnable cleanup = new ResourceDistributionPackageCleanup(resolverFactory, resourceDistributionPackageBuilder);
Dictionary<String, Object> props = new Hashtable<String, Object>();
props.put(Scheduler.PROPERTY_SCHEDULER_CONCURRENT, false);
diff --git a/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java b/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java
index cffed94..9db58a2 100644
--- a/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java
+++ b/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java
@@ -34,6 +34,7 @@ import org.apache.sling.distribution.monitor.impl.MonitoringDistributionPackageB
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder;
import org.apache.sling.distribution.packaging.impl.InMemoryDistributionPackageBuilder;
import org.apache.sling.distribution.packaging.impl.ResourceDistributionPackageBuilder;
@@ -226,6 +227,10 @@ public class VaultDistributionPackageBuilderFactory implements DistributionPacka
private MonitoringDistributionPackageBuilder packageBuilder;
+ @Property(name = "postInstallHook.target", label = "Post install hook", description = "Hook to be called after package was installed.",
+ value = PackageInstallHook.NOOP_FILTER)
+ @Reference
+ private PackageInstallHook postInstallHook;
@Activate
public void activate(BundleContext context, Map<String, Object> config) {
@@ -271,15 +276,15 @@ public class VaultDistributionPackageBuilderFactory implements DistributionPacka
DistributionPackageBuilder wrapped;
if ("filevlt".equals(type)) {
- wrapped = new FileDistributionPackageBuilder(name, contentSerializer, tempFsFolder, digestAlgorithm, packageNodeFilters, packagePropertyFilters);
+ wrapped = new FileDistributionPackageBuilder(name, contentSerializer, tempFsFolder, digestAlgorithm, packageNodeFilters, packagePropertyFilters, postInstallHook);
} else if ("inmemory".equals(type)) {
- wrapped = new InMemoryDistributionPackageBuilder(name, contentSerializer, packageNodeFilters, packagePropertyFilters);
+ wrapped = new InMemoryDistributionPackageBuilder(name, contentSerializer, packageNodeFilters, packagePropertyFilters, postInstallHook);
} else {
final int fileThreshold = PropertiesUtil.toInteger(config.get(FILE_THRESHOLD), DEFAULT_FILE_THRESHOLD_VALUE);
String memoryUnitName = PropertiesUtil.toString(config.get(MEMORY_UNIT), DEFAULT_MEMORY_UNIT);
final MemoryUnit memoryUnit = MemoryUnit.valueOf(memoryUnitName);
final boolean useOffHeapMemory = PropertiesUtil.toBoolean(config.get(USE_OFF_HEAP_MEMORY), DEFAULT_USE_OFF_HEAP_MEMORY);
- ResourceDistributionPackageBuilder resourceDistributionPackageBuilder = new ResourceDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, fileThreshold, memoryUnit, useOffHeapMemory, digestAlgorithm, packageNodeFilters, packagePropertyFilters);
+ ResourceDistributionPackageBuilder resourceDistributionPackageBuilder = new ResourceDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, fileThreshold, memoryUnit, useOffHeapMemory, digestAlgorithm, packageNodeFilters, packagePropertyFilters, postInstallHook);
Runnable cleanup = new ResourceDistributionPackageCleanup(resolverFactory, resourceDistributionPackageBuilder);
Dictionary<String, Object> props = new Hashtable<String, Object>();
props.put(Scheduler.PROPERTY_SCHEDULER_CONCURRENT, false);
diff --git a/src/test/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilderTest.java b/src/test/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilderTest.java
index ea6072c..f9abb52 100644
--- a/src/test/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilderTest.java
+++ b/src/test/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilderTest.java
@@ -30,6 +30,7 @@ import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.serialization.DistributionContentSerializer;
import org.apache.sling.distribution.serialization.DistributionExportOptions;
import org.junit.Test;
@@ -38,8 +39,9 @@ public class FileDistributionPackageBuilderTest {
@Test
public void testDefaultTempDirectory() throws DistributionException, IOException {
+ PackageInstallHook postInstallHook = new NoopPackageInstallHook();
FileDistributionPackageBuilder builder = new FileDistributionPackageBuilder("test", new TestSerializer(), null, null, new String[0],
- new String[0]);
+ new String[0], postInstallHook);
DistributionPackage createdPackage = builder.createPackageForAdd(mock(ResourceResolver.class), mock(DistributionRequest.class));
try {
diff --git a/src/test/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilderTest.java b/src/test/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilderTest.java
index f20dc66..5ed48ad 100644
--- a/src/test/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilderTest.java
+++ b/src/test/java/org/apache/sling/distribution/packaging/impl/InMemoryDistributionPackageBuilderTest.java
@@ -28,6 +28,7 @@ import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.SimpleDistributionRequest;
import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.serialization.DistributionContentSerializer;
import org.apache.sling.distribution.serialization.DistributionExportOptions;
import org.junit.Test;
@@ -39,7 +40,8 @@ public class InMemoryDistributionPackageBuilderTest {
@Test
public void testCreatePackage() throws Exception {
- InMemoryDistributionPackageBuilder builder = new InMemoryDistributionPackageBuilder("name", new InMemDistributionContentSerializer(), new String[0], new String[0]);
+ PackageInstallHook postInstallHook = new NoopPackageInstallHook();
+ InMemoryDistributionPackageBuilder builder = new InMemoryDistributionPackageBuilder("name", new InMemDistributionContentSerializer(), new String[0], new String[0], postInstallHook);
DistributionPackage pkg = builder.createPackageForAdd(mock(ResourceResolver.class), new SimpleDistributionRequest(DistributionRequestType.ADD, false, "/test"));
assertNotNull(pkg.createInputStream());
}
diff --git a/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java b/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java
index d603237..99843db 100644
--- a/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java
+++ b/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java
@@ -32,8 +32,10 @@ import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.PackageInstallHook;
import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
import org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder;
+import org.apache.sling.distribution.packaging.impl.NoopPackageInstallHook;
import org.apache.sling.distribution.serialization.impl.vlt.FileVaultContentSerializer;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.junit.SlingContext;
@@ -92,8 +94,9 @@ public class LocalDistributionPackageImporterTest {
false
);
+ PackageInstallHook postInstallHook = new NoopPackageInstallHook();
DistributionPackageBuilder builder =
- new FileDistributionPackageBuilder(DistributionRequestType.ADD.name(), vaultSerializer, null, null, null, null);
+ new FileDistributionPackageBuilder(DistributionRequestType.ADD.name(), vaultSerializer, null, null, null, null, postInstallHook);
ResourceResolver resourceResolver = slingContext.resourceResolver();