Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix mvc error introduced by management of the Accept:* header #274

Merged
merged 1 commit into from
Mar 9, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,55 +30,67 @@

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "gov.nasa.pds.api.registry.configuration ", "gov.nasa.pds.api.registry.controller",
"gov.nasa.pds.api.registry.search" })
@ComponentScan(basePackages = {"gov.nasa.pds.api.registry.configuration ",
"gov.nasa.pds.api.registry.controller", "gov.nasa.pds.api.registry.search"})
public class WebMVCConfig implements WebMvcConfigurer {
private static final Logger log = LoggerFactory.getLogger(WebMVCConfig.class);
private static final Logger log = LoggerFactory.getLogger(WebMVCConfig.class);

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

registry.addResourceHandler("/swagger-ui/pds.*").addResourceLocations("classpath:/swagger-ui/");
registry.addResourceHandler("/swagger-ui/index.htm*").addResourceLocations("classpath:/swagger-ui/");
}
registry.addResourceHandler("/swagger-ui/pds.*").addResourceLocations("classpath:/swagger-ui/");
registry.addResourceHandler("/swagger-ui/index.htm*")
.addResourceLocations("classpath:/swagger-ui/");
}

@Override
@SuppressWarnings("deprecation")
public void configurePathMatch(PathMatchConfigurer configurer) {
// this is important to avoid that parameters (e.g lidvid) are truncated after .
configurer.setUseSuffixPatternMatch(false);
}
@Override
@SuppressWarnings("deprecation")
public void configurePathMatch(PathMatchConfigurer configurer) {
// this is important to avoid that parameters (e.g lidvid) are truncated after .
configurer.setUseSuffixPatternMatch(false);
}

/**
* Setup a simple strategy: use all the defaults and return JSON by default when
* not sure.
*/
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON);
}
/**
* Setup a simple strategy: use all the defaults and return JSON by default when not sure.
*/
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON);
}

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
WebMVCConfig.log.info("Number of converters available " + Integer.toString(converters.size()));
converters.add(new StringHttpMessageConverter());
converters.add(new CsvErrorMessageSerializer());
converters.add(new CsvPluralSerializer());
converters.add(new CsvSingularSerializer());
// converters.add(new HtmlErrorMessageSerializer());
converters.add(new JsonErrorMessageSerializer());
converters.add(new JsonPluralSerializer());
converters.add(new JsonSingularSerializer());
converters.add(new JsonProductSerializer());
converters.add(new Pds4JsonProductSerializer());
converters.add(new Pds4JsonProductsSerializer());
converters.add(new Pds4XmlProductSerializer());
converters.add(new Pds4XmlProductsSerializer());
// converters.add(new PdsProductTextHtmlSerializer());
// converters.add(new PdsProductsTextHtmlSerializer());
converters.add(new PdsProductXMLSerializer());
converters.add(new PdsProductsXMLSerializer());
converters.add(new XmlErrorMessageSerializer());
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
WebMVCConfig.log.info("Number of converters available " + Integer.toString(converters.size()));

// basic converter for swagger-ui resources
converters.add(new StringHttpMessageConverter());

// csv converters
converters.add(new CsvErrorMessageSerializer());
converters.add(new CsvPluralSerializer());
converters.add(new CsvSingularSerializer());

// json+kvp converters
converters.add(new JsonPluralSerializer());
converters.add(new JsonSingularSerializer());

// json+pds4 converters
converters.add(new Pds4JsonProductSerializer());
converters.add(new Pds4JsonProductsSerializer());

// xml+pds4 converters
converters.add(new Pds4XmlProductSerializer());
converters.add(new Pds4XmlProductsSerializer());

// default xml converters
converters.add(new PdsProductXMLSerializer());
converters.add(new PdsProductsXMLSerializer());
converters.add(new XmlErrorMessageSerializer());

// default json converters
converters.add(new JsonProductSerializer());
converters.add(new JsonErrorMessageSerializer());
}
}