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; }