public void processApplication()

in geronimo-openapi-impl/src/main/java/org/apache/geronimo/microprofile/openapi/impl/processor/AnnotationProcessor.java [208:236]


    public void processApplication(final OpenAPI api, final AnnotatedElement type) {
        ofNullable(type.getAnnotation(OpenAPIDefinition.class)).ifPresent(def -> processDefinition(api, def));

        final Optional<String> servers = ofNullable(config.read(OASConfig.SERVERS, null));
        if (servers.isPresent()) {
            api.servers(mapConfiguredServers(servers.get()));
        } else {
            Stream.of(type.getAnnotationsByType(Server.class)).forEach(server -> api.addServer(mapServer(server)));
        }

        Stream.of(type.getAnnotationsByType(Extension.class)).forEach(ext -> api.addExtension(ext.name(), ext.value()));
        Stream.of(type.getAnnotationsByType(ExternalDocumentation.class))
                .forEach(doc -> api.setExternalDocs(mapExternalDocumentation(doc)));
        Stream.of(type.getAnnotationsByType(Tag.class)).forEach(tag -> api.addTag(mapTag(tag)));
        Stream.of(type.getAnnotationsByType(SecurityRequirement.class))
              .forEach(security -> {
                  if (api.getSecurity() == null) {
                      api.setSecurity(new ArrayList<>(1));
                  }
                  api.addSecurityRequirement(mapSecurity(security));
              });
        Stream.of(type.getAnnotationsByType(SecurityScheme.class))
                .forEach(scheme -> {
                    if (api.getComponents().getSecuritySchemes() == null) {
                        api.getComponents().setSecuritySchemes(new HashMap<>());
                    }
                    api.getComponents().addSecurityScheme(scheme.securitySchemeName(), mapSecurityScheme(scheme));
                });
    }