You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/05/29 14:09:03 UTC
svn commit: r1796634 - in
/sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json:
FeatureJSONReader.java FeatureJSONWriter.java
Author: cziegeler
Date: Mon May 29 14:09:03 2017
New Revision: 1796634
URL: http://svn.apache.org/viewvc?rev=1796634&view=rev
Log:
Implement removals
Modified:
sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONReader.java
sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONWriter.java
Modified: sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONReader.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONReader.java?rev=1796634&r1=1796633&r2=1796634&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONReader.java (original)
+++ sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONReader.java Mon May 29 14:09:03 2017
@@ -154,7 +154,38 @@ public class FeatureJSONReader {
feature.getIncludes().add(include);
if ( obj.containsKey(JSONConstants.INCLUDE_REMOVALS) ) {
- // TODO - removals
+ checkType("Include removals", obj.get(JSONConstants.INCLUDE_REMOVALS), Map.class);
+ @SuppressWarnings("unchecked")
+ final Map<String, Object> removalObj = (Map<String, Object>) obj.get(JSONConstants.INCLUDE_REMOVALS);
+ if ( removalObj.containsKey(JSONConstants.FEATURE_BUNDLES) ) {
+ checkType("Include removal bundles", removalObj.get(JSONConstants.FEATURE_BUNDLES), List.class);
+ @SuppressWarnings("unchecked")
+ final List<Object> list = (List<Object>)removalObj.get(JSONConstants.FEATURE_BUNDLES);
+ for(final Object val : list) {
+ checkType("Include removal bundles", val, String.class);
+ include.getBundleRemovals().add(ArtifactId.fromMvnId(val.toString()));
+ }
+ }
+ if ( removalObj.containsKey(JSONConstants.FEATURE_CONFIGURATIONS) ) {
+ checkType("Include removal configuration", removalObj.get(JSONConstants.FEATURE_CONFIGURATIONS), List.class);
+ @SuppressWarnings("unchecked")
+ final List<Object> list = (List<Object>)removalObj.get(JSONConstants.FEATURE_CONFIGURATIONS);
+ for(final Object val : list) {
+ checkType("Include removal bundles", val, String.class);
+ include.getConfigurationRemovals().add(val.toString());
+ }
+ }
+ if ( removalObj.containsKey(JSONConstants.FEATURE_FRAMEWORK_PROPERTIES) ) {
+ checkType("Include removal framework properties", removalObj.get(JSONConstants.FEATURE_FRAMEWORK_PROPERTIES), List.class);
+ @SuppressWarnings("unchecked")
+ final List<Object> list = (List<Object>)removalObj.get(JSONConstants.FEATURE_FRAMEWORK_PROPERTIES);
+ for(final Object val : list) {
+ checkType("Include removal bundles", val, String.class);
+ include.getFrameworkPropertiesRemovals().add(val.toString());
+ }
+
+ }
+ // TODO removal of extensions
}
}
}
Modified: sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONWriter.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONWriter.java?rev=1796634&r1=1796633&r2=1796634&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONWriter.java (original)
+++ sling/whiteboard/cziegeler/provisioning-model/src/main/java/org/apache/sling/feature/json/FeatureJSONWriter.java Mon May 29 14:09:03 2017
@@ -27,6 +27,7 @@ import javax.json.Json;
import javax.json.stream.JsonGenerator;
import org.apache.sling.feature.Artifact;
+import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Capability;
import org.apache.sling.feature.Configuration;
import org.apache.sling.feature.Feature;
@@ -73,13 +74,28 @@ public class FeatureJSONWriter {
// TODO
}
if ( !inc.getConfigurationRemovals().isEmpty() ) {
- // TODO
+ w.write(JSONConstants.FEATURE_CONFIGURATIONS);
+ w.writeStartArray();
+ for(final String val : inc.getConfigurationRemovals()) {
+ w.write(val);
+ }
+ w.writeEnd();
}
if ( !inc.getBundleRemovals().isEmpty() ) {
- // TODO
+ w.write(JSONConstants.FEATURE_BUNDLES);
+ w.writeStartArray();
+ for(final ArtifactId val : inc.getBundleRemovals()) {
+ w.write(val.toMvnId());
+ }
+ w.writeEnd();
}
if ( !inc.getFrameworkPropertiesRemovals().isEmpty() ) {
- // TODO
+ w.write(JSONConstants.FEATURE_FRAMEWORK_PROPERTIES);
+ w.writeStartArray();
+ for(final String val : inc.getFrameworkPropertiesRemovals()) {
+ w.write(val);
+ }
+ w.writeEnd();
}
w.writeEnd();
w.writeEnd();