SLING-7761 optionally set observation manager's user data during package
authorKonrad Windszus <kwin@apache.org>
Mon, 2 Jul 2018 15:04:48 +0000 (17:04 +0200)
committerKonrad Windszus <kwin@apache.org>
Mon, 2 Jul 2018 15:04:48 +0000 (17:04 +0200)
operations

src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java
src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformerConfiguration.java

index f178ca5..23e1cf2 100644 (file)
@@ -249,6 +249,9 @@ public class PackageTransformer implements ResourceTransformer, InstallTaskFacto
             JcrPackage pkg = null;
             try {
                 session = repository.loginAdministrative(null);
+                if (!configuration.observationManagerUserData().isEmpty()) {
+                    session.getWorkspace().getObservationManager().setUserData(configuration.observationManagerUserData());
+                }
                 final JcrPackageManager pkgMgr = pkgSvc.getPackageManager(session);
 
                 doExecute(ctx, pkgMgr, resource);
index 67fc504..f2b527b 100644 (file)
@@ -27,4 +27,6 @@ public @interface PackageTransformerConfiguration {
     boolean shouldCreateSnapshots() default true;
     @AttributeDefinition(name = "Use hollow packages", description = "Boolean flag indicating whether hollow packages (i.e. packages not containing actual content) should be used. This prevents the package file from being copied to the repository first before being installed (i.e. reduces required disk space, improves speed) but also prevents snapshot creation and uninstallation.")
     boolean shouldCreateHollowPackages() default false;
+    @AttributeDefinition(name = "Observation Manager's User Data", description = "Sets the user data on the observation manager (only affects the session used for package installation) to the given value. Leave empty to not set it. Can be used to check in EventListeners whether an event was caused by package installation/uninstallation.")
+    String observationManagerUserData() default "";
 }