Skip to content

Commit

Permalink
Merge branch 'master' of git://github.com/springfox/springfox into fe…
Browse files Browse the repository at this point in the history
…ature/webflux

Conflicts:
	.version
	gradle/dependencies.gradle
	gradle/wrapper/gradle-wrapper.properties
	springfox-spi/src/main/java/springfox/documentation/spi/service/contexts/Defaults.java
	springfox-spi/src/main/java/springfox/documentation/spi/service/contexts/Orderings.java
	springfox-spring-web/src/main/java/springfox/documentation/spring/web/plugins/CombinedRequestHandler.java
	springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/scanners/ApiListingScannerSpec.groovy
	springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DefaultRequestHandlerCombinerSpec.groovy
	springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/PathAndParametersEquivalenceSpec.groovy
	springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/readers/ApiModelReaderSpec.groovy
	springfox-swagger-ui/build.gradle
	springfox-swagger2/build.gradle
	springfox-swagger2/src/main/java/springfox/documentation/swagger2/annotations/EnableSwagger2WebMvc.java
	springfox-swagger2/src/main/java/springfox/documentation/swagger2/configuration/Swagger2DocumentationWebMvcConfiguration.java
	swagger-contract-tests/src/test/groovy/springfox/test/contract/swaggertests/Swagger2TestConfig.groovy
  • Loading branch information
ligasgr committed Jul 30, 2018
2 parents 0344724 + ac4c54e commit ea1f243
Show file tree
Hide file tree
Showing 581 changed files with 38,544 additions and 23,362 deletions.
61 changes: 61 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
version: 2
jobs:
build:
working_directory: ~/code
docker:
- image: circleci/openjdk:8-jdk-node-browsers
environment:
JVM_OPTIONS: -Xmx1024M -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512M
GRADLE_OPTS: '-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx3840m -XX:+HeapDumpOnOutOfMemoryError"'
steps:
- checkout
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "gradle/dependencies.gradle" }}
# - run:
# name: Chmod permissions #if permission for Gradlew Dependencies fail, use this.
# command: sudo chmod +x ./gradlew
- run:
name: Download Dependencies
command: ./gradlew dependencies
- run:
name: pre-dependencies
command: npm install codecov
- save_cache:
paths:
- ~/node_modules
- ~/.m2
key: jars-{{ checksum "build.gradle" }}-{{ checksum "gradle/dependencies.gradle" }}
- run:
name: Run Tests
command: ./gradlew clean check codeCoverageReport --no-daemon
no_output_timeout: 900s
environment:
_JAVA_OPTIONS: -Xmx1024M -XX:ReservedCodeCacheSize=512M
- run:
name: Post test
command: ./node_modules/.bin/codecov
- run:
name: Save test results
command: |
mkdir -p ~/junit/
mkdir -p ~/reports/
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \;
cp -R swagger-contract-tests/build/reports/tests ~/reports
when: always
- store_test_results:
path: ~/junit
- store_test_results:
path: ~/reports
- store_artifacts:
path: ~/junit
- store_artifacts:
path: ~/reports
- deploy:
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./gradlew publishSnapshot -x check
./gradlew publishDocs -i
fi
notify:
webhooks:
- url: https://webhooks.gitter.im/e/b30a7db820817acfc6d8
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ generated-src
.env
out/
*.hprof
node_modules/
package-lock.json
2 changes: 1 addition & 1 deletion .java-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.7
1.8
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.9.0-SNAPSHOT
3.0.0-SNAPSHOT
31 changes: 12 additions & 19 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ buildscript {
classpath "org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.2"
classpath "com.github.adrianbk:gradle-travisci-trigger-plugin:1.0.0"
classpath 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.2'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0"
classpath "org.asciidoctor:asciidoctor-gradle-plugin:1.5.3"
classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0'
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.2"
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.7.4"
classpath "org.asciidoctor:asciidoctor-gradle-plugin:1.5.7"
classpath "org.ajoberstar:gradle-git:1.7.2"
}
}
Expand All @@ -27,7 +28,7 @@ apply plugin: 'springfox-multi-release'

ext {
apiKey = System.getenv('GIT_HUB_API_KEY')
jdkVersion = 1.6
jdkVersion = 1.8
}

allprojects {
Expand All @@ -43,6 +44,13 @@ subprojects {
javadoc {
options.encoding = 'UTF-8'
}

tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.deprecation = true
options.compilerArgs += ["-Xlint:unchecked", "-Xlint:deprecation", "-parameters"]
}

//Commented PMD and Findbugs as its taking too much time for very little value
//Perhaps run every 20 CI builds (mod of ci build number)
// apply from: "$rootDir/gradle/code-quality.gradle"
Expand Down Expand Up @@ -73,26 +81,11 @@ subprojects {
packageName "springfox"
}

compileJava.options.encoding = 'UTF-8'

sourceCompatibility = jdkVersion
targetCompatibility = jdkVersion
group = 'io.springfox'
version = project.rootProject.version

jar {
manifest {
attributes(
'Implementation-Title': "${project.name}",
'Implementation-Version': version.toString(),
'Created-By': System.getProperty('java.version') + ' (' + System.getProperty('java.vendor') + ')',
'Built-With': "gradle-${project.getGradle().getGradleVersion()}, groovy-${GroovySystem.getVersion()}",
'Build-Time': "${new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")}",
'Built-By': System.getProperty('user.name'),
'Built-On': "${InetAddress.localHost.hostName}/${InetAddress.localHost.hostAddress}"
)
}
}
task allDeps(type: DependencyReportTask) {}

jacoco {
Expand Down
1 change: 0 additions & 1 deletion buildSrc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ repositories {
dependencies {
compile gradleApi()
compile localGroovy() //Gradle 2.3 -> Groovy 2.3.9
compile "com.google.guava:guava:20.0"
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4-rc-4@jar'
testCompile 'junit:junit:4.12'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,14 @@ class BintrayCredentials {
}

String getUsername() {
return project.hasProperty('bintrayUsername') ? project.property('bintrayUsername') : 'admin'
project.hasProperty('bintrayUsername') ?
project.property('bintrayUsername') :
System.getenv('BINTRAY_USER_NAME')
}

String getPassword() {
return project.hasProperty('bintrayPassword') ? project.property('bintrayPassword') : 'password'
project.hasProperty('bintrayApiKey') ?
project.property('bintrayApiKey') :
System.getenv('BINTRAY_PASSWORD')
}
}
18 changes: 9 additions & 9 deletions buildSrc/src/main/groovy/springfox/gradlebuild/BuildInfo.groovy
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package springfox.gradlebuild

import com.google.common.base.MoreObjects
import springfox.gradlebuild.version.ReleaseType
import springfox.gradlebuild.version.SemanticVersion
import springfox.gradlebuild.version.VersioningStrategy
Expand Down Expand Up @@ -66,13 +65,14 @@ class BuildInfo {

@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("releaseVersion", currentVersion)
.add("buildVersion", buildVersion)
.add("nextVersion", nextVersion)
.add("releaseType", releaseType)
.add("releaseTag", releaseTag)
.add("dryRun", dryRun)
.toString();
return new StringBuffer(this.getClass().getSimpleName())
.append("{")
.append("releaseVersion=").append(currentVersion).append(", ")
.append("buildVersion=").append(buildVersion).append(", ")
.append("nextVersion=").append(nextVersion).append(", ")
.append("releaseType=").append(releaseType).append(", ")
.append("releaseTag=").append(releaseTag).append(", ")
.append("dryRun=").append(dryRun)
.append("}").toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class BuildInfoFactory {
def isReleaseBuild = project.gradle.startParameter.taskNames.contains("release")

SemanticVersion buildVersion = versioningStrategy.buildVersion(releaseType, isReleaseBuild)
project.logger.info("current verison: ${versioningStrategy.current()}, " +
project.logger.lifecycle("[RELEASE] current verison: ${versioningStrategy.current()}, " +
"build version: $buildVersion, dryRun: $dryRun, releaseBuild: $isReleaseBuild")
new BuildInfo(
versioningStrategy.current(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ package springfox.gradlebuild.plugins
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import springfox.gradlebuild.BintrayCredentials
import springfox.gradlebuild.BuildInfo
import springfox.gradlebuild.BuildInfoFactory
import springfox.gradlebuild.tasks.*
import springfox.gradlebuild.tasks.BumpAndTagTask
import springfox.gradlebuild.tasks.CheckCleanWorkspaceTask
import springfox.gradlebuild.tasks.CheckGitBranchTask
import springfox.gradlebuild.tasks.IntermediaryTask
import springfox.gradlebuild.tasks.CheckRequiredSecretsTask
import springfox.gradlebuild.tasks.ReleaseTask
import springfox.gradlebuild.version.FileVersionStrategy
import springfox.gradlebuild.version.ReleaseType
import springfox.gradlebuild.version.VersioningStrategy
Expand All @@ -34,16 +38,16 @@ import springfox.gradlebuild.version.VersioningStrategy
* https://www.youtube.com/watch?v=Y6SVoXFsw7I ( GradleSummit2014 - Releasing With Gradle - René Groeschke)
*
*/
public class MultiProjectReleasePlugin implements Plugin<Project> {
class MultiProjectReleasePlugin implements Plugin<Project> {

ReleaseTask releaseTask
BumpAndTagTask bumpAndTagTask
CheckCleanWorkspaceTask checkCleanWorkspaceTask
SnapshotTask snapshotTask
BintrayCredentialsCheckTask credentialCheck
CheckRequiredSecretsTask credentialCheck
CheckGitBranchTask checkGitBranchTask
Task showPublishInfo
VersioningStrategy versioningStrategy
IntermediaryTask checkWorkspaceTask

@Override
void apply(Project project) {
Expand All @@ -53,107 +57,64 @@ public class MultiProjectReleasePlugin implements Plugin<Project> {
BuildInfo versioningInfo = createBuildInfo(project, versioningStrategy)
releaseTask = project.task(ReleaseTask.TASK_NAME, type: ReleaseTask)
bumpAndTagTask = project.task(BumpAndTagTask.TASK_NAME, type: BumpAndTagTask)
snapshotTask = project.task(SnapshotTask.TASK_NAME, type: SnapshotTask)
credentialCheck = project.task(BintrayCredentialsCheckTask.TASK_NAME, type: BintrayCredentialsCheckTask)
credentialCheck = project.task(CheckRequiredSecretsTask.TASK_NAME, type: CheckRequiredSecretsTask)
checkCleanWorkspaceTask = project.task(CheckCleanWorkspaceTask.TASK_NAME, type: CheckCleanWorkspaceTask)
checkGitBranchTask = project.task(CheckGitBranchTask.TASK_NAME, type: CheckGitBranchTask)
checkWorkspaceTask = project.task('checkWorkspace', type: IntermediaryTask)

showPublishInfo = project.task('showPublishInfo') {
group = 'Help'
description = 'Show project publishing information'
}

configureVersionAndPublications(project, versioningInfo)
configureVersion(project, versioningInfo)
configureGlobalTasks()
configureSnapshotTaskGraph(project)
configureReleaseTaskGraph(project)
project.tasks.showPublishInfo << {
project.logger.info "======= Project version: $project.version, $versioningInfo"
project.logger.lifecycle "[RELEASE] Project version: $project.version, $versioningInfo"
}
}

def configureGlobalTasks() {
checkWorkspaceTask.dependsOn showPublishInfo
checkWorkspaceTask.dependsOn checkCleanWorkspaceTask
checkWorkspaceTask.dependsOn credentialCheck
}

def configureSnapshotTaskGraph(Project project) {
def iSnapshotCheckTask = project.task('iSnapshotCheck', type: IntermediaryTask)
iSnapshotCheckTask.dependsOn showPublishInfo
def publishSnapshot = project.task('publishSnapshot', type: IntermediaryTask, group: "release")

publishSnapshot.dependsOn checkWorkspaceTask

project.afterEvaluate { evaluatedProject ->
def javaCheckTasks = evaluatedProject.getTasksByName('check', true)
iSnapshotCheckTask.dependsOn javaCheckTasks

evaluatedProject.subprojects.each { p ->
p.tasks.findByPath('publish').each { t ->
snapshotTask.dependsOn(t)
}
}
def artifactoryPublishTasks = evaluatedProject.getTasksByName('artifactoryPublish', true)
publishSnapshot.dependsOn javaCheckTasks
publishSnapshot.dependsOn artifactoryPublishTasks
}

snapshotTask.dependsOn iSnapshotCheckTask
snapshotTask.dependsOn checkCleanWorkspaceTask
snapshotTask.dependsOn credentialCheck
iSnapshotCheckTask.mustRunAfter checkCleanWorkspaceTask
iSnapshotCheckTask.mustRunAfter credentialCheck

}

def configureReleaseTaskGraph(Project project) {
def iPublishTask = project.task('iPublishTask', type: IntermediaryTask)
def iCheckTask = project.task('iCheckTask', type: IntermediaryTask)
def iWorkspaceTask = project.task('iWorkspaceTask', type: IntermediaryTask)
def publishTask = project.task('publishRelease', type: IntermediaryTask)

publishTask.dependsOn checkWorkspaceTask
publishTask.dependsOn checkGitBranchTask

project.afterEvaluate { evaluatedProject ->
def javaCheckTasks = evaluatedProject.getTasksByName('check', true)
iCheckTask.dependsOn javaCheckTasks

evaluatedProject.subprojects.each { p ->
p.tasks.findByPath('bintrayUpload').each { t ->
iPublishTask.dependsOn(t)
}
}
def bintrayUploadTasks = evaluatedProject.getTasksByName('bintrayUpload', true)
publishTask.dependsOn javaCheckTasks
publishTask.dependsOn bintrayUploadTasks
}

iWorkspaceTask.dependsOn checkGitBranchTask
iWorkspaceTask.dependsOn checkCleanWorkspaceTask

iCheckTask.dependsOn iWorkspaceTask
iCheckTask.dependsOn showPublishInfo

iPublishTask.dependsOn iCheckTask

bumpAndTagTask.dependsOn iPublishTask
bumpAndTagTask.dependsOn publishTask
releaseTask.dependsOn bumpAndTagTask
}

def configureVersionAndPublications(Project project, BuildInfo buildInfo) {
def configureVersion(Project project, BuildInfo buildInfo) {
project.version = "${buildInfo.buildVersion.asText()}"
project.ext.buildInfo = buildInfo

configurePublications(project, buildInfo)
}

def configurePublications(Project project, BuildInfo buildInfo) {
def isSnapshotBuild = isSnapshotBuild(project)
def type = isSnapshotBuild ? 'snapshot' : 'release'
def login = new BintrayCredentials(project)
def artifactRepoBase = 'http://oss.jfrog.org/artifactory'
def repoPrefix = 'oss'
project.ext {
bintrayCredentials = login
releaseRepos = {
//Only snapshots - bintray plugin takes care of non-snapshot releases
if (isSnapshotBuild) {
project.logger.info("Setting up maven repo for snapshot build: $buildInfo")
maven {
name 'jfrogOss'
url "${artifactRepoBase}/${repoPrefix}-${type}-local"
credentials {
username = "${login.username}"
password = "${login.password}"
}
}
}
}
}
}

static boolean isSnapshotBuild(Project project) {
project.gradle.startParameter.taskNames.contains("snapshot")
}

static def createBuildInfo(Project project, VersioningStrategy versioningStrategy) {
Expand All @@ -169,7 +130,7 @@ public class MultiProjectReleasePlugin implements Plugin<Project> {
project.hasProperty('buildNumberFormat') ? project.property('buildNumberFormat') : '-SNAPSHOT'
}

public static boolean dryRun(Project project) {
static boolean dryRun(Project project) {
project.hasProperty('dryRun') ? Boolean.valueOf(project.property('dryRun')) : false
}

Expand Down
Loading

0 comments on commit ea1f243

Please sign in to comment.