SLING-8970 - adding test & fixing logic to consider inherited exports in region checks
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java
index 790d84c..e92908f 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiRegions.java
@@ -103,11 +103,16 @@
                 return false;
             }
         }
+        Set<ArtifactId> origins = new LinkedHashSet<>(Arrays.asList(region.getFeatureOrigins()));
+
         this.regions.stream()
             .filter(
                 existingRegion ->
-                    Stream.of(existingRegion.getFeatureOrigins())
-                        .anyMatch(Arrays.asList(region.getFeatureOrigins())::contains)
+                {
+                    ArtifactId[] targetOrigins = existingRegion.getFeatureOrigins();
+                    return (targetOrigins.length == 0 && origins.isEmpty())
+                        || Stream.of(targetOrigins).anyMatch(origins::contains);
+                }
             ).reduce((a,b) -> b).ifPresent(region::setParent);
 
         this.regions.add(region);