Description
Hi, Our project has fasterxml 2.15.0 version. I am working on a feature that needs adding avro 1.12 jar.
But adding avro jar complains that it needs jackson 2.17 or higher, so I upgraded my jackson to use 2.17 but then it is complaining on some isProperty() method form json libraries, for that I upgraded swagger as well.
I am stuck at this point as our code base relies on legacy versions of jackson, swagger
Please suggest which is the most compatible version to be used
Missing requirement: Apache Avro 1.12.0 (avro 1.12.0) requires 'java.package; com.fasterxml.jackson.annotation [2.17.0,3.0.0)' but it could not be found
but then when I upgrade to jackson and swagger libraries I am seeing the following error in my unit tests
java.lang.AssertionError: java.lang.reflect.InvocationTargetException: io/swagger/v3/parser/urlresolver/exceptions/HostDeniedException
This is my gradle changes
sag_const.modules.swagger = [
// v1.x Swagger (legacy)
'io.swagger:swagger-annotations:1.6.14',
'io.swagger:swagger-core:1.6.14',
'io.swagger:swagger-models:1.6.14',
'io.swagger:swagger-parser:1.0.67',
// v3.x Swagger - use SAME version for all components
'io.swagger.core.v3:swagger-annotations:2.2.22',
'io.swagger.core.v3:swagger-core:2.2.22',
'io.swagger.core.v3:swagger-models:2.2.22',
'io.swagger.parser.v3:swagger-parser:2.1.22',
'io.swagger.parser.v3:swagger-parser-v3:2.1.22',
'io.swagger.parser.v3:swagger-parser-core:2.1.22',
'io.swagger.parser.v3:swagger-parser-v2-converter:2.1.22', // Add this
]
sag_const.modules.jackson = [
'com.fasterxml.jackson.core:jackson-core:2.17.0',
'com.fasterxml.jackson.core:jackson-annotations:2.17.0',
'com.fasterxml.jackson.core:jackson-databind:2.17.0',
'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.17.0',
'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.0',
'org.yaml:snakeyaml:2.0.0',
]
and to get rid of isProperty Error I did
static {
configureSwaggerSecurity(); // added as newer swagger librries have stricter resolution policies
}
private static void configureSwaggerSecurity() {
// Multiple property approaches to cover different Swagger versions
String[] hostProperties = {
"swagger.parser.util.RemoteUrl.hostCheck",
"swagger.parser.resolver.allowAllHosts",
"io.swagger.parser.util.RemoteUrl.trustAll",
"swagger.parser.resolve.external",
"swagger.parser.resolve.remote"
};
for (String prop : hostProperties) {
if (prop.contains("hostCheck") || prop.contains("external") || prop.contains("remote")) {
System.setProperty(prop, "false");
} else {
System.setProperty(prop, "true");
}
}
// Wildcard hosts
System.setProperty("swagger.parser.util.RemoteUrl.allowedHosts", "*");
} in one of the Test case class
but I am getting failures on my unit tests, Please assit in using fastwerxml jackson libraries with avro 1.12 jar