You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2018/11/07 11:37:35 UTC

[sling-org-apache-sling-feature-extension-apiregions] 11/13: Handle extension merging with null target

This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-extension-apiregions.git

commit 40b24975d6604dcec9d1711ef2771ea34ad95c2f
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Tue Nov 6 13:58:43 2018 +0000

    Handle extension merging with null target
---
 .../extension/apiregions/APIRegionMergeHandler.java      | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java b/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java
index f1c0d52..fbd695f 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandler.java
@@ -41,14 +41,24 @@ public class APIRegionMergeHandler implements MergeHandler {
 
     @Override
     public void merge(HandlerContext context, Feature target, Feature source, Extension targetEx, Extension sourceEx) {
-        if (!targetEx.getName().equals("api-regions") || !sourceEx.getName().equals("api-regions"))
+        if (!sourceEx.getName().equals("api-regions"))
+            return;
+        if (targetEx != null && !targetEx.getName().equals("api-regions"))
             return;
 
         JsonReader srcJR = Json.createReader(new StringReader(sourceEx.getJSON()));
         JsonArray srcJA = srcJR.readArray();
 
-        JsonReader tgtJR = Json.createReader(new StringReader(targetEx.getJSON()));
-        JsonArray tgtJA = tgtJR.readArray();
+        JsonArray tgtJA;
+        if (targetEx != null) {
+            JsonReader tgtJR = Json.createReader(new StringReader(targetEx.getJSON()));
+            tgtJA = tgtJR.readArray();
+        } else {
+            targetEx = new Extension(sourceEx.getType(), sourceEx.getName(), sourceEx.isRequired());
+            target.getExtensions().add(targetEx);
+
+            tgtJA = Json.createArrayBuilder().build();
+        }
 
         StringWriter sw = new StringWriter();
         JsonGenerator gen = Json.createGenerator(sw);