In JersyConfiguration
class i am getting sonar tool major issues like Remove this call from a constructor to the overridable "register" method. I really don't understand with what code change can resolve this issue. This is my code:
JerseyConfiguration
public class JerseyConfiguration extends ResourceConfig {
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);
objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
return objectMapper;
}
@Autowired
public JerseyConfiguration() {
register(TermsResourceImpl.class);
register(AccessIDResourceImpl.class);
register(CatalogResourceImpl.class);
register(SubmitOrderResourceImpl.class);
register(ValidateAndQuoteResourceImp.class);
property(ServletProperties.FILTER_FORWARD_ON_404, true);
register(DynamicLoggingFeature.class);
register(ContextFilter.class);
register(ServiceExceptionMapper.class);
register(JsonParseExceptionMapper.class, 1);
register(JsonMappingExceptionMapper.class, 1);
register(LoggingContextJerseyFilter.class);
register(FeatureToggleFilterBinder.class);
}
@Bean
public Client jerseyClient() {
return ClientBuilder.newClient(new ClientConfig());
}
}
ResourceConfig overide methods
@Override
public ResourceConfig property(final String name, final Object value) {
state.property(name, value);
return this;
}
@Override
public ResourceConfig register(final Class<?> componentClass) {
invalidateCache();
state.register(componentClass);
return this;
}