System properties do not make it down to dependencies
Created by: jdomizio
Bug Report Checklist
- [n/a] Have you provided a full/minimal spec to reproduce the issue?
-
Have you validated the input using an OpenAPI validator (example)? -
What's the version of OpenAPI Generator used? -
Have you search for related issues/PRs? -
What's the actual output vs expected output? -
[Optional] Bounty to sponsor the fix (example)
Description
Option to set system property -Dio.swagger.v3.parser.util.RemoteUrl.trustAll=true
in openapi-generator-cli
does not actually set a system property that can be read by System.getProperty()
call in io.swagger.v3.parser.util.RemoteUrl
openapi-generator version
v4.0.0-beta3
OpenAPI declaration file content or url
n/a
Command line used for generation
docker run --rm -v ${PWD}:/local \
openapitools/openapi-generator-cli:v4.0.0-beta3 generate \
-Dio.swagger.v3.parser.util.RemoteUrl.trustAll=true \
-i https://xxx.dev.yyy.local/api/v1/swagger.json \
-g csharp-netcore \
-o /local/xxx
Unfortunately the url I am testing against is on a closed network, and I don't have an example that is internet-accessible.
The actual output I am seeing is here (https://gist.github.com/jdomizio/a21471b8a1b65b8b5904aad2e9276b44)
the expected output is the normal output for code generation.
Steps to reproduce
Run the above command against a swagger document hosted under https with a self-signed certificate. After pulling the v4.0.0-beta3 tag and modifying org.openapitools.codegen.config.CodegenConfigurator.setSystemProperties
to
private void setSystemProperties() {
for (Map.Entry<String, String> entry : systemProperties.entrySet()) {
System.setProperty(entry.getKey(), entry.getValue());
GeneratorProperties.setProperty(entry.getKey(), entry.getValue());
}
}
the expected system property gets set and I can successfully run the cli tool against self-signed endpoints again.
Related issues/PRs
(https://github.com/OpenAPITools/openapi-generator/issues/845#issuecomment-415316114)
Suggest a fix
Looks like previously a decision was made to remove use of System.(set|get|clear)Property
. A dependency of openapi-generator
: swagger-parser still depends on properties being set such that System.getProperty()
can retrieve them. Is there a plan to update or replace those dependencies such that they rely on the same mechanisms with the v4.0.0 release?