SLING-8676 : Prototype does not allow to remove requirements and capabilities
diff --git a/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java b/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java
index c1be04e..679b1f1 100644
--- a/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java
+++ b/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java
@@ -577,6 +577,8 @@
                             }
                         }
                     }
+                    readRequirements(removalObj, prototype.getRequirementRemovals());
+                    readCapabilities(removalObj, prototype.getCapabilityRemovals());
 
                 }
             }
diff --git a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
index b74a4db..9d17744 100644
--- a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
+++ b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
@@ -218,7 +218,9 @@
         if ( inc.getArtifactExtensionRemovals().isEmpty()
              && inc.getBundleRemovals().isEmpty()
              && inc.getConfigurationRemovals().isEmpty()
-             && inc.getFrameworkPropertiesRemovals().isEmpty() ) {
+             && inc.getFrameworkPropertiesRemovals().isEmpty()
+             && inc.getRequirementRemovals().isEmpty()
+             && inc.getCapabilityRemovals().isEmpty() ) {
 
             generator.write(JSONConstants.FEATURE_PROTOTYPE, inc.getId().toMvnId());
         } else {
@@ -248,6 +250,9 @@
             writeList(generator, JSONConstants.FEATURE_BUNDLES, inc.getBundleRemovals());
             writeList(generator, JSONConstants.FEATURE_FRAMEWORK_PROPERTIES, inc.getFrameworkPropertiesRemovals());
 
+            writeRequirements(generator, inc.getRequirementRemovals());
+            writeCapabilities(generator, inc.getCapabilityRemovals());
+
             generator.writeEnd().writeEnd();
         }
     }