in src/main/java/org/apache/sling/feature/extension/apiregions/ArtifactRulesMergeHandler.java [36:64]
public void merge(final HandlerContext context,
final Feature targetFeature,
final Feature sourceFeature,
final Extension targetExtension,
final Extension sourceExtension) {
if ( targetExtension == null ) {
// no target available yet, just copy source
final ArtifactRules sourceRules = ArtifactRules.getArtifactRules(sourceExtension);
ArtifactRules.setArtifactRules(targetFeature, sourceRules);
} else {
final ArtifactRules sourceRules = ArtifactRules.getArtifactRules(sourceExtension);
final ArtifactRules targetRules = ArtifactRules.getArtifactRules(targetExtension);
// mode merging
if ( context.isInitialMerge() ) {
targetRules.setMode(sourceRules.getMode());
} else {
if ( targetRules.getMode().ordinal() > sourceRules.getMode().ordinal() ) {
targetRules.setMode(sourceRules.getMode());
}
}
// merge - just add
targetRules.getBundleVersionRules().addAll(sourceRules.getBundleVersionRules());
ArtifactRules.setArtifactRules(targetFeature, targetRules);
}
}