diff --git a/build.gradle b/build.gradle index 7b286a88c..48cfcb617 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,18 @@ +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0' + classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' + } +} + +apply plugin: "com.github.johnrengelman.shadow" // provides shading apply plugin: 'java' -apply plugin: 'ivy-publish' +apply plugin: 'maven' // needed to add the install task for jitpack.io +apply plugin: 'com.github.ben-manes.versions' // gradle dependencyUpdates -Drevision=release +apply plugin: 'project-report' // gradle htmlDependencyReport sourceCompatibility = 1.6 version = '0.3.2' @@ -15,17 +28,9 @@ jar { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } -publishing { - publications { - ivy(IvyPublication) { - from components.java - } - } - repositories { - ivy { - url "$projectDir/repos" - } - } +artifacts { + // make sure the non shaded jar is not + archives shadowJar } repositories { @@ -33,15 +38,61 @@ repositories { } dependencies { - compile 'com.squareup.okhttp3:okhttp:3.9.1' - compile 'com.moandjiezana.toml:toml4j:0.5.1' - compile 'org.mockito:mockito-core:2.13.0' - compile 'com.google.guava:guava:18.0' - compile 'com.google.code.gson:gson:2.4' - compile 'commons-io:commons-io:2.4' - compile 'org.glassfish.jersey.core:jersey-client:2.22.1' - compile 'org.glassfish.jersey.media:jersey-media-sse:2.22.1' + compile 'com.squareup.okhttp3:okhttp:3.11.0' + compile 'com.moandjiezana.toml:toml4j:0.7.2' + // use the android version because we don't want java 8 stuff + compile 'com.google.guava:guava:26.0-android' + compile 'com.google.code.gson:gson:2.8.5' + compile 'commons-io:commons-io:2.6' + compile 'org.glassfish.jersey.core:jersey-client:2.27' + compile 'org.glassfish.jersey.media:jersey-media-sse:2.27' compile 'net.i2p.crypto:eddsa:0.3.0' - testCompile 'com.squareup.okhttp3:mockwebserver:3.9.1' - testCompile group: 'junit', name: 'junit', version: '4.11' + + testCompile 'org.mockito:mockito-core:2.21.0' + testCompile 'com.squareup.okhttp3:mockwebserver:3.11.0' + testCompile 'junit:junit:4.12' +} + +project.configurations.compile +jar.enabled = false + +// make sure the install task creates the shadowjar; this is called by jitpack.ios +install.dependsOn(shadowJar); + +// we need this so we can get to the installer and deployer below so we can remove the dependencies +uploadArchives { + repositories { + mavenDeployer { + } + } +} + +def installer = install.repositories.mavenInstaller +def deployer = uploadArchives.repositories.mavenDeployer +[installer, deployer]*.pom*.whenConfigured {pom -> + // force pom dependencies to be empty because we are shading everything + pom.dependencies = [] +} + +shadowJar { + archiveName 'stellar-sdk.jar' + relocate 'com','shadow.com' + relocate 'net','shadow.net' + relocate 'org.glassfish','shadow.org.glassfish' + relocate 'org.mockito','shadow.org.mockito' + relocate 'org.aopalliance','shadow.org.aopalliance' + relocate 'org.apache','shadow.org.apache' + relocate 'org.jvnet','shadow.org.jvnet' + relocate 'org.objenesis','shadow.org.objenesis' + relocate 'org.codehaus','shadow.org.codehaus' + relocate 'org.checkerframework','shadow.org.checkerframework' + relocate 'javassist','shadow.javassist' + relocate 'javax.validation', 'shadow.javax.validation' + relocate 'javax.annotation', 'shadow.javax.annotation' + relocate 'javax.inject', 'shadow.javax.inject' + relocate 'javax.ws', 'shadow.javax.inject' + relocate 'commons-io', 'shadow.commons-io' + relocate 'jersey', 'shadow.jersey' + relocate 'okhttp3','shadow.okhttp3' + relocate 'okio','shadow.okio' } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 3d0dee6e8..29953ea14 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 80007d992..e0b3fb8d7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Fri Sep 09 23:28:22 CEST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip diff --git a/gradlew b/gradlew index 91a7e269e..cccdd3d51 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 aec99730b..e95643d6a 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