@SuppressWarnings("rawtypes") protected void generateSpec() throws Exception { Set<Class<?>> classes = this.registeredControllers; OpenAPIExtensions.setExtensions(Collections.singletonList(new ServerParameterExtension())); OpenAPI openApi = new OpenAPI(); Info info = mapper.convertValue(openAPIConfig.getValue("info").unwrapped(), Info.class); openApi.setInfo(info); Map<String, SecurityScheme> securitySchemes = mapper.convertValue( openAPIConfig.getValue("securitySchemes").unwrapped(),new TypeReference<Map<String, SecurityScheme>>(){}); if (openApi.getComponents() == null) { openApi.setComponents(new Components()); } openApi.getComponents().setSecuritySchemes(securitySchemes); List<Server> servers = mapper.convertValue(openAPIConfig.getValue("servers").unwrapped(), new TypeReference<List<Server>>(){}); openApi.setServers(servers); SwaggerConfiguration config = new SwaggerConfiguration().resourceClasses(classes.stream().map(Class::getName).collect(Collectors.toSet())).openAPI(openApi); config.setModelConverterClassess(Collections.singleton(ServerModelResolver.class.getName())); OpenApiContext ctx = new GenericOpenApiContext().openApiConfiguration(config) .openApiReader(new Reader(config)) .openApiScanner(new JaxrsApplicationAndAnnotationScanner().openApiConfiguration(config)) .init(); openApi = ctx.read(); this.openApi = openApi; this.spec = writer.writeValueAsString(openApi); }