Skip to content

Commit

Permalink
Prepare build and doc on core repo
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephane Maldini committed Nov 11, 2015
1 parent 3fc9c1c commit f3bd908
Show file tree
Hide file tree
Showing 98 changed files with 29,197 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.DS_Store
bin
build
.classpath
.eclipse
.gradle
.project
.settings
out
*.log
*.i*
*.java.hsp
*.index
*.data
classes
exportToHtml
186 changes: 186 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
/*
* Copyright (c) 2011-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


description = 'Non-Blocking Reactive Foundation for the JVM'
group = 'io.projectreactor'

ext {
gradleVersion = '2.8'
gradleScriptDir = "${rootProject.projectDir}/gradle"

// Languages
groovyVersion = '2.4.1'

// Logging
slf4jVersion = '1.7.12'
logbackVersion = '1.1.2'

// Libraries
jacksonDatabindVersion = '2.5.1'
jsonPathVersion = '2.0.0'
rxJavaVersion = '1.0.14'

// Testing
spockVersion = '1.0-groovy-2.4'

javadocLinks = ["http://docs.oracle.com/javase/7/docs/api/",
"http://docs.oracle.com/javaee/6/api/",
"http://www.reactive-streams.org/reactive-streams-tck-1.0.0-javadoc/"] as String[]


bundleImportPackages = ['org.slf4j;version="[1.5.4,2)"', '*']

}

buildscript {
repositories {
maven { url "http://repo.spring.io/plugins-release" }
}
dependencies {
classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.7',
'io.spring.gradle:spring-io-plugin:0.0.4.RELEASE',
'com.github.jengelman.gradle.plugins:shadow:1.2.0'
}
}

apply from: "$gradleScriptDir/setup.gradle"
apply from: "$gradleScriptDir/doc.gradle"
apply plugin: 'propdeps'
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'osgi'
apply from: "${gradleScriptDir}/ide.gradle"

if (project.hasProperty('platformVersion')) {
apply plugin: 'spring-io'

dependencyManagement {
springIoTestRuntime {
imports {
mavenBom "io.spring.platform:platform-bom:$platformVersion"
}
}
}
}

[compileJava, compileTestJava]*.options*.compilerArgs = ["-Xlint:varargs",
"-Xlint:cast",
"-Xlint:classfile",
"-Xlint:dep-ann",
"-Xlint:divzero",
"-Xlint:empty",
"-Xlint:finally",
"-Xlint:overrides",
"-Xlint:path",
"-Xlint:processing",
"-Xlint:static",
"-Xlint:try",
"-Xlint:deprecation",
"-Xlint:unchecked",
"-Xlint:-serial", // intentionally disabled
"-Xlint:-options", // intentionally disabled
"-Xlint:-fallthrough", // intentionally disabled
"-Xlint:-rawtypes" // TODO enable and fix warnings
]

compileJava {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}

compileTestJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}

if (JavaVersion.current().isJava8Compatible()) {
compileTestJava.options.compilerArgs += "-parameters"
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
project.tasks.withType(Test).all {
systemProperty("java.awt.headless", "true")
systemProperty("reactor.trace.cancel", "true")
systemProperty("reactor.trace.nocapacity", "true")
systemProperty("testGroups", project.properties.get("testGroups"))
scanForTestClasses = false
include '**/*Tests.*'
include '**/*Spec.*'
exclude '**/*Abstract*.*'
}

configure(rootProject) {
repositories {
mavenLocal()
maven { url 'http://repo.spring.io/libs-milestone' }
maven { url 'http://repo.spring.io/libs-snapshot' }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
jcenter()
mavenCentral()

}

configurations {
jsr166backport
testCompile.extendsFrom jsr166backport
compile.extendsFrom jsr166backport
}

// dependencies that are common across all java projects
dependencies {
// Reactive Streams
compile "org.reactivestreams:reactive-streams:1.0.0"
testCompile "org.reactivestreams:reactive-streams-tck:1.0.0"

// JSR-305 annotations
optional "com.google.code.findbugs:jsr305:3.0.0"

//Optional Logging Operator
optional "org.slf4j:slf4j-api:$slf4jVersion"

//Optional RxJava 1 Converter
optional "io.reactivex:rxjava:$rxJavaVersion"

//Optional JDK 9 Converter
jsr166backport "io.projectreactor:jsr166:1.0.0.BUILD-SNAPSHOT"

testRuntime "ch.qos.logback:logback-classic:$logbackVersion"
// Testing
testCompile "org.codehaus.groovy:groovy:$groovyVersion",
"org.spockframework:spock-core:$spockVersion",
"org.hamcrest:hamcrest-library:1.3",
"org.testng:testng:6.8.5"
}

/*task testNG(type: Test) {
useTestNG()
}*/

sourceSets.test.resources.srcDirs = ["src/test/resources", "src/test/java"]

test {
jvmArgs = ["-Xbootclasspath/p:" + configurations.jsr166backport.asPath]
}


jar {
manifest {
instruction 'Import-Package', bundleImportPackages.join(',')
}
}
}
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
version=2.1.0.BUILD-SNAPSHOT
105 changes: 105 additions & 0 deletions gradle/doc.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/*
* Copyright (c) 2011-2016 Pivotal Software Inc, All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

buildscript {
repositories {
maven { url "http://repo.spring.io/plugins-snapshot" }
jcenter()
}
dependencies {
classpath 'net.sf.docbook:docbook-xsl:1.78.1:resources@zip'
classpath 'io.spring.gradle:docbook-reference-plugin:0.3.0'
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.2'
//classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.6' // asciidoctor pdf still has issues with callouts, etc. Still relying on docbook+pdf for now
}
}


configure(rootProject) {
task api(type: Javadoc) {
group = "Reactor Core Javadoc"
apply plugin: "java"

description = "Generates aggregated Javadoc API documentation."
title = "${rootProject.description} ${version} API"

if (JavaVersion.current().isJava8Compatible()) {
compileTestJava.options.compilerArgs += "-parameters"
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}

dependsOn {
subprojects.collect {
it.tasks.getByName("jar")
}
}
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = rootProject.description
options.overview = "src/api/overview.html"
options.stylesheetFile = file("src/api/stylesheet.css")
options.links(project.ext.javadocLinks)

source subprojects.collect { project ->
project.sourceSets.main.allJava
}

maxMemory = "1024m"
destinationDir = new File(buildDir, "api")

doFirst {
classpath = files(subprojects.collect { it.sourceSets.main.compileClasspath })
}
}

apply plugin: org.asciidoctor.gradle.AsciidoctorPlugin

asciidoctor {
sources {
include "index.asciidoc"
}
outputDir file("$buildDir/html")
backends = ['html5', 'docbook']
logDocuments = true
options = [
doctype: 'book'
]
attributes docinfo: '',
toc2: '',
'compat-mode': '',
imagesdir: '',
stylesdir: "stylesheets/",
stylesheet: 'golo.css',
appversion: "$version",
'source-highlighter': 'coderay'

}

apply plugin: DocbookReferencePlugin

reference {
sourceFileName = 'index.xml'
sourceDir = file("$buildDir/html/docbook")
pdfFilename = 'reactor-core-reference.pdf'
expandPlaceholders = ''
}

reference.dependsOn asciidoctor

}

Loading

0 comments on commit f3bd908

Please sign in to comment.