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