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));
});
}