commit | 3e7bc1089727990ece0cacad3a8fae35da957225 | [log] [tgz] |
---|---|---|
author | Simo Tripodi <stripodi@adobe.com> | Fri Jul 12 20:00:11 2019 +0200 |
committer | Simo Tripodi <stripodi@adobe.com> | Fri Jul 12 20:00:11 2019 +0200 |
tree | 7d5eac42696e94db8dd6cb6aede5d47df31113ce | |
parent | 82f4a63025bf8117bc898b852dd0e67626130c45 [diff] |
SLING-8580 - [feature-diff] exclude 'service.pid' and 'service.factoryPid' OSGi configurations keys from comparison, which creates false positive diff
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);
The resulting featureDiff
is a new Feature
instance which prototypes from previous
and where necessary removals sections are populated and new elements may be added.
###Please note
The FeatureDiff.compareFeatures(Feature, Feature)
rejects (aka throws an IllegalArgumentException
) Feature
inputs that:
null
(bien sûr);Feature
.The DiffRequest
data object can be configured in order to include/exclude one ore more Feature section(s), available are:
bundles
configurations
extensions
framework-properties
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);