Skip to content

Updating avro 1.12 jar doent work well with fasterxml.jackson 2.15 or 2.17 #602

Open
@prateek-nagar-IBM

Description

@prateek-nagar-IBM

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions