public static void disableFeatures()

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