diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 00000000..475fae8b
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,38 @@
+name: PR Build
+
+on: [pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: [8, 11, 15]
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ - uses: actions/cache@v2
+ id: gradle-cache
+ with:
+ path: |
+ ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ - uses: actions/cache@v2
+ id: gradle-wrapper-cache
+ with:
+ path: |
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradlewrapper-${{ hashFiles('gradle/wrapper/*') }}
+ - name: Build
+ run: ./gradlew build
+ validation:
+ name: "Gradle Validation"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: gradle/wrapper-validation-action@v1
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 00000000..fb341f35
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,47 @@
+name: Release
+
+on:
+ push:
+ tags:
+ - v[0-9]+.[0-9]+.[0-9]+
+ - v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 8
+ - uses: actions/cache@v2
+ id: gradle-cache
+ with:
+ path: |
+ ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ - uses: actions/cache@v2
+ id: gradle-wrapper-cache
+ with:
+ path: |
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradlewrapper-${{ hashFiles('gradle/wrapper/*') }}
+ - name: Build candidate
+ if: contains(github.ref, '-rc.')
+ run: ./gradlew --info --stacktrace -Prelease.useLastTag=true candidate
+ env:
+ NETFLIX_OSS_SIGNING_KEY: ${{ secrets.ORG_SIGNING_KEY }}
+ NETFLIX_OSS_SIGNING_PASSWORD: ${{ secrets.ORG_SIGNING_PASSWORD }}
+ NETFLIX_OSS_REPO_USERNAME: ${{ secrets.ORG_NETFLIXOSS_USERNAME }}
+ NETFLIX_OSS_REPO_PASSWORD: ${{ secrets.ORG_NETFLIXOSS_PASSWORD }}
+ - name: Build release
+ if: (!contains(github.ref, '-rc.'))
+ run: ./gradlew --info -Prelease.useLastTag=true final
+ env:
+ NETFLIX_OSS_SONATYPE_USERNAME: ${{ secrets.ORG_SONATYPE_USERNAME }}
+ NETFLIX_OSS_SONATYPE_PASSWORD: ${{ secrets.ORG_SONATYPE_PASSWORD }}
+ NETFLIX_OSS_SIGNING_KEY: ${{ secrets.ORG_SIGNING_KEY }}
+ NETFLIX_OSS_SIGNING_PASSWORD: ${{ secrets.ORG_SIGNING_PASSWORD }}
+ NETFLIX_OSS_REPO_USERNAME: ${{ secrets.ORG_NETFLIXOSS_USERNAME }}
+ NETFLIX_OSS_REPO_PASSWORD: ${{ secrets.ORG_NETFLIXOSS_PASSWORD }}
diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml
new file mode 100644
index 00000000..0e26f5f4
--- /dev/null
+++ b/.github/workflows/snapshot.yml
@@ -0,0 +1,37 @@
+name: Snapshot
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Set up JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 8
+ - uses: actions/cache@v2
+ id: gradle-cache
+ with:
+ path: |
+ ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ - uses: actions/cache@v2
+ id: gradle-wrapper-cache
+ with:
+ path: |
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradlewrapper-${{ hashFiles('gradle/wrapper/*') }}
+ - name: Build
+ run: ./gradlew build snapshot
+ env:
+ NETFLIX_OSS_SIGNING_KEY: ${{ secrets.ORG_SIGNING_KEY }}
+ NETFLIX_OSS_SIGNING_PASSWORD: ${{ secrets.ORG_SIGNING_PASSWORD }}
+ NETFLIX_OSS_REPO_USERNAME: ${{ secrets.ORG_NETFLIXOSS_USERNAME }}
+ NETFLIX_OSS_REPO_PASSWORD: ${{ secrets.ORG_NETFLIXOSS_PASSWORD }}
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index d759951c..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-language: java
-matrix:
- include:
- - jdk: openjdk8
- env: GRADLE_PUBLISH=true
- - jdk: openjdk11
- env: GRADLE_PUBLISH=false
- - jdk: openjdk12
- env: GRADLE_PUBLISH=false
-install: ./installViaTravis.sh
-script: ./buildViaTravis.sh
-env:
- global:
- - secure: Mtyxi0Jq5XSQVjjBFj1Iqh96RjT0kH4TD/Sh/efdxRjrMXD8si74pzeyKZnJEVKRkvZ68QADJhnngi7S7nVzwhYSlCHRgPpihf23yaPTrZQwvbHENB+s5gjaCerRs04QZn5Wi2Pxy6+C/kT85DgCNEzgW1Bi4w8KtAnCBHjepHc=
- - secure: EhJCrVRmKsH5EwjKrne7/Bwy239eTrRJUxnkS9CXwvckrsxmecebE9vgBAU6s5PUxsCMJ/HeOnNJ/MlcS3FoXcCk16w505UtjqOojLy+2KV9ceuuO8oKZ8p1MXkJVNKTn18VmwmsnDKOXNQS4AeqpPZiwBwm4giZnKAgv1fcEYQ=
- - secure: j/rX8B4PMI3b9yADsWi268NetrWXjzIaf+Ms/gr0YaIlIx+0XI7Kpg9c3AOh5vvfL2qecwMXqIxWvG6IUmcFlHLD+/9nvEord+MkMLQ44t4bH/Hl5TXsWAM8Of/DWQFWwq/Z/YIHOvSF5HCFH1m3WbPjjM1R4mQSmge9Ay6hw3Y=
- - secure: TuRke/gu1FGd2oVHv9vRjGSrVYAhvp7LH9l3OTjoQDKHLGucDR2QJF72sOHJ8YFZxIO99RQUXmUsaWkhHhzoQdCOhQbc8CUcNG66p1soappiJxV7WTiqSdRcinoY7VwgGliuwBv+4zObAZcggGi7OZJAxpqnwXia9K/uqseqApE=
-cache:
- directories:
- - $HOME/.gradle
diff --git a/build.gradle b/build.gradle
index bfdadb59..be3770cd 100755
--- a/build.gradle
+++ b/build.gradle
@@ -16,17 +16,17 @@
buildscript {
repositories {
- jcenter()
+ mavenCentral()
}
dependencies {
- classpath 'com.netflix.nebula:nebula-dependency-recommender:6.1.1'
+ classpath 'com.netflix.nebula:nebula-dependency-recommender:9.1.1'
+ classpath 'com.netflix.nebula:gradle-netflixoss-project-plugin:9.1.0'
}
}
plugins {
- id 'nebula.netflixoss' version '7.1.0'
- id 'me.champeau.gradle.jmh' version '0.4.7'
- id "com.github.spotbugs" version "1.6.9" apply false
+ id 'me.champeau.gradle.jmh' version '0.5.2'
+ id "com.github.spotbugs" version "4.6.0" apply false
}
ext {
@@ -35,20 +35,20 @@ ext {
allprojects {
apply plugin: 'nebula.dependency-recommender'
+ apply plugin: 'nebula.netflixoss'
apply plugin: 'me.champeau.gradle.jmh'
}
subprojects {
- apply plugin: 'nebula.netflixoss'
- apply plugin: 'java'
- apply plugin: 'checkstyle'
+ apply plugin: 'java-library'
apply plugin: 'com.github.spotbugs'
+ apply plugin: 'checkstyle'
apply plugin: 'pmd'
group = "com.netflix.${githubProjectName}"
repositories {
- jcenter()
+ mavenCentral()
}
sourceCompatibility = '1.8'
@@ -93,18 +93,21 @@ subprojects {
}
checkstyle {
+ toolVersion = '8.39'
ignoreFailures = false
- toolVersion = '8.14'
configFile = rootProject.file('codequality/checkstyle.xml')
sourceSets = [sourceSets.main]
}
spotbugs {
- toolVersion = '3.1.10'
+ toolVersion = '4.2.0'
+ excludeFilter = rootProject.file('codequality/findbugs-exclude.xml')
ignoreFailures = false
- sourceSets = [sourceSets.main]
+ spotbugsMain.enabled = true
+ spotbugsTest.enabled = false
+ spotbugsJmh.enabled = false
}
- tasks.withType(com.github.spotbugs.SpotBugsTask) {
+ spotbugsMain {
reports {
xml.enabled = false
html.enabled = true
@@ -112,7 +115,7 @@ subprojects {
}
pmd {
- toolVersion = '6.9.0'
+ toolVersion = '6.30.0'
ignoreFailures = false
ruleSets = []
ruleSetFiles = rootProject.files("codequality/pmd.xml")
diff --git a/buildViaTravis.sh b/buildViaTravis.sh
deleted file mode 100755
index ea631207..00000000
--- a/buildViaTravis.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# This script will build the project.
-
-if [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "$GRADLE_PUBLISH" == "false" ]; then
- echo -e "Build Pull Request #$TRAVIS_PULL_REQUEST => Branch [$TRAVIS_BRANCH]"
- ./gradlew build
-elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" == "" ]; then
- echo -e 'Build Branch with Snapshot => Branch ['$TRAVIS_BRANCH']'
- ./gradlew -Prelease.travisci=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" build snapshot
-elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then
- echo -e 'Build Branch for Release => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG']'
- case "$TRAVIS_TAG" in
- *-rc\.*)
- ./gradlew -Prelease.travisci=true -Prelease.useLastTag=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" candidate
- ;;
- *)
- ./gradlew -Prelease.travisci=true -Prelease.useLastTag=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" final
- ;;
- esac
-else
- echo -e 'WARN: Should not be here => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG'] Pull Request ['$TRAVIS_PULL_REQUEST']'
- ./gradlew build
-fi
diff --git a/codequality/checkstyle.xml b/codequality/checkstyle.xml
index 020ded5d..766d577f 100644
--- a/codequality/checkstyle.xml
+++ b/codequality/checkstyle.xml
@@ -25,6 +25,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -43,25 +53,23 @@
+
@@ -82,16 +90,7 @@
-
-
-
-
-
-
-
-
-
diff --git a/codequality/findbugs-exclude.xml b/codequality/findbugs-exclude.xml
new file mode 100644
index 00000000..a52f8849
--- /dev/null
+++ b/codequality/findbugs-exclude.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/codequality/japi-checker-cli-0.2.1-SNAPSHOT.jar b/codequality/japi-checker-cli-0.2.1-SNAPSHOT.jar
deleted file mode 100644
index 2e298ec3..00000000
Binary files a/codequality/japi-checker-cli-0.2.1-SNAPSHOT.jar and /dev/null differ
diff --git a/codequality/servo-core-BASELINE.jar b/codequality/servo-core-BASELINE.jar
deleted file mode 100644
index 47317f4b..00000000
Binary files a/codequality/servo-core-BASELINE.jar and /dev/null differ
diff --git a/dependencies.properties b/dependencies.properties
index 788c2b55..39e8dffa 100644
--- a/dependencies.properties
+++ b/dependencies.properties
@@ -1,23 +1,23 @@
# Auto generated by insight-recommendations build
-com.amazonaws:aws-java-sdk-autoscaling = 1.11.521
-com.amazonaws:aws-java-sdk-cloudwatch = 1.11.521
-com.amazonaws:aws-java-sdk-core = 1.11.521
-com.fasterxml.jackson.core:jackson-annotations = 2.9.8
-com.fasterxml.jackson.core:jackson-core = 2.9.8
-com.fasterxml.jackson.core:jackson-databind = 2.9.8
-com.fasterxml.jackson.dataformat:jackson-dataformat-smile = 2.9.8
+com.amazonaws:aws-java-sdk-autoscaling = 1.11.965
+com.amazonaws:aws-java-sdk-cloudwatch = 1.11.965
+com.amazonaws:aws-java-sdk-core = 1.11.965
+com.fasterxml.jackson.core:jackson-annotations = 2.12.1
+com.fasterxml.jackson.core:jackson-core = 2.12.1
+com.fasterxml.jackson.core:jackson-databind = 2.12.1
+com.fasterxml.jackson.dataformat:jackson-dataformat-smile = 2.12.1
com.google.guava:guava = 19.0
-com.netflix.archaius:archaius2-api = 2.3.14
-com.netflix.archaius:archaius2-core = 2.3.14
-com.netflix.awsobjectmapper:awsobjectmapper = 1.11.521
-com.netflix.eureka:eureka-client = 1.9.9
-com.netflix.frigga:frigga = 0.18.0
+com.netflix.archaius:archaius2-api = 2.3.16
+com.netflix.archaius:archaius2-core = 2.3.16
+com.netflix.awsobjectmapper:awsobjectmapper = 1.11.965
+com.netflix.eureka:eureka-client = 1.10.12
+com.netflix.frigga:frigga = 0.24.0
com.netflix.iep-shadow:iepshadow-iep-module-rxnetty = 0.4.18.29
com.netflix.iep-shadow:iepshadow-iep-rxhttp = 0.4.18.29
com.netflix.iep-shadow:iepshadow-rxnetty = 0.4.20.29
com.netflix.iep-shadow:iepshadow-rxnetty-contexts = 0.4.20.29
com.netflix.iep-shadow:iepshadow-rxnetty-spectator = 0.4.20.29
-com.netflix.spectator:spectator-api = 0.88.0
+com.netflix.spectator:spectator-api = 0.124.0
io.netty:netty-buffer = 4.1.8.Final
io.netty:netty-codec = 4.1.8.Final
io.netty:netty-codec-http = 4.1.8.Final
@@ -30,7 +30,7 @@ io.reactivex:rxjava = 1.3.8
io.reactivex:rxnetty = 0.4.20
io.reactivex:rxnetty-contexts = 0.4.20
io.reactivex:rxnetty-spectator = 0.4.20
-org.slf4j:slf4j-api = 1.7.26
-org.slf4j:slf4j-log4j12 = 1.7.26
-org.slf4j:slf4j-nop = 1.7.26
-org.slf4j:slf4j-simple = 1.7.26
+org.slf4j:slf4j-api = 1.7.30
+org.slf4j:slf4j-log4j12 = 1.7.30
+org.slf4j:slf4j-nop = 1.7.30
+org.slf4j:slf4j-simple = 1.7.30
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 046cb948..8178ab14 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.3.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip
diff --git a/installViaTravis.sh b/installViaTravis.sh
deleted file mode 100755
index 68e45a05..00000000
--- a/installViaTravis.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# This script will build the project.
-
-if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
- echo -e "Assemble Pull Request #$TRAVIS_PULL_REQUEST => Branch [$TRAVIS_BRANCH]"
- ./gradlew assemble
-elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" == "" ]; then
- echo -e 'Assemble Branch with Snapshot => Branch ['$TRAVIS_BRANCH']'
- ./gradlew -Prelease.travisci=true assemble
-elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then
- echo -e 'Assemble Branch for Release => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG']'
- ./gradlew -Prelease.travisci=true -Prelease.useLastTag=true assemble
-else
- echo -e 'WARN: Should not be here => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG'] Pull Request ['$TRAVIS_PULL_REQUEST']'
- ./gradlew assemble
-fi
diff --git a/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/AtlasMetricObserver.java b/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/AtlasMetricObserver.java
index 9cc0bf1e..74698f97 100644
--- a/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/AtlasMetricObserver.java
+++ b/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/AtlasMetricObserver.java
@@ -336,10 +336,10 @@ private String getPayloadPrefix() {
}
protected void dumpPayload(File out, JsonPayload payload) throws IOException {
- JsonGenerator generator = jsonFactory.createGenerator(out, JsonEncoding.UTF8);
- generator.setPrettyPrinter(new AtlasPrettyPrinter());
- payload.toJson(generator);
-
+ try (JsonGenerator generator = jsonFactory.createGenerator(out, JsonEncoding.UTF8)) {
+ generator.setPrettyPrinter(new AtlasPrettyPrinter());
+ payload.toJson(generator);
+ }
}
protected Observable getSenderObservable(TagList tags, Metric[] batch) {
diff --git a/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/HttpHelper.java b/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/HttpHelper.java
index 9229852d..904d9bf9 100644
--- a/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/HttpHelper.java
+++ b/servo-atlas/src/main/java/com/netflix/servo/publish/atlas/HttpHelper.java
@@ -114,9 +114,9 @@ public RxHttp getRxHttp() {
private byte[] toByteArray(JsonFactory factory, JsonPayload payload) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- JsonGenerator gen = factory.createGenerator(baos, JsonEncoding.UTF8);
- payload.toJson(gen);
- gen.close();
+ try (JsonGenerator gen = factory.createGenerator(baos, JsonEncoding.UTF8)) {
+ payload.toJson(gen);
+ }
baos.close();
return baos.toByteArray();
} catch (IOException e) {
diff --git a/servo-aws/src/main/java/com/netflix/servo/publish/cloudwatch/CloudWatchMetricObserver.java b/servo-aws/src/main/java/com/netflix/servo/publish/cloudwatch/CloudWatchMetricObserver.java
index a686eef1..74c7533a 100644
--- a/servo-aws/src/main/java/com/netflix/servo/publish/cloudwatch/CloudWatchMetricObserver.java
+++ b/servo-aws/src/main/java/com/netflix/servo/publish/cloudwatch/CloudWatchMetricObserver.java
@@ -71,7 +71,7 @@ public class CloudWatchMetricObserver extends BaseMetricObserver {
/**
* Maximum value that can be represented in cloudwatch.
*/
- static final double MAX_VALUE = java.lang.Math.pow(2.0, MAX_EXPONENT);
+ static final double MAX_VALUE = Math.pow(2.0, MAX_EXPONENT);
/**
* Number of cloudwatch metrics reported.
diff --git a/servo-core/build.gradle b/servo-core/build.gradle
index 9722a369..c58879a5 100644
--- a/servo-core/build.gradle
+++ b/servo-core/build.gradle
@@ -1,18 +1,3 @@
-task(checkCompatibility, dependsOn: 'jar', type: JavaExec) {
- doFirst {
- main = 'com.googlecode.japi.checker.cli.Main'
- classpath = files("$projectDir/../codequality/japi-checker-cli-0.2.1-SNAPSHOT.jar")
- args = [
- "$projectDir/../codequality/servo-core-BASELINE.jar",
- jar.archivePath.path
- ]
- }
-}
-
-build {
- it.dependsOn checkCompatibility
-}
-
pmd {
ignoreFailures = true
}
diff --git a/servo-example/build.gradle b/servo-example/build.gradle
index bcdf7411..85e4ec13 100644
--- a/servo-example/build.gradle
+++ b/servo-example/build.gradle
@@ -28,6 +28,10 @@ checkstyle {
sourceSets = []
}
+pmd {
+ ignoreFailures = true
+}
+
jar {
manifest {
attributes(
diff --git a/servo-graphite/build.gradle b/servo-graphite/build.gradle
index 51427ae1..895241b4 100644
--- a/servo-graphite/build.gradle
+++ b/servo-graphite/build.gradle
@@ -2,6 +2,10 @@ dependencies {
compile project(':servo-core')
}
+pmd {
+ ignoreFailures = true
+}
+
jar {
manifest {
attributes(
diff --git a/servo-tomcat/build.gradle b/servo-tomcat/build.gradle
index effb2fd7..04f8cab1 100644
--- a/servo-tomcat/build.gradle
+++ b/servo-tomcat/build.gradle
@@ -2,6 +2,10 @@ dependencies {
compile project(':servo-core')
}
+pmd {
+ ignoreFailures = true
+}
+
jar {
manifest {
attributes(