- private static final EELFLogger logger = EELFManager.getInstance().getLogger(JaxrsApplication.class);
- private Function<BeanDefinition, Optional<Class<?>>> beanDefinitionToClass = b -> {
- try {
- return Optional.of(Class.forName(b.getBeanClassName()));
- } catch (ClassNotFoundException e) {
- logger.error("Could not get class annotated with @Path for swagger documentation generation", e);
- return Optional.empty();
- }
- };
-
- @Override
- public Set<Class<?>> getClasses() {
- Set<Class<?>> resources = new HashSet<>();
- resources.add(JacksonObjectMapperProvider.class);
- resources.add(io.swagger.v3.jaxrs2.integration.resources.OpenApiResource.class);
- resources.addAll(scan());
- return resources;
- }
-
- private List<Class<?>> scan() {
- ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);
- scanner.addIncludeFilter(new AnnotationTypeFilter(javax.ws.rs.Path.class));
- return scanner.findCandidateComponents("org.onap.clamp.clds").stream().map(beanDefinitionToClass)
- .filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList());
- }