From cb7ffbb2592a217f71ba985c8da9b48db3da7d52 Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Wed, 26 Aug 2020 19:08:13 +0300 Subject: [PATCH 1/8] Fixes #2007 : Downgrade objenesis version for mockito-android --- build.gradle | 2 +- gradle/dependencies.gradle | 4 +++- subprojects/android/android.gradle | 1 + subprojects/osgi-test/osgi-test.gradle | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 217f71d4b2..e30ddb1a5a 100644 --- a/build.gradle +++ b/build.gradle @@ -88,7 +88,7 @@ dependencies { compile libraries.bytebuddy, libraries.bytebuddyagent compileOnly libraries.junit4, libraries.hamcrest, libraries.opentest4j - compile libraries.objenesis + compile libraries.objenesis3 testCompile libraries.asm diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 9ae3679927..f907965b08 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -25,7 +25,9 @@ libraries.errorproneTestApi = "com.google.errorprone:error_prone_test_helpers:${ libraries.autoservice = "com.google.auto.service:auto-service:1.0-rc5" -libraries.objenesis = 'org.objenesis:objenesis:3.1' +// objenesis 3.x fails on android instrumentation test compile. https://github.com/mockito/mockito/issues/2007 +libraries.objenesis2 = 'org.objenesis:objenesis:2.6' +libraries.objenesis3 = 'org.objenesis:objenesis:3.1' libraries.asm = 'org.ow2.asm:asm:7.0' diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index 8f86eabb98..ec7b6b6333 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -5,6 +5,7 @@ apply from: "$rootDir/gradle/java-library.gradle" dependencies { compile project.rootProject compile libraries.bytebuddyandroid + compile libraries.objenesis2 } tasks.javadoc.enabled = false diff --git a/subprojects/osgi-test/osgi-test.gradle b/subprojects/osgi-test/osgi-test.gradle index 8ebcc042f3..ad5964c543 100644 --- a/subprojects/osgi-test/osgi-test.gradle +++ b/subprojects/osgi-test/osgi-test.gradle @@ -23,7 +23,7 @@ configurations { dependencies { testRuntimeBundles project.rootProject testRuntimeBundles libraries.bytebuddy - testRuntimeBundles libraries.objenesis + testRuntimeBundles libraries.objenesis3 testRuntimeBundles tasks.testBundle.outputs.files testRuntimeBundles tasks.otherBundle.outputs.files } From 52123c6907b858a0804ee779348b54671cdf60e4 Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Thu, 27 Aug 2020 00:45:44 +0300 Subject: [PATCH 2/8] Exclude objenesis from mockito-core and use defined version --- subprojects/android/android.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index ec7b6b6333..734474e846 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -3,7 +3,9 @@ description = "Mockito for Android" apply from: "$rootDir/gradle/java-library.gradle" dependencies { - compile project.rootProject + compile(project.rootProject) { + exclude group: 'org.objenesis', module: 'objenesis' + } compile libraries.bytebuddyandroid compile libraries.objenesis2 } From 44086b3e5e8f9098d8951403fe0157a7d6d0c004 Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Thu, 27 Aug 2020 10:41:57 +0300 Subject: [PATCH 3/8] add strict version and explanation --- subprojects/android/android.gradle | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index 734474e846..3cfc3a1a82 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -7,7 +7,27 @@ dependencies { exclude group: 'org.objenesis', module: 'objenesis' } compile libraries.bytebuddyandroid - compile libraries.objenesis2 + compile(libraries.objenesis2) { + version { + strictly '2.6' + } + because( + '\n' + + '--------------------------------------\\ /-------------------------------------\n' + + '---------------------------------------\\ /--------------------------------------\n' + + '----------------------------------------\\ /---------------------------------------\n' + + '-----------------------------------------V----------------------------------------\n' + + 'Objenesis 3.x version has method that is not supported by android api 25 and below.\n' + + 'If you have mockito-android or mockito-kotlin, exclude mockito-core from them.\n' + + 'implementation("org.mockito:mockito-core") {\n' + + ' exlcude group: "org.mockito", module: "mockito-core"\n' + + '}\n' + + '-----------------------------------------A----------------------------------------\n' + + '----------------------------------------/ \\---------------------------------------\n' + + '---------------------------------------/ \\--------------------------------------\n' + + '--------------------------------------/ \\-------------------------------------\n' + ) + } } tasks.javadoc.enabled = false From d5705f4312e06fcd460d9d466688e8a6f4a31be7 Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Thu, 27 Aug 2020 11:00:31 +0300 Subject: [PATCH 4/8] Update android.gradle --- subprojects/android/android.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index 3cfc3a1a82..fb4512e28b 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -19,7 +19,7 @@ dependencies { '-----------------------------------------V----------------------------------------\n' + 'Objenesis 3.x version has method that is not supported by android api 25 and below.\n' + 'If you have mockito-android or mockito-kotlin, exclude mockito-core from them.\n' + - 'implementation("org.mockito:mockito-core") {\n' + + 'implementation("com.nhaarman.mockitokotlin2:mockito-kotlin") {\n' + ' exlcude group: "org.mockito", module: "mockito-core"\n' + '}\n' + '-----------------------------------------A----------------------------------------\n' + From c34d55d778ffa2f93427c9aa2f18816b9e0f9ffb Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Thu, 27 Aug 2020 14:01:30 +0300 Subject: [PATCH 5/8] apply suggestion from code review and add more explanation --- subprojects/android/android.gradle | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index fb4512e28b..5b64153356 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -9,7 +9,7 @@ dependencies { compile libraries.bytebuddyandroid compile(libraries.objenesis2) { version { - strictly '2.6' + strictly '[2.6, 3.0[' } because( '\n' + @@ -17,11 +17,14 @@ dependencies { '---------------------------------------\\ /--------------------------------------\n' + '----------------------------------------\\ /---------------------------------------\n' + '-----------------------------------------V----------------------------------------\n' + - 'Objenesis 3.x version has method that is not supported by android api 25 and below.\n' + + 'Objenesis 3.x does not work with android api 25 and below.\n' + 'If you have mockito-android or mockito-kotlin, exclude mockito-core from them.\n' + 'implementation("com.nhaarman.mockitokotlin2:mockito-kotlin") {\n' + ' exlcude group: "org.mockito", module: "mockito-core"\n' + '}\n' + + 'For more information please check; \n' + + ' https://github.com/mockito/mockito/pull/2024\n' + + ' https://github.com/mockito/mockito/pull/2007\n' + '-----------------------------------------A----------------------------------------\n' + '----------------------------------------/ \\---------------------------------------\n' + '---------------------------------------/ \\--------------------------------------\n' + From b81982bae15a4600e66c32a5fcf54e767da14095 Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Thu, 27 Aug 2020 14:57:21 +0300 Subject: [PATCH 6/8] Add more detailed message --- subprojects/android/android.gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index 5b64153356..51791329b1 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -17,8 +17,9 @@ dependencies { '---------------------------------------\\ /--------------------------------------\n' + '----------------------------------------\\ /---------------------------------------\n' + '-----------------------------------------V----------------------------------------\n' + - 'Objenesis 3.x does not work with android api 25 and below.\n' + - 'If you have mockito-android or mockito-kotlin, exclude mockito-core from them.\n' + + 'Mockito core uses Objenesis 3.x and Objenesis 3.x does not work with android api 25 and below.\n' + + 'If you have mockito-core dependency with mockito-android, remove mockito-core.\n' + + 'If you have mockito-kotlin, exclude mockito-core.\n' + 'implementation("com.nhaarman.mockitokotlin2:mockito-kotlin") {\n' + ' exlcude group: "org.mockito", module: "mockito-core"\n' + '}\n' + From 9cd6addcf62b6bbf7abb4017dac830320d327e02 Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Thu, 27 Aug 2020 15:36:54 +0300 Subject: [PATCH 7/8] Update android.gradle --- subprojects/android/android.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index 51791329b1..29d487da42 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -21,7 +21,7 @@ dependencies { 'If you have mockito-core dependency with mockito-android, remove mockito-core.\n' + 'If you have mockito-kotlin, exclude mockito-core.\n' + 'implementation("com.nhaarman.mockitokotlin2:mockito-kotlin") {\n' + - ' exlcude group: "org.mockito", module: "mockito-core"\n' + + ' exclude group: "org.mockito", module: "mockito-core"\n' + '}\n' + 'For more information please check; \n' + ' https://github.com/mockito/mockito/pull/2024\n' + From 8918202b519df25ac1a393d27f556a9b9553052c Mon Sep 17 00:00:00 2001 From: Sinan Kozak Date: Wed, 2 Sep 2020 00:52:42 +0300 Subject: [PATCH 8/8] Update subprojects/android/android.gradle Co-authored-by: Tim van der Lippe --- subprojects/android/android.gradle | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/subprojects/android/android.gradle b/subprojects/android/android.gradle index 29d487da42..bd5a6959a2 100644 --- a/subprojects/android/android.gradle +++ b/subprojects/android/android.gradle @@ -13,10 +13,8 @@ dependencies { } because( '\n' + - '--------------------------------------\\ /-------------------------------------\n' + - '---------------------------------------\\ /--------------------------------------\n' + - '----------------------------------------\\ /---------------------------------------\n' + - '-----------------------------------------V----------------------------------------\n' + + 'MOCKITO DEPENDENCY PROBLEM:\n' + + '\n' + 'Mockito core uses Objenesis 3.x and Objenesis 3.x does not work with android api 25 and below.\n' + 'If you have mockito-core dependency with mockito-android, remove mockito-core.\n' + 'If you have mockito-kotlin, exclude mockito-core.\n' + @@ -25,11 +23,7 @@ dependencies { '}\n' + 'For more information please check; \n' + ' https://github.com/mockito/mockito/pull/2024\n' + - ' https://github.com/mockito/mockito/pull/2007\n' + - '-----------------------------------------A----------------------------------------\n' + - '----------------------------------------/ \\---------------------------------------\n' + - '---------------------------------------/ \\--------------------------------------\n' + - '--------------------------------------/ \\-------------------------------------\n' + ' https://github.com/mockito/mockito/pull/2007\n' ) } }