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();