This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-installer-factory-packages.git
commit 1df258b5f98f31181aa76c070e0fdd21acccc807 Author: Konrad Windszus <[email protected]> AuthorDate: Fri Oct 7 09:24:03 2016 +0000 SLING-6111 allow to configure whether to create a snapshot prior to installing a package git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1763710 13f79535-47bb-0310-9956-ffa450edef68 --- .../factory/packages/impl/PackageTransformer.java | 19 ++++++++++++--- .../impl/PackageTransformerConfiguration.java | 28 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java b/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java index d46c905..1f9ff7e 100644 --- a/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java +++ b/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java @@ -48,6 +48,7 @@ import org.apache.sling.installer.api.tasks.TaskResourceGroup; import org.apache.sling.installer.api.tasks.TransformationResult; import org.apache.sling.jcr.api.SlingRepository; import org.osgi.framework.Version; +import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; @@ -84,6 +85,13 @@ public class PackageTransformer implements ResourceTransformer, InstallTaskFacto @Reference private RetryHandler retryHandler; + private PackageTransformerConfiguration configuration; + + @Activate + private void activate(final PackageTransformerConfiguration configuration) { + this.configuration = configuration; + } + /** * @see org.apache.sling.installer.api.tasks.ResourceTransformer#transform(org.apache.sling.installer.api.tasks.RegisteredResource) */ @@ -222,10 +230,15 @@ public class PackageTransformer implements ResourceTransformer, InstallTaskFacto // finally, install package final ImportOptions opts = new ImportOptions(); + if (configuration.shouldCreateSnapshots()) { + pkg.install(opts); + ctx.log("Content package installed: {}", resource); + } else { + pkg.extract(opts); + ctx.log("Content package extracted: {}", resource); + } - pkg.install(opts); - - ctx.log("Content package installed: {}", resource); + setFinishedState(ResourceState.INSTALLED); // notify retry handler to install dependend packages. diff --git a/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformerConfiguration.java b/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformerConfiguration.java new file mode 100644 index 0000000..eb5689d --- /dev/null +++ b/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformerConfiguration.java @@ -0,0 +1,28 @@ +/* + * 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.installer.factory.packages.impl; + +import org.osgi.service.metatype.annotations.AttributeDefinition; +import org.osgi.service.metatype.annotations.ObjectClassDefinition; + +@ObjectClassDefinition(name = "Apache Sling OSGi Installer Package Transformer", description = "Allows to configure how content packages are installed through the OSGi installer") +public @interface PackageTransformerConfiguration { + @AttributeDefinition(name = "Create Snapshots", description = "Boolean flag indicating whether prior to the installation of the package a snapshot of the repository should be created.") + boolean shouldCreateSnapshots() default true; +} -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
