ResolvedFeature includeFeature(ResolvedFeatureId id, ResolvedFeatureSpec spec, Map<String, Object> resolvedParams, Map<ResolvedFeatureId, FeatureDependencySpec> resolvedDeps)
throws ProvisioningException {
if(id != null) {
final ResolvedFeature feature = features.get(id);
if(feature != null) {
feature.merge(resolvedDeps, resolvedParams, true);
return feature;
}
}
final ResolvedFeature feature = new ResolvedFeature(id, spec, resolvedParams, resolvedDeps, ++featureIncludeCount);
addFeature(feature);
return feature;
}