Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ref #3079 - update guava for v1 #3122

Merged
merged 1 commit into from
Feb 14, 2019
Merged

ref #3079 - update guava for v1 #3122

merged 1 commit into from
Feb 14, 2019

Conversation

frantuma
Copy link
Member

No description provided.

@frantuma frantuma merged commit aca01ab into 1.5 Feb 14, 2019
@frantuma frantuma deleted the guava-update-v1 branch February 14, 2019 17:38
@ChristianCiach
Copy link

ChristianCiach commented Feb 27, 2019

Why does Swagger core depend on guava-android? This conflicts with our server application, which (of course) depends on guava-jre.

@frantuma
Copy link
Member Author

as 1.5 supports Java 1.7, it reference guava-android as the flavor supporting 1.7, see https://github.com/google/guava/wiki/ReleasePolicy#flavors; if this is not compatible with your env, you can exclude from swagger core transitive deps

@albertotn
Copy link

How it's possible to exclude this guava-android transitive dependency from build.gradle ?
I mean the following jar 'guava-27.0.1-android' and also related dependecies, my example build.gradle:

buildscript {
    repositories {
        mavenCentral()
     	jcenter()
    }
}
plugins {
    id 'war'  
    id "org.hidetake.swagger.generator" version "2.12.0"
}

def defaultEncoding = 'UTF-8'

compileJava   {
  sourceCompatibility = '1.8'
  targetCompatibility = '1.8'
  options.encoding = defaultEncoding
}

repositories {
    //mavenLocal()
    mavenCentral()
    jcenter()
}

dependencies {
    compile         'io.swagger:swagger-annotations:1.5.21',
					'io.swagger:swagger-jaxrs:1.5.22'    
}


sourceSets {
    main {
        java {
            srcDir 'src/gen/java'
        }
    }
}

and here dependency tree:

:dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
No dependencies

apiElements - API elements for main. (n)
No dependencies

archives - Configuration for archive artifacts.
No dependencies

compile - Dependencies for source set 'main' (deprecated, use 'implementation ' instead).
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

compileClasspath - Compile classpath for source set 'main'.
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

compileOnly - Compile only dependencies for source set 'main'.
No dependencies

default - Configuration for default artifacts.
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

implementation - Implementation only dependencies for source set 'main'. (n)
No dependencies

providedCompile - Additional compile classpath for libraries that should not be part of the WAR archive.
No dependencies

providedRuntime - Additional runtime classpath for libraries that should not be part of the WAR archive.
No dependencies

runtime - Runtime dependencies for source set 'main' (deprecated, use 'runtimeOnly ' instead).
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

runtimeClasspath - Runtime classpath of source set 'main'.
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

runtimeElements - Elements of runtime for main. (n)
No dependencies

runtimeOnly - Runtime only dependencies for source set 'main'. (n)
No dependencies

swaggerCodegen
No dependencies

swaggerTemplate
No dependencies

swaggerUI
No dependencies

testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'.
No dependencies

testCompile - Dependencies for source set 'test' (deprecated, use 'testImplementation ' instead).
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

testCompileClasspath - Compile classpath for source set 'test'.
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

testCompileOnly - Compile only dependencies for source set 'test'.
No dependencies

testImplementation - Implementation only dependencies for source set 'test'. (n)
No dependencies

testRuntime - Runtime dependencies for source set 'test' (deprecated, use 'testRuntimeOnly ' instead).
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- io.swagger:swagger-annotations:1.5.21 -> 1.5.22
\--- io.swagger:swagger-jaxrs:1.5.22
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
     |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     +--- io.swagger:swagger-core:1.5.22
     |    +--- org.apache.commons:commons-lang3:3.2.1
     |    +--- org.slf4j:slf4j-api:1.7.22
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
     |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8
     |    |    +--- org.yaml:snakeyaml:1.23
     |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
     |    +--- io.swagger:swagger-models:1.5.22
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8
     |    |    +--- org.slf4j:slf4j-api:1.7.22
     |    |    \--- io.swagger:swagger-annotations:1.5.22
     |    +--- com.google.guava:guava:27.0.1-android
     |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    +--- org.checkerframework:checker-compat-qual:2.5.2
     |    |    +--- com.google.errorprone:error_prone_annotations:2.2.0
     |    |    +--- com.google.j2objc:j2objc-annotations:1.1
     |    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
     |    \--- javax.validation:validation-api:1.1.0.Final
     +--- javax.ws.rs:jsr311-api:1.1.1
     +--- org.reflections:reflections:0.9.11
     |    +--- com.google.guava:guava:20.0 -> 27.0.1-android (*)
     |    \--- org.javassist:javassist:3.21.0-GA
     \--- com.google.guava:guava:27.0.1-android (*)

testRuntimeOnly - Runtime only dependencies for source set 'test'. (n)
No dependencies

(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

BUILD SUCCESSFUL in 3s
1 actionable task: 1 executed

@albertotn
Copy link

Update on previous question: I've found the change that guava maintainers does, more info on guava and in particular: google/guava#2914
So why swagger code opted for android flavor instead of jre ones?

@ChristianCiach
Copy link

ChristianCiach commented Mar 1, 2019

How it's possible to exclude this guava-android transitive dependency from build.gradle ?

This is one of the possibilities:

dependencies {
    compile('io.swagger:swagger-jaxrs:1.5.22') {
        exclude group: 'com.google.guava', module: 'guava'
    }
    compile 'com.google.guava:guava:27.0.1-jre'
}

There are other ways that I prefer in this case: https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html#sec:dependency_substitution_rules

So why swagger code opted for android flavor instead of jre ones?

@frantuma answered that already, and he is right:

as 1.5 supports Java 1.7, it reference guava-android as the flavor supporting 1.7

guava-jre requires Java 1.8. If swagger-core would depend on guava-jre, this would make swagger-core require Java 1.8. Because Swagger 1.* promises to be compatible with Java 1.7, depending on guava-jre is not an option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants