You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:42:30 UTC
[sling-org-apache-sling-installer-factory-configuration] 06/11:
SLING-2014 : Provide a possibility to not persist configuration changes
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.installer.factory.configuration-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-installer-factory-configuration.git
commit 93642ddb4ed024574f5746479fa51ab210504c66
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Mar 3 08:08:24 2011 +0000
SLING-2014 : Provide a possibility to not persist configuration changes
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/installer/factories/configuration@1076551 13f79535-47bb-0310-9956-ffa450edef68
---
pom.xml | 3 +++
.../configuration/ConfigurationConstants.java | 31 ++++++++++++++++++++++
.../configuration/impl/ConfigTaskCreator.java | 16 +++++++++--
3 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 60eb1c4..e5585b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,9 @@
<Bundle-Activator>
org.apache.sling.installer.factories.configuration.impl.Activator
</Bundle-Activator>
+ <Export-Package>
+ org.apache.sling.installer.factories.configuration
+ </Export-Package>
<Private-Package>
org.apache.sling.installer.factories.configuration.impl.*
</Private-Package>
diff --git a/src/main/java/org/apache/sling/installer/factories/configuration/ConfigurationConstants.java b/src/main/java/org/apache/sling/installer/factories/configuration/ConfigurationConstants.java
new file mode 100644
index 0000000..93afb48
--- /dev/null
+++ b/src/main/java/org/apache/sling/installer/factories/configuration/ConfigurationConstants.java
@@ -0,0 +1,31 @@
+/*
+ * 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.factories.configuration;
+
+public abstract class ConfigurationConstants {
+
+ /**
+ * This property defines if a configuration should be persisted by the
+ * installer. This property is a boolean value defaulting to true.
+ *
+ * The property should be used, if a configuration should not be persisted
+ * by clients creating the configuration.
+ */
+ public static final String PROPERTY_PERSISTENCE = "org.apache.sling.installer.configuration.persist";
+}
diff --git a/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java b/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
index ce608ff..1ef43bd 100644
--- a/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
+++ b/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
@@ -32,6 +32,7 @@ import org.apache.sling.installer.api.tasks.ResourceTransformer;
import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.api.tasks.TaskResourceGroup;
import org.apache.sling.installer.api.tasks.TransformationResult;
+import org.apache.sling.installer.factories.configuration.ConfigurationConstants;
import org.osgi.framework.Constants;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
@@ -92,10 +93,21 @@ public class ConfigTaskCreator
false);
if ( config != null ) {
final Dictionary<String, Object> dict = ConfigUtil.cleanConfiguration(config.getProperties());
- this.changeListener.resourceAddedOrUpdated(InstallableResource.TYPE_CONFIG, id, null, dict);
+ boolean persist = true;
+ final Object persistProp = dict.get(ConfigurationConstants.PROPERTY_PERSISTENCE);
+ if ( persistProp != null ) {
+ if (persistProp instanceof Boolean) {
+ persist = ((Boolean) persistProp).booleanValue();
+ } else {
+ persist = Boolean.valueOf(String.valueOf(persistProp));
+ }
+ }
+ if ( persist ) {
+ this.changeListener.resourceAddedOrUpdated(InstallableResource.TYPE_CONFIG, id, null, dict);
+ }
}
} catch ( final Exception ignore) {
- // ignore for now (TODO)
+ // ignore for now
}
}
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.