in sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePlatFormSettings.java [47:62]
public static void disableFeatures(FeatureHandler featureHandler, String... featureNames) {
List<String> disabledFeatures = List.of(featureNames);
try {
Field featureInstancesField = featureHandler.getClass().getDeclaredField("featureInstances");
featureInstancesField.setAccessible(true);
List<Feature> allFeatures = (List<Feature>) featureInstancesField.get(featureHandler);
for (int i = 0; i < allFeatures.size(); i++) {
Feature featureInstance = allFeatures.get(i);
if (disabledFeatures.stream().anyMatch(f -> f.equals(featureInstance.getClass().getName()))) {
allFeatures.set(i, DUMMY_FEATURE);
}
}
} catch (ReflectiveOperationException e) {
AnalysisError.shouldNotReachHere("Can't disable features.", e);
}
}