Skip to content

Commit

Permalink
Move core sources to mockito-core
Browse files Browse the repository at this point in the history
Previously, the source code for the `mockito-core` artifact lived in
`/src/main/java` and the configuration was part of the `rootProject`.
With this change, we align the `mockito-core` as a separate artifact
similar to the recent move to split up the extension projects into
`mockito-extensions`.

Fixes #3444
  • Loading branch information
bric3 authored and TimvdLippe committed Oct 6, 2024
1 parent 61dcd83 commit ab32438
Show file tree
Hide file tree
Showing 932 changed files with 100 additions and 93 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: build/reports/jacoco/mockitoCoverage/mockitoCoverage.xml
files: mockito-core/build/reports/jacoco/mockitoCoverage/mockitoCoverage.xml
fail_ci_if_error: true

#
Expand Down
62 changes: 4 additions & 58 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,31 +21,14 @@ buildscript {

plugins {
id 'com.diffplug.spotless' version '6.25.0'
id 'eclipse'
id 'com.github.ben-manes.versions' version '0.51.0'
id 'biz.aQute.bnd.builder' version '7.0.0'
id 'ru.vyarus.animalsniffer' version '1.7.1'
}

description = 'Mockito mock objects library core API and implementation'
apply from: "$rootDir/gradle/shipkit.gradle"
apply from: "$rootDir/gradle/root/ide.gradle"
apply from: "$rootDir/gradle/license.gradle"

apply plugin: 'base'
base.archivesName = 'mockito-core'

apply from: 'gradle/shipkit.gradle'

apply from: 'gradle/root/ide.gradle'
apply from: 'gradle/root/gradle-fix.gradle'
apply from: 'gradle/java-library.gradle'
apply from: 'gradle/license.gradle'
apply from: 'gradle/root/coverage.gradle'

apply from: 'gradle/mockito-core/inline-mock.gradle'
apply from: 'gradle/mockito-core/osgi.gradle'
apply from: 'gradle/mockito-core/javadoc.gradle'
apply from: 'gradle/mockito-core/testing.gradle'

allprojects { proj ->
subprojects { proj ->
repositories {
mavenCentral()
google()
Expand Down Expand Up @@ -79,40 +62,3 @@ allprojects { proj ->
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
}
}

configurations {
testUtil //TODO move to separate project
// Putting 'provided' dependencies on test compile and runtime classpath.
testCompileOnly.extendsFrom(compileOnly)
testRuntimeOnly.extendsFrom(compileOnly)
}

dependencies {
api libs.bytebuddy, libs.bytebuddy.agent

compileOnly libs.junit4, libs.hamcrest, libs.opentest4j
implementation libs.objenesis

testImplementation libs.assertj
testImplementation libs.junit.jupiter.api
testImplementation libs.junit.jupiter.params

testUtil sourceSets.test.output

signature 'org.codehaus.mojo.signature:java18:1.0@signature'
signature 'net.sf.androidscents.signature:android-api-level-26:8.0.0_r2@signature'
}

animalsniffer {
sourceSets = [sourceSets.main]
annotation = 'org.mockito.internal.SuppressSignatureCheck'
// See please https://github.com/mojohaus/animal-sniffer/issues/172
ignore += [
'java.lang.instrument.Instrumentation',
'java.lang.invoke.MethodHandle',
'java.lang.invoke.MethodHandles$Lookup',
'java.lang.StackWalker',
'java.lang.StackWalker$StackFrame',
'java.lang.StackWalker$Option'
]
}
4 changes: 2 additions & 2 deletions gradle/root/coverage.gradle → gradle/coverage.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
allprojects { Project project ->
rootProject.subprojects { Project project ->
plugins.withId("java") {
project.apply plugin: "jacoco"
project.jacoco {
Expand All @@ -9,7 +9,7 @@ allprojects { Project project ->

def mockitoCoverage = tasks.register("mockitoCoverage", JacocoReport) { mockitoCoverage ->
group = LifecycleBasePlugin.VERIFICATION_GROUP
allprojects { Project currentProject ->
rootProject.subprojects { Project currentProject ->
plugins.withId("jacoco") {
plugins.withId("java") {
// JacocoReport.sourceSets() appends both sourceDirectories and classDirectories.
Expand Down
6 changes: 3 additions & 3 deletions gradle/mockito-core/javadoc.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//It seems the gradle javadoc task works file by file and as such disable some features of javadoc tool
//such as link to packages, https://groups.google.com/d/msg/gradle-dev/R83dy_6PHMc/bgw0cUTMFAAJ
def javaDocsDir = 'gradle/java-docs'
def jdkDocsDir = "$rootDir/gradle/java-docs"

tasks.named("javadoc", Javadoc) {
inputs.dir("src/main/javadoc")
Expand All @@ -15,7 +15,7 @@ tasks.named("javadoc", Javadoc) {
title = "Mockito ${project.version} API"

options.addBooleanOption('-allow-script-in-comments', true)
options.addFileOption('-add-stylesheet', rootProject.file("src/main/javadoc/mockito-theme.css"))
options.addFileOption('-add-stylesheet', project(":mockito-core").file("src/main/javadoc/mockito-theme.css"))
options.addStringOption('Xwerror', '-quiet')
options.bottom("""
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/obsidian.min.css">
Expand All @@ -28,7 +28,7 @@ tasks.named("javadoc", Javadoc) {
options.encoding = 'UTF-8'
options.group("Main package", ["org.mockito"])
options.links('https://junit.org/junit4/javadoc/4.13.2/')
options.linksOffline('https://docs.oracle.com/en/java/javase/11/docs/api/', javaDocsDir)
options.linksOffline('https://docs.oracle.com/en/java/javase/11/docs/api/', jdkDocsDir)
options.memberLevel = JavadocMemberLevel.PROTECTED
options.outputLevel = JavadocOutputLevel.QUIET
options.splitIndex = true
Expand Down
8 changes: 4 additions & 4 deletions gradle/mockito-junit-jupiter/javadoc.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
//It seems the gradle javadoc task works file by file and as such disable some features of javadoc tool
//such as link to packages, https://groups.google.com/d/msg/gradle-dev/R83dy_6PHMc/bgw0cUTMFAAJ
def javaDocsDir = "$rootDir/gradle/java-docs"
def jdkDocsDir = "$rootDir/gradle/java-docs"

tasks.named("javadoc", Javadoc) {
inputs.dir("$rootDir/src/main/javadoc")
inputs.dir(project(":mockito-core").file("src/main/javadoc"))

description "Creates javadoc html for Mockito JUnit Jupiter."

Expand All @@ -15,7 +15,7 @@ tasks.named("javadoc", Javadoc) {
title = "Mockito JUnit Jupiter ${project.version} API"

options.addBooleanOption('-allow-script-in-comments', true)
options.addFileOption('-add-stylesheet', rootProject.file("$rootDir/src/main/javadoc/mockito-theme.css"))
options.addFileOption('-add-stylesheet', project(":mockito-core").file("src/main/javadoc/mockito-theme.css"))
options.addStringOption('Xwerror', '-quiet')
options.bottom("""
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/obsidian.min.css">
Expand All @@ -27,7 +27,7 @@ tasks.named("javadoc", Javadoc) {
options.docTitle = """<h1>Mockito JUnit Jupiter ${project.version} API.</h1>"""
options.encoding = 'UTF-8'
options.group("Main package", ["org.mockito.junit.jupiter"])
options.linksOffline('https://docs.oracle.com/en/java/javase/11/docs/api/', javaDocsDir)
options.linksOffline('https://docs.oracle.com/en/java/javase/11/docs/api/', jdkDocsDir)
options.memberLevel = JavadocMemberLevel.PROTECTED
options.outputLevel = JavadocOutputLevel.QUIET
options.splitIndex = true
Expand Down
2 changes: 1 addition & 1 deletion mockito-bom/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ apply from: "$rootDir/gradle/java-publication.gradle"

dependencies {
constraints {
api(project.rootProject)
api(project(":mockito-core"))

project(":mockito-extensions").subprojects.forEach {
api(it)
Expand Down
54 changes: 54 additions & 0 deletions mockito-core/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

plugins {
id 'base'
id 'biz.aQute.bnd.builder' version '7.0.0'
id 'ru.vyarus.animalsniffer' version '1.7.1'
}

description = 'Mockito mock objects library core API and implementation'
base.archivesName = 'mockito-core'


apply from: "$rootDir/gradle/java-library.gradle"
apply from: "$rootDir/gradle/coverage.gradle"
apply from: "$rootDir/gradle/mockito-core/inline-mock.gradle"
apply from: "$rootDir/gradle/mockito-core/osgi.gradle"
apply from: "$rootDir/gradle/mockito-core/javadoc.gradle"
apply from: "$rootDir/gradle/mockito-core/testing.gradle"

configurations {
testUtil //TODO move to separate project
// Putting 'provided' dependencies on test compile and runtime classpath.
testCompileOnly.extendsFrom(compileOnly)
testRuntimeOnly.extendsFrom(compileOnly)
}

dependencies {
api libs.bytebuddy, libs.bytebuddy.agent

compileOnly libs.junit4, libs.hamcrest, libs.opentest4j
implementation libs.objenesis

testImplementation libs.assertj
testImplementation libs.junit.jupiter.api
testImplementation libs.junit.jupiter.params

testUtil sourceSets.test.output

signature 'org.codehaus.mojo.signature:java18:1.0@signature'
signature 'net.sf.androidscents.signature:android-api-level-26:8.0.0_r2@signature'
}

animalsniffer {
sourceSets = [sourceSets.main]
annotation = 'org.mockito.internal.SuppressSignatureCheck'
// See please https://github.com/mojohaus/animal-sniffer/issues/172
ignore += [
'java.lang.instrument.Instrumentation',
'java.lang.invoke.MethodHandle',
'java.lang.invoke.MethodHandles$Lookup',
'java.lang.StackWalker',
'java.lang.StackWalker$StackFrame',
'java.lang.StackWalker$Option'
]
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit ab32438

Please sign in to comment.