This tool aims to provide to Apache Sling users an easy-to-use tool which is able to detect differences between different released version of the same Apache Sling Feature Model.
Given two different versions of the same
org.apache.sling.feature.Feature, all we need to do is comparing them
import static org.apache.sling.feature.diff.FeatureDiff.compareFeatures; import org.apache.sling.feature.Feature import org.apache.sling.feature.diff.DiffRequest; import org.apache.sling.feature.diff.DiffRequest; ... Feature previous = // somehow obtained Feature current = // somehow obtained DiffRequest diffRequest = new DiffRequest() .setPrevious(previous) .setCurrent(current) .setResultId("org.apache.sling:org.apache.sling.diff:1.0.0"); Feature featureDiff = compareFeatures(diffRequest);
featureDiff is a new
Feature instance which prototypes from
previous and where necessary removals sections are populated and new elements may be added.
FeatureDiff.compareFeatures(Feature, Feature) rejects (aka throws an
Feature inputs that:
DiffRequest data object can be configured in order to include/exclude one ore more Feature section(s), available are:
Users can simply add via the include/exclude methods the section(s) they are interested:
DiffRequest diffRequest = new DiffRequest() .setPrevious(previous) .setCurrent(current) .addIncludeComparator("bundles") .addIncludeComparator("configurations") .setResultId("org.apache.sling:org.apache.sling.diff:1.0.0"); Feature featureDiff = compareFeatures(diffRequest);