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