private void initFeatures()

in jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java [752:810]


    private void initFeatures() throws Exception {
        if (features != null && !features.isEmpty()) {
            features.entrySet().stream().forEach( entry -> {
                String featureKey = entry.getKey();
                Boolean featureValue = entry.getValue();    
                String featureType = featureTypes.get(featureKey);
                Class<?> configFeature = null;
                try {
                    getLogger().debug("initializing featureType:  " + featureType);
                    configFeature = loadClass(featureType); 
                } catch (ClassNotFoundException e) {
                    throw new AssertionError("JsonMapperService: Error instantiating " + featureType + " for " + featureKey, e);
                }
                ConfigFeature feature = null;
                if (!StringUtils.isEmpty(featureKey) && featureValue != null) {
                   try 
                   {
                        if (configFeature.equals(SerializationFeature.class)) {
                            feature = SerializationFeature.valueOf(featureKey);
                            mapper.configure((SerializationFeature) feature, featureValue);
                            assert mapper.getSerializationConfig()
                                    .isEnabled((SerializationFeature) feature) == featureValue;
                            getLogger().info("initialized serconfig mapper feature: " + feature + " with "
                                    + mapper.getSerializationConfig().isEnabled((SerializationFeature) feature));
                        } else if (configFeature.equals(DeserializationFeature.class)) {
                            feature = DeserializationFeature.valueOf(featureKey);
                            mapper.configure((DeserializationFeature) feature, featureValue);
                            assert mapper.getDeserializationConfig()
                                    .isEnabled((DeserializationFeature) feature) == featureValue;
                            getLogger().info("initialized deserconfig mapper feature: " + feature + " with "
                                    + mapper.getDeserializationConfig().isEnabled((DeserializationFeature) feature));
                        } else if (configFeature.equals(MapperFeature.class)) {
                            feature = MapperFeature.valueOf(featureKey);
                            mapper.configure((MapperFeature) feature, featureValue);
                            assert mapper.getDeserializationConfig().isEnabled((MapperFeature) feature) == featureValue;
                            assert mapper.getSerializationConfig().isEnabled((MapperFeature) feature) == featureValue;
                            getLogger().info("initialized serconfig mapper feature: " + feature + " with "
                                    + mapper.getDeserializationConfig().isEnabled((MapperFeature) feature));
                            getLogger().info("initialized deserconfig mapper feature: " + feature + " with "
                                    + mapper.getSerializationConfig().isEnabled((MapperFeature) feature));
                        } else if (configFeature.equals(JsonParser.class)) {
                            Feature parserFeature = JsonParser.Feature.valueOf(featureKey);
                            getLogger().info("initializing parser feature: " + parserFeature + " with " + featureValue);
                            mapper.configure(parserFeature, featureValue);
                        } else if (configFeature.equals(JsonGenerator.class)) {
                            com.fasterxml.jackson.core.JsonGenerator.Feature genFeature = JsonGenerator.Feature
                                    .valueOf(featureKey);
                            getLogger().info("initializing parser feature: " + genFeature + " with " + featureValue);
                            mapper.configure(genFeature, featureValue);
                        }
                   } catch (Exception e) {
                       throw new RuntimeException("JsonMapperService: Error instantiating feature " + featureKey + " with  "
                               + featureValue , e);
                   }
                    
                }
            });   
        }
    }