From 2e0e76f4b6982c07f318c98f83d8303fb1959aea Mon Sep 17 00:00:00 2001 From: James Baker Date: Tue, 24 Apr 2018 17:01:11 -0400 Subject: [PATCH 1/6] Upgrade to gradle 4.0 --- gradle/wrapper/gradle-wrapper.jar | Bin 51106 -> 54413 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 78 +++++++++++++---------- gradlew.bat | 14 ++-- 4 files changed, 48 insertions(+), 46 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 3c7abdf12790879c06b07176de29647f77aa4129..91ca28c8b802289c3a438766657a5e98f20eff03 100644 GIT binary patch delta 46440 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�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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a0b28519..16d28051 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-bin.zip diff --git a/gradlew b/gradlew index 91a7e269..cccdd3d5 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,20 +6,38 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,31 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` @@ -154,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index aec99730..e95643d6 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line From 56acc5b921839ebb6900b4388e4edfb3863343b6 Mon Sep 17 00:00:00 2001 From: James Baker Date: Tue, 24 Apr 2018 17:07:30 -0400 Subject: [PATCH 2/6] Use the Palantir bintray not the oss one --- build.gradle | 9 +++--- gradle/publish-base.gradle | 22 ++++++++++++++ gradle/publish.gradle | 60 ++------------------------------------ 3 files changed, 28 insertions(+), 63 deletions(-) create mode 100644 gradle/publish-base.gradle diff --git a/build.gradle b/build.gradle index 61bef2f3..4c808166 100644 --- a/build.gradle +++ b/build.gradle @@ -5,13 +5,12 @@ buildscript { } dependencies { - classpath 'com.netflix.nebula:nebula-dependency-recommender:3.6.3' + classpath 'com.netflix.nebula:nebula-dependency-recommender:5.2.0' + classpath 'com.netflix.nebula:nebula-publishing-plugin:7.0.6' classpath 'gradle.plugin.com.palantir.configurationresolver:gradle-configuration-resolver-plugin:0.2.0' classpath 'com.palantir.gradle.docker:gradle-docker:0.12.0' classpath 'com.palantir.baseline:gradle-baseline-java:0.13.0-rc3' - classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.4.14' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' - classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0' } } @@ -19,7 +18,7 @@ plugins { id 'com.palantir.git-version' version '0.5.2' id 'org.inferred.processors' version '1.2.3' id 'com.palantir.jacoco-full-report' version '0.3.0' - id 'org.unbroken-dome.test-sets' version '1.3.2' + id 'org.unbroken-dome.test-sets' version '1.4.5' } repositories { diff --git a/gradle/publish-base.gradle b/gradle/publish-base.gradle new file mode 100644 index 00000000..adea9e29 --- /dev/null +++ b/gradle/publish-base.gradle @@ -0,0 +1,22 @@ +apply plugin: 'com.jfrog.bintray' +apply plugin: 'nebula.maven-base-publish' +apply plugin: 'nebula.maven-resolved-dependencies' +apply plugin: 'nebula.javadoc-jar' +apply plugin: 'nebula.source-jar' + +bintray { + user = System.env.BINTRAY_USERNAME + key = System.env.BINTRAY_PASSWORD + publish = true + pkg { + repo = 'releases' + name = 'encrypted-config-value' + userOrg = 'palantir' + licenses = ['Apache-2.0'] + publications = ['nebula'] + } +} + +bintrayUpload.dependsOn { generatePomFileForNebulaPublication } +bintrayUpload.dependsOn { sourceJar } +bintrayUpload.dependsOn { build } diff --git a/gradle/publish.gradle b/gradle/publish.gradle index ef4679ea..7cdfd252 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -1,65 +1,9 @@ -apply plugin: 'maven-publish' -apply plugin: 'com.jfrog.bintray' -apply plugin: 'com.jfrog.artifactory' - -task sourceJar(type: Jar) { - from sourceSets.main.allSource - classifier 'sources' -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir - destinationDir rootProject.file("${buildDir}/libs") -} - -tasks.build.dependsOn sourceJar, javadocJar +apply from: "${rootDir}/gradle/publish-base.gradle" publishing { publications { - bintray(MavenPublication) { + nebula(MavenPublication) { from components.java - artifact(sourceJar) - artifact(javadocJar) - version project.version.replaceAll(/-.*/, '-SNAPSHOT') - } - } -} - - -artifactory { - publish { - contextUrl = 'https://oss.jfrog.org/artifactory' - repository { - repoKey = (project.version =~ /-/ ? 'oss-snapshot-local' : 'oss-release-local') - username = System.env.BINTRAY_USERNAME - password = System.env.BINTRAY_PASSWORD - maven = true - } - defaults { - publications (publishing.publications.bintray) - properties = ['git': project.version] } } } -artifactoryPublish.dependsOn 'generatePomFileForBintrayPublication', 'build' - -bintray { - user = System.env.BINTRAY_USERNAME - key = System.env.BINTRAY_PASSWORD - publish = true - pkg { - repo = 'releases' - name = 'encrypted-config-value' - userOrg = 'palantir' - licenses = ['Apache-2.0'] - publications = ['bintray'] - } -} - -bintrayUpload.onlyIf { - System.env.BINTRAY_USERNAME && System.env.BINTRAY_PASSWORD && project.version ==~ /\d+\.\d+\.\d+/ -} - -bintrayUpload.dependsOn 'generatePomFileForBintrayPublication', 'build' - From 1f214840f9a740d2c35290e665cbcd2445d49d1b Mon Sep 17 00:00:00 2001 From: James Baker Date: Tue, 24 Apr 2018 17:24:14 -0400 Subject: [PATCH 3/6] Make errorprone compatible --- build.gradle | 7 +++-- encrypted-config-value/build.gradle | 1 + .../config/crypto/EncryptedValue.java | 1 + .../config/crypto/algorithm/Algorithm.java | 30 +++++++++++-------- .../config/crypto/algorithm/Encrypter.java | 2 ++ .../config/crypto/algorithm/KeyGenerator.java | 2 ++ .../config/crypto/algorithm/KeyType.java | 1 + .../crypto/algorithm/aes/AesGcmEncrypter.java | 2 ++ .../config/crypto/algorithm/aes/AesKey.java | 2 ++ .../algorithm/rsa/RsaOaepEncrypter.java | 3 ++ .../crypto/algorithm/rsa/RsaPrivateKey.java | 2 ++ .../crypto/algorithm/rsa/RsaPublicKey.java | 2 ++ version.props | 3 +- 13 files changed, 42 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index 4c808166..2b5ffc13 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { classpath 'com.netflix.nebula:nebula-publishing-plugin:7.0.6' classpath 'gradle.plugin.com.palantir.configurationresolver:gradle-configuration-resolver-plugin:0.2.0' classpath 'com.palantir.gradle.docker:gradle-docker:0.12.0' - classpath 'com.palantir.baseline:gradle-baseline-java:0.13.0-rc3' + classpath 'com.palantir.baseline:gradle-baseline-java:0.19.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0' } } @@ -31,7 +31,7 @@ apply plugin: 'com.palantir.baseline-idea' apply plugin: 'org.inferred.processors' dependencies { - baseline 'com.palantir.baseline:gradle-baseline-java-config:0.13.0-rc3@zip' + baseline 'com.palantir.baseline:gradle-baseline-java-config:0.19.1@zip' } allprojects { @@ -98,7 +98,8 @@ subprojects { compileJava { options.compilerArgs += [ '-XepDisableWarningsInGeneratedCode', - '-Xep:OptionalEquality:WARN' + '-Xep:OptionalEquality:WARN', + '-Werror' ] } } diff --git a/encrypted-config-value/build.gradle b/encrypted-config-value/build.gradle index 10c01b48..1cff7768 100644 --- a/encrypted-config-value/build.gradle +++ b/encrypted-config-value/build.gradle @@ -2,6 +2,7 @@ apply from: "${rootDir}/gradle/publish.gradle" apply from: "${rootDir}/gradle/immutables-processors.gradle" dependencies { + compileOnly 'com.google.errorprone:error_prone_annotations' compile 'com.google.guava:guava' compile 'com.fasterxml.jackson.core:jackson-databind' diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/EncryptedValue.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/EncryptedValue.java index 62f3d842..07fbdfb4 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/EncryptedValue.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/EncryptedValue.java @@ -80,6 +80,7 @@ public static EncryptedValue fromString(String value) { } } + @Override public final String toString() { byte[] bytes = accept(new EncryptedValueVisitor() { @Override diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Algorithm.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Algorithm.java index 04cdc403..383c845f 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Algorithm.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Algorithm.java @@ -17,7 +17,6 @@ package com.palantir.config.crypto.algorithm; import com.fasterxml.jackson.annotation.JsonValue; -import com.google.common.base.Supplier; import com.palantir.config.crypto.KeyPair; import com.palantir.config.crypto.algorithm.aes.AesGcmEncrypter; import com.palantir.config.crypto.algorithm.aes.AesKeyPair; @@ -30,28 +29,35 @@ * algorithm with a supported key. */ public enum Algorithm { - AES("AES", () -> AesKeyPair.newKeyPair(), () -> AesGcmEncrypter.INSTANCE), - RSA("RSA", () -> RsaKeyPair.newKeyPair(), () -> RsaOaepEncrypter.INSTANCE); + AES("AES", AesGcmEncrypter.INSTANCE) { + @Override + public KeyPair newKeyPair() { + return AesKeyPair.newKeyPair(); + } + }, + RSA("RSA", RsaOaepEncrypter.INSTANCE) { + @Override + public KeyPair newKeyPair() { + return RsaKeyPair.newKeyPair(); + } + }; private final String name; - private final Supplier keyPairGenerator; - private final Supplier encrypterGenerator; + private final Encrypter encrypter; - Algorithm(String name, Supplier keyPairGenerator, Supplier cipherGenerator) { + Algorithm(String name, Encrypter cipher) { this.name = name; - this.keyPairGenerator = keyPairGenerator; - this.encrypterGenerator = cipherGenerator; + this.encrypter = cipher; } - public KeyPair newKeyPair() { - return keyPairGenerator.get(); - } + public abstract KeyPair newKeyPair(); public Encrypter newEncrypter() { - return encrypterGenerator.get(); + return encrypter; } @JsonValue + @Override public String toString() { return name; } diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Encrypter.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Encrypter.java index 1c0305ef..7f9a5b7b 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Encrypter.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/Encrypter.java @@ -17,9 +17,11 @@ package com.palantir.config.crypto.algorithm; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.EncryptedValue; import com.palantir.config.crypto.KeyWithType; +@Immutable public interface Encrypter { /** * Creates an {@link EncryptedValue} that is the result of encrypting the provided plaintext using the provided key. diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyGenerator.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyGenerator.java index e9b54d23..c48433cd 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyGenerator.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyGenerator.java @@ -17,9 +17,11 @@ package com.palantir.config.crypto.algorithm; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.Key; import com.palantir.config.crypto.KeyWithType; +@Immutable public interface KeyGenerator { /** * Creates a {@link KeyWithType} based on the provided key content bytes. The provided bytes should correspond to diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyType.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyType.java index a120fc92..38bbe396 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyType.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/KeyType.java @@ -52,6 +52,7 @@ public static KeyType from(String name) { this.algorithm = algorithm; } + @Override public String toString() { return name; } diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesGcmEncrypter.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesGcmEncrypter.java index cdca31ea..c27eee96 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesGcmEncrypter.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesGcmEncrypter.java @@ -16,6 +16,7 @@ package com.palantir.config.crypto.algorithm.aes; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.EncryptedValue; import com.palantir.config.crypto.KeyWithType; import com.palantir.config.crypto.algorithm.Encrypter; @@ -27,6 +28,7 @@ import javax.crypto.SecretKey; import javax.crypto.spec.GCMParameterSpec; +@Immutable public enum AesGcmEncrypter implements Encrypter { INSTANCE; diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesKey.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesKey.java index 7ce30901..b6961471 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesKey.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/aes/AesKey.java @@ -16,6 +16,7 @@ package com.palantir.config.crypto.algorithm.aes; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.ImmutableKeyWithType; import com.palantir.config.crypto.Key; import com.palantir.config.crypto.KeyWithType; @@ -41,6 +42,7 @@ public byte[] bytes() { return secretKey.getEncoded(); } + @Immutable public enum AesKeyGenerator implements KeyGenerator { INSTANCE; diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaOaepEncrypter.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaOaepEncrypter.java index 3affb73a..32973176 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaOaepEncrypter.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaOaepEncrypter.java @@ -17,6 +17,7 @@ package com.palantir.config.crypto.algorithm.rsa; import com.fasterxml.jackson.annotation.JsonValue; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.EncryptedValue; import com.palantir.config.crypto.KeyWithType; import com.palantir.config.crypto.algorithm.Encrypter; @@ -32,6 +33,7 @@ /** * Encrypts values using RSA-OAEP-MDF1. Uses SHA-256 as the hash function for both OAEP and MDF1. */ +@Immutable public enum RsaOaepEncrypter implements Encrypter { INSTANCE; @@ -49,6 +51,7 @@ public enum HashAlgorithm { } @JsonValue + @Override public String toString() { return name; } diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPrivateKey.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPrivateKey.java index e8535128..db58a63d 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPrivateKey.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPrivateKey.java @@ -16,6 +16,7 @@ package com.palantir.config.crypto.algorithm.rsa; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.ImmutableKeyWithType; import com.palantir.config.crypto.Key; import com.palantir.config.crypto.KeyWithType; @@ -44,6 +45,7 @@ public byte[] bytes() { return privateKey.getEncoded(); } + @Immutable public enum RsaPrivateKeyGenerator implements KeyGenerator { INSTANCE; diff --git a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPublicKey.java b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPublicKey.java index 8d4b0ecd..63069d2b 100644 --- a/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPublicKey.java +++ b/encrypted-config-value/src/main/java/com/palantir/config/crypto/algorithm/rsa/RsaPublicKey.java @@ -16,6 +16,7 @@ package com.palantir.config.crypto.algorithm.rsa; +import com.google.errorprone.annotations.Immutable; import com.palantir.config.crypto.ImmutableKeyWithType; import com.palantir.config.crypto.Key; import com.palantir.config.crypto.KeyWithType; @@ -44,6 +45,7 @@ public byte[] bytes() { return publicKey.getEncoded(); } + @Immutable public enum RsaPublicKeyGenerator implements KeyGenerator { INSTANCE; diff --git a/version.props b/version.props index 182d82d4..6d6fc41e 100644 --- a/version.props +++ b/version.props @@ -3,6 +3,7 @@ com.fasterxml.jackson.dataformat:jackson-dataformat-yaml = 2.6.1 com.fasterxml.jackson.datatype:jackson-datatype-guava = 2.6.1 com.fasterxml.jackson.datatype:jackson-datatype-jdk7 = 2.6.1 com.google.code.findbugs:jsr305 = 3.0.0 +com.google.errorprone:error_prone_annotations = 2.3.1 com.google.guava:guava = 21.0 com.netflix.feign:feign-jackson = 8.11.0 com.netflix.feign:feign-jaxrs = 8.11.0 @@ -15,7 +16,7 @@ junit:junit = 4.12 org.apache.commons:commons-lang3 = 3.4 org.hamcrest:hamcrest-all = 1.3 org.hamcrest:hamcrest-core = 1.3 -org.immutables:value = 2.4.4 +org.immutables:value = 2.5.6 org.mockito:mockito-core = 1.10.19 org.objenesis:objenesis = 2.2 org.slf4j:slf4j-api = 1.7.12 From 22689883a256ea0c6a4f051755e36942796d4875 Mon Sep 17 00:00:00 2001 From: James Baker Date: Tue, 24 Apr 2018 17:26:02 -0400 Subject: [PATCH 4/6] Baseline upgrade --- .../checkstyle/checkstyle-suppressions.xml | 1 + .baseline/checkstyle/checkstyle.xml | 31 +++++++++++-------- .../{apache-2.0.txt => 001_apache-2.0.txt} | 2 +- .baseline/eclipse/org.eclipse.jdt.core.prefs | 2 +- .../dotfile.settings/org.eclipse.jdt.ui.prefs | 2 +- .../idea/intellij-java-palantir-style.xml | 1 + 6 files changed, 23 insertions(+), 16 deletions(-) rename .baseline/copyright/{apache-2.0.txt => 001_apache-2.0.txt} (87%) diff --git a/.baseline/checkstyle/checkstyle-suppressions.xml b/.baseline/checkstyle/checkstyle-suppressions.xml index 59e401ce..5b9a462f 100644 --- a/.baseline/checkstyle/checkstyle-suppressions.xml +++ b/.baseline/checkstyle/checkstyle-suppressions.xml @@ -11,6 +11,7 @@ + diff --git a/.baseline/checkstyle/checkstyle.xml b/.baseline/checkstyle/checkstyle.xml index 2677cbb5..103b7e00 100644 --- a/.baseline/checkstyle/checkstyle.xml +++ b/.baseline/checkstyle/checkstyle.xml @@ -19,7 +19,7 @@ - + @@ -39,8 +39,13 @@ + + + + + - + @@ -73,7 +78,12 @@ - + @@ -165,11 +175,11 @@ - + - + @@ -287,11 +297,6 @@ - - - - - @@ -319,7 +324,7 @@ - + @@ -396,7 +401,7 @@ - + @@ -411,7 +416,7 @@ - + diff --git a/.baseline/copyright/apache-2.0.txt b/.baseline/copyright/001_apache-2.0.txt similarity index 87% rename from .baseline/copyright/apache-2.0.txt rename to .baseline/copyright/001_apache-2.0.txt index c12d5ab0..54d4a031 100644 --- a/.baseline/copyright/apache-2.0.txt +++ b/.baseline/copyright/001_apache-2.0.txt @@ -1,4 +1,4 @@ -Copyright ${today.year} Palantir Technologies, Inc. All rights reserved. +(c) Copyright ${today.year} Palantir Technologies 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. diff --git a/.baseline/eclipse/org.eclipse.jdt.core.prefs b/.baseline/eclipse/org.eclipse.jdt.core.prefs index dc125f1d..fc7a7ddf 100644 --- a/.baseline/eclipse/org.eclipse.jdt.core.prefs +++ b/.baseline/eclipse/org.eclipse.jdt.core.prefs @@ -109,7 +109,7 @@ org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert diff --git a/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs b/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs index c0204737..f2990d96 100644 --- a/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs +++ b/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs @@ -11,7 +11,7 @@ org.eclipse.jdt.ui.keywordthis=false org.eclipse.jdt.ui.ondemandthreshold=99 org.eclipse.jdt.ui.overrideannotation=true org.eclipse.jdt.ui.staticondemandthreshold=99 -org.eclipse.jdt.ui.text.custom_code_templates=