mirror of
https://github.com/corda/corda.git
synced 2024-12-21 22:07:55 +00:00
1e12aebe0a
* Skeleton plugin. * Implement Gradle api-scanner plugin, and apply it. * Generate API documentation for any jar without a classifier. * Fix usage of smokeTests classifier. * Tweak Gradle API usage. * Upgrade to fast-classpath-scanner 2.7.0 * Include interfaces and more modifiers in the class description. * Allow system classes to be supertypes and implemented interfaces. * Make API Scanner plugin configuration tweakable via build.gradle. * Add a miserable amount of unit testing. * Sort methods and fields using their natural comparators. Way easier! * Add README for api-scanner plugin. * Add @OutputFiles to ScanApiTask. * Rename ScanApiTask to ScanApi. * Allow the ScanApi task to be disabled. * WIP: Create a top-level GenerateApi task to collate the ScanApi output. * Exclude package-private classes, as well as bridge/synthetic methods. * Replace "End of Class" delimiter with '##'. * Don't scan modules whose API is still "in flux". * Include constructors in the API definitions. * Finish implementation of GenerateApi task. * Update README to include GenerateApi task. * Filter out Kotlin's "internal" methods. * Assign "fatjar" classifier to the fat jar artifact. * Enhance README for GenerateApi. * Explain effect of api-scanner plugin, and link to Corda's API strategy. * Tweak README * Exclude synthetic Kotlin classes by analysing @Metadata. * Allow us to exclude some classes explicitly from the API.
98 lines
3.0 KiB
Groovy
98 lines
3.0 KiB
Groovy
apply plugin: 'kotlin'
|
|
apply plugin: 'net.corda.plugins.quasar-utils'
|
|
apply plugin: 'net.corda.plugins.publish-utils'
|
|
apply plugin: 'net.corda.plugins.api-scanner'
|
|
apply plugin: 'com.jfrog.artifactory'
|
|
|
|
description 'Corda client RPC modules'
|
|
|
|
//noinspection GroovyAssignabilityCheck
|
|
configurations {
|
|
integrationTestCompile.extendsFrom testCompile
|
|
integrationTestRuntime.extendsFrom testRuntime
|
|
|
|
smokeTestCompile.extendsFrom compile
|
|
smokeTestRuntime.extendsFrom runtime
|
|
}
|
|
|
|
sourceSets {
|
|
integrationTest {
|
|
kotlin {
|
|
compileClasspath += main.output + test.output
|
|
runtimeClasspath += main.output + test.output
|
|
srcDir file('src/integration-test/kotlin')
|
|
}
|
|
java {
|
|
compileClasspath += main.output + test.output
|
|
runtimeClasspath += main.output + test.output
|
|
srcDir file('src/integration-test/java')
|
|
}
|
|
}
|
|
smokeTest {
|
|
kotlin {
|
|
// We must NOT have any Node code on the classpath, so do NOT
|
|
// include the test or integrationTest dependencies here.
|
|
compileClasspath += main.output
|
|
runtimeClasspath += main.output
|
|
srcDir file('src/smoke-test/kotlin')
|
|
}
|
|
java {
|
|
compileClasspath += main.output
|
|
runtimeClasspath += main.output
|
|
srcDir file('src/smoke-test/java')
|
|
}
|
|
}
|
|
}
|
|
|
|
processSmokeTestResources {
|
|
from(project(':node:capsule').tasks['buildCordaJAR']) {
|
|
rename 'corda-(.*)', 'corda.jar'
|
|
}
|
|
from(project(':finance').tasks['jar']) {
|
|
rename 'finance-(.*)', 'finance.jar'
|
|
}
|
|
}
|
|
|
|
// To find potential version conflicts, run "gradle htmlDependencyReport" and then look in
|
|
// build/reports/project/dependencies/index.html for green highlighted parts of the tree.
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compile project(':node-api')
|
|
|
|
// Unit testing helpers.
|
|
testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
|
|
testCompile "junit:junit:$junit_version"
|
|
testCompile "org.assertj:assertj-core:${assertj_version}"
|
|
|
|
testCompile project(':node-driver')
|
|
testCompile project(':client:mock')
|
|
|
|
// Smoke tests do NOT have any Node code on the classpath!
|
|
smokeTestCompile project(':smoke-test-utils')
|
|
smokeTestCompile project(':finance')
|
|
smokeTestCompile "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version"
|
|
smokeTestCompile "org.apache.logging.log4j:log4j-core:$log4j_version"
|
|
smokeTestCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
|
|
smokeTestCompile "org.assertj:assertj-core:${assertj_version}"
|
|
smokeTestCompile "junit:junit:$junit_version"
|
|
}
|
|
|
|
task integrationTest(type: Test) {
|
|
testClassesDirs = sourceSets.integrationTest.output.classesDirs
|
|
classpath = sourceSets.integrationTest.runtimeClasspath
|
|
}
|
|
|
|
task smokeTest(type: Test) {
|
|
testClassesDirs = sourceSets.smokeTest.output.classesDirs
|
|
classpath = sourceSets.smokeTest.runtimeClasspath
|
|
}
|
|
|
|
jar {
|
|
baseName 'corda-rpc'
|
|
}
|
|
|
|
publish {
|
|
name jar.baseName
|
|
}
|