diff --git a/.buildscript/deploy_snapshot.sh b/.buildscript/deploy_snapshot.sh index a6508e6bf8bc..a0b55d6d0ff5 100755 --- a/.buildscript/deploy_snapshot.sh +++ b/.buildscript/deploy_snapshot.sh @@ -21,6 +21,7 @@ elif [ "$TRAVIS_BRANCH" != "$BRANCH" ]; then echo "Skipping snapshot deployment: wrong branch. Expected '$BRANCH' but was '$TRAVIS_BRANCH'." else echo "Deploying snapshot..." - ./mvnw clean source:jar javadoc:jar deploy --settings=".buildscript/settings.xml" -DskipTests -B + echo "TODO: fix snapshot deployment for gradle..." + # ./mvnw clean source:jar javadoc:jar deploy --settings=".buildscript/settings.xml" -DskipTests -B echo "Snapshot deployed!" fi diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 75434383023f..01431c6e8740 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,7 @@ forking the repository and sending a pull request. When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also make -sure your code compiles by running `mvn clean verify`. Checkstyle failures +sure your code compiles by running `./gradlew check`. Checkstyle failures during compilation indicate errors in your style and can be viewed in the `checkstyle-result.xml` file. diff --git a/.gitignore b/.gitignore index 226a3f3d65cd..d58361dc0026 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .classpath .project .settings +.gradle eclipsebin bin @@ -8,6 +9,7 @@ gen build out lib +generated target pom.xml.* diff --git a/.travis.yml b/.travis.yml index bbc053407fbe..dd07c678d439 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,16 +5,8 @@ jdk: - openjdk8 - openjdk11 -before_install: - - mvn -N io.takari:maven:wrapper -Dmaven=3.6.0 - - echo "MAVEN_OPTS='-Dmaven.repo.local=$HOME/.m2/repository -Xmx1g -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS'" > ~/.mavenrc - -install: - - ./mvnw dependency:resolve -B || true - script: - - ./mvnw -DskipTests package checkstyle:check -B - - ./mvnw test javadoc:jar source:jar -B + - ./gradlew check after_success: - .buildscript/deploy_snapshot.sh diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000000..79f5e95096ce --- /dev/null +++ b/build.gradle @@ -0,0 +1,154 @@ +buildscript { + ext.versions = [ + 'airline': '0.8', + 'android': '4.1.1.4', + 'animalSniffer': '1.17', + 'assertj': '3.11.0', + 'bouncycastle': '1.60', + 'checkstyle': '8.15', + 'conscrypt': '2.0.0', + 'findbugs': '3.0.2', + 'guava': '27.0.1-jre', + 'java': '1.8', + 'jnrUnixsocket': '0.22', + 'jsoup': '1.11.3', + 'junit': '4.12', + 'moshi': '1.8.0', + 'okio': '1.17.2', + ] + + ext.deps = [ + 'airline': "io.airlift:airline:${versions.airline}", + 'android': "com.google.android:android:${versions.android}", + 'animalSniffer': "org.codehaus.mojo:animal-sniffer-annotations:${versions.animalSniffer}", + 'assertj': "org.assertj:assertj-core:${versions.assertj}", + 'bouncycastle': "org.bouncycastle:bcprov-jdk15on:${versions.bouncycastle}", + 'conscrypt': "org.conscrypt:conscrypt-openjdk-uber:${versions.conscrypt}", + 'guava': "com.google.guava:guava:${versions.guava}", + 'jnrUnixsocket': "com.github.jnr:jnr-unixsocket:${versions.jnrUnixsocket}", + 'jsoup': "org.jsoup:jsoup:${versions.jsoup}", + 'jsr305': "com.google.code.findbugs:jsr305:${versions.findbugs}", + 'junit': "junit:junit:${versions.junit}", + 'moshi': "com.squareup.moshi:moshi:${versions.moshi}", + 'okio': "com.squareup.okio:okio:${versions.okio}" + ] + + dependencies { + // TODO(jwilson): configure maven-publish-plugin to limit which artifacts are published. + classpath 'com.vanniktech:gradle-maven-publish-plugin:0.8.0' + } + + repositories { + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id 'ru.vyarus.animalsniffer' version '1.5.0' + id 'com.github.johnrengelman.shadow' version '4.0.1' +} + +allprojects { + group = GROUP + version = VERSION_NAME + + repositories { + mavenCentral() + } +} + +subprojects { project -> + apply plugin: 'java' + apply plugin: 'java-library' + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + + apply plugin: 'checkstyle' + checkstyleMain.exclude '**/CipherSuite.java' + afterEvaluate { + checkstyle { + configFile = rootProject.file('checkstyle.xml') + toolVersion "${versions.checkstyle}" + sourceSets = [project.sourceSets.main] + } + } + + // Animal Sniffer confirms we don't use APIs not on both Java 8 and Android 5. + apply plugin: 'ru.vyarus.animalsniffer' + animalsniffer { + sourceSets = [sourceSets.main] + } + dependencies { + signature 'net.sf.androidscents.signature:android-api-level-21:5.0.1_r2@signature' + signature 'org.codehaus.mojo.signature:java18:1.0@signature' + } + + test { + jvmArgs += "-Dlistener=okhttp3.testing.InstallUncaughtExceptionHandlerListener" + jvmArgs += "-Dokhttp.platform=platform" + } + + // Add alpn-boot on Java 8 so we can use HTTP/2 without a stable API. + def alpnBootVersion = alpnBootVersion() + if (alpnBootVersion != null) { + dependencies { + testCompile "org.mortbay.jetty.alpn:alpn-boot:$alpnBootVersion" + } + def alpnBootJar = configurations.testCompile.find { it.name.startsWith("alpn-boot-") } + test { + jvmArgs += "-Xbootclasspath/p:${alpnBootJar}" + } + } + + // TODO(jwilson): configure error prone. +} + +tasks.wrapper { + distributionType = Wrapper.DistributionType.ALL +} + +/** + * Returns the alpn-boot version specific to this OpenJDK 8 JVM, or null if this is not a Java 8 VM. + * https://github.com/xjdr/xio/blob/master/alpn-boot.gradle + */ +def alpnBootVersion() { + def javaVersion = System.getProperty("java.version") + def patchVersionMatcher = (javaVersion =~ /1\.8\.0_(\d+)(-.*)?/) + if (!patchVersionMatcher.find()) return null + def patchVersion = Integer.parseInt(patchVersionMatcher.group(1)) + return alpnBootVersionForPatchVersion(javaVersion, patchVersion) +} + +def alpnBootVersionForPatchVersion(String javaVersion, int patchVersion) { + switch (patchVersion) { + case 0..24: + return '8.1.0.v20141016' + case 25..30: + return '8.1.2.v20141202' + case 31..50: + return '8.1.3.v20150130' + case 51..59: + return '8.1.4.v20150727' + case 60..64: + return '8.1.5.v20150921' + case 65..70: + return '8.1.6.v20151105' + case 71..77: + return '8.1.7.v20160121' + case 78..101: + return '8.1.8.v20160420' + case 102..111: + return '8.1.9.v20160720' + case 112..120: + return '8.1.10.v20161026' + case 121..160: + return '8.1.11.v20170118' + case 161..181: + return '8.1.12.v20180117' + case 191..202: + return '8.1.13.v20181017' + default: + throw new IllegalStateException("Unexpected Java version: ${javaVersion}") + } +} \ No newline at end of file diff --git a/checkstyle.xml b/checkstyle.xml index 1e4d8e6d1d25..f66aad53f8a7 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -28,8 +28,6 @@ - - diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000000..ec2302aca541 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,16 @@ +org.gradle.jvmargs='-Dfile.encoding=UTF-8' + +GROUP=com.squareup.okhttp3 +VERSION_NAME=3.15.0-SNAPSHOT + +POM_URL=https://github.com/square/okhttp +POM_SCM_URL=https://github.com/square/okhttp +POM_SCM_CONNECTION=scm:git:https://github.com/square/okhttp.git +POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/square/okhttp.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=square +POM_DEVELOPER_NAME=Square, Inc. diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000000..87b738cbd051 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000000..1b2b07cfb00c --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 000000000000..af6708ff229f --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# 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='"-Xmx64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +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 + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +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` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +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" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000000..0f8d5937c4ad --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +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="-Xmx64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/mockwebserver/build.gradle b/mockwebserver/build.gradle new file mode 100644 index 000000000000..1150ac1450d1 --- /dev/null +++ b/mockwebserver/build.gradle @@ -0,0 +1,14 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3.mockwebserver') + } +} + +dependencies { + api project(':okhttp') + api deps.junit + + testImplementation project(':okhttp-testing-support') + testImplementation project(':okhttp-tls') + testImplementation deps.assertj +} diff --git a/mockwebserver/pom.xml b/mockwebserver/pom.xml deleted file mode 100644 index 868e5599024c..000000000000 --- a/mockwebserver/pom.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - mockwebserver - MockWebServer - - - - ${project.groupId} - okhttp - ${project.version} - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - ${project.groupId} - okhttp-tls - ${project.version} - test - - - junit - junit - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - - http://square.github.io/okhttp/javadoc/ - http://square.github.io/okio/ - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.1.0 - - - jar-with-dependencies - - - - - package - - single - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.mockwebserver - - - - - - - diff --git a/okcurl/build.gradle b/okcurl/build.gradle new file mode 100644 index 000000000000..c96f6ecec1e6 --- /dev/null +++ b/okcurl/build.gradle @@ -0,0 +1,36 @@ +jar { + manifest { + attributes 'Automatic-Module-Name': 'okhttp3.curl' + attributes 'Main-Class': 'okhttp3.curl.Main' + } +} + +// resources-templates. +sourceSets { + main.resources.srcDirs += "$buildDir/generated/resources-templates" +} +compileJava { + dependsOn 'copyResourcesTemplates' +} +task copyResourcesTemplates(type: Copy) { + from 'src/main/resources-templates' + into "$buildDir/generated/resources-templates" + expand('projectVersion': "$VERSION_NAME") + filteringCharset = 'UTF-8' +} + +dependencies { + api project(':okhttp') + api project(':okhttp-logging-interceptor') + implementation deps.airline + implementation deps.guava + + testImplementation project(':okhttp-testing-support') + testImplementation deps.junit + testImplementation deps.assertj +} + +apply plugin: 'com.github.johnrengelman.shadow' +shadowJar { + mergeServiceFiles() +} diff --git a/okcurl/pom.xml b/okcurl/pom.xml deleted file mode 100644 index 0a16379da7e6..000000000000 --- a/okcurl/pom.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okcurl - OkCurl - - - - ${project.groupId} - okhttp - ${project.version} - - - ${project.groupId} - logging-interceptor - ${project.version} - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - io.airlift - airline - - - com.google.guava - guava - - - - junit - junit - test - - - org.assertj - assertj-core - test - - - - - - - src/main/resources - true - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.1.0 - - - jar-with-dependencies - - - - okhttp3.curl.Main - - - - - - package - - single - - - - - - org.skife.maven - really-executable-jar-maven-plugin - 1.5.0 - - - package - - really-executable-jar - - - - - -Xbootclasspath/p:$0 - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.curl - - - - - - - diff --git a/okcurl/src/main/resources-templates/okcurl-version.properties b/okcurl/src/main/resources-templates/okcurl-version.properties new file mode 100644 index 000000000000..a15427847cd7 --- /dev/null +++ b/okcurl/src/main/resources-templates/okcurl-version.properties @@ -0,0 +1 @@ +version=${projectVersion} diff --git a/okcurl/src/main/resources/okcurl-version.properties b/okcurl/src/main/resources/okcurl-version.properties deleted file mode 100644 index defbd48204e4..000000000000 --- a/okcurl/src/main/resources/okcurl-version.properties +++ /dev/null @@ -1 +0,0 @@ -version=${project.version} diff --git a/okcurl/src/test/java/okhttp3/curl/MainTest.java b/okcurl/src/test/java/okhttp3/curl/MainTest.java index d4542fbedc39..6277c93f8a17 100644 --- a/okcurl/src/test/java/okhttp3/curl/MainTest.java +++ b/okcurl/src/test/java/okhttp3/curl/MainTest.java @@ -85,6 +85,11 @@ public class MainTest { assertThat(request.body()).isNull(); } + @Test public void defaultUserAgent() { + Request request = fromArgs("http://example.com").createRequest(); + assertThat(request.header("User-Agent")).startsWith("okcurl/"); + } + @Test public void headerSplitWithDate() { Request request = fromArgs("-H", "If-Modified-Since: Mon, 18 Aug 2014 15:16:06 GMT", "http://example.com").createRequest(); diff --git a/okhttp-dnsoverhttps/build.gradle b/okhttp-dnsoverhttps/build.gradle new file mode 100644 index 000000000000..61d68a256253 --- /dev/null +++ b/okhttp-dnsoverhttps/build.gradle @@ -0,0 +1,16 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3.dnsoverhttps') + } +} + +dependencies { + api project(':okhttp') + compileOnly deps.jsr305 + + testImplementation project(':okhttp-testing-support') + testImplementation project(':mockwebserver') + testImplementation deps.conscrypt + testImplementation deps.junit + testImplementation deps.assertj +} diff --git a/okhttp-dnsoverhttps/pom.xml b/okhttp-dnsoverhttps/pom.xml deleted file mode 100644 index 75babe42d3ee..000000000000 --- a/okhttp-dnsoverhttps/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-dnsoverhttps - OkHttp DNS over HTTPS - - - - ${project.groupId} - okhttp - ${project.version} - - - com.google.code.findbugs - jsr305 - provided - - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - junit - junit - test - - - ${project.groupId} - mockwebserver - ${project.version} - test - - - org.conscrypt - conscrypt-openjdk-uber - test - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.dnsoverhttps - - - - - - - diff --git a/okhttp-hpacktests/build.gradle b/okhttp-hpacktests/build.gradle new file mode 100644 index 000000000000..cc38a49483ff --- /dev/null +++ b/okhttp-hpacktests/build.gradle @@ -0,0 +1,9 @@ +dependencies { + testImplementation deps.okio + testImplementation deps.moshi + testImplementation project(':okhttp') + testImplementation project(':okhttp-testing-support') + testImplementation project(':mockwebserver') + testImplementation deps.junit + testImplementation deps.assertj +} diff --git a/okhttp-hpacktests/pom.xml b/okhttp-hpacktests/pom.xml deleted file mode 100644 index 18eb58cb005d..000000000000 --- a/okhttp-hpacktests/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-hpacktests - OkHttp HPACK Tests - - - - com.squareup.okio - okio - - - com.squareup.moshi - moshi - - - ${project.groupId} - okhttp - ${project.version} - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - junit - junit - test - - - ${project.groupId} - mockwebserver - ${project.version} - test - - - org.assertj - assertj-core - test - - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - - true - - - - - diff --git a/okhttp-logging-interceptor/build.gradle b/okhttp-logging-interceptor/build.gradle new file mode 100644 index 000000000000..f4fb95132a2d --- /dev/null +++ b/okhttp-logging-interceptor/build.gradle @@ -0,0 +1,17 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3.logging') + } +} + +dependencies { + api project(':okhttp') + compileOnly deps.jsr305 + + testCompileOnly deps.jsr305 + testImplementation deps.junit + testImplementation project(':mockwebserver') + testImplementation project(':okhttp-testing-support') + testImplementation project(':okhttp-tls') + testImplementation deps.assertj +} diff --git a/okhttp-logging-interceptor/pom.xml b/okhttp-logging-interceptor/pom.xml deleted file mode 100644 index d322e9b73cc2..000000000000 --- a/okhttp-logging-interceptor/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - logging-interceptor - OkHttp Logging Interceptor - - - - ${project.groupId} - okhttp - ${project.version} - - - com.google.code.findbugs - jsr305 - provided - - - - junit - junit - test - - - ${project.groupId} - mockwebserver - ${project.version} - test - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - ${project.groupId} - okhttp-tls - ${project.version} - test - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.logging - - - - - - - diff --git a/okhttp-sse/build.gradle b/okhttp-sse/build.gradle new file mode 100644 index 000000000000..5d8c5c6c43af --- /dev/null +++ b/okhttp-sse/build.gradle @@ -0,0 +1,16 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3.sse') + } +} + +dependencies { + api project(':okhttp') + compileOnly deps.jsr305 + + testImplementation project(':okhttp-testing-support') + testImplementation project(':mockwebserver') + testImplementation deps.junit + testImplementation deps.assertj + testCompileOnly deps.jsr305 +} diff --git a/okhttp-sse/pom.xml b/okhttp-sse/pom.xml deleted file mode 100644 index 837ad8e55eab..000000000000 --- a/okhttp-sse/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-sse - OkHttp Server-Sent Events - - - - ${project.groupId} - okhttp - ${project.version} - - - com.google.code.findbugs - jsr305 - provided - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - - junit - junit - test - - - ${project.groupId} - mockwebserver - ${project.version} - test - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - okhttp3.internal:okhttp3.internal.* - - http://square.github.io/okhttp/javadoc/ - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.sse - - - - - - - diff --git a/okhttp-testing-support/build.gradle b/okhttp-testing-support/build.gradle new file mode 100644 index 000000000000..ec110821fe34 --- /dev/null +++ b/okhttp-testing-support/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api project(':okhttp') + api deps.junit + api deps.assertj + compileOnly deps.jsr305 +} diff --git a/okhttp-testing-support/pom.xml b/okhttp-testing-support/pom.xml deleted file mode 100644 index a9a0c666d4e8..000000000000 --- a/okhttp-testing-support/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-testing-support - OkHttp test support classes - - - - junit - junit - true - - - ${project.groupId} - okhttp - ${project.version} - - - com.google.code.findbugs - jsr305 - provided - - - org.assertj - assertj-core - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.testing - - - - - - - diff --git a/okhttp-tests/build.gradle b/okhttp-tests/build.gradle new file mode 100644 index 000000000000..ab2de8a6a23c --- /dev/null +++ b/okhttp-tests/build.gradle @@ -0,0 +1,13 @@ +dependencies { + testImplementation deps.okio + testImplementation project(':okhttp') + testImplementation project(':okhttp-testing-support') + testImplementation project(':okhttp-tls') + testImplementation project(':okhttp-urlconnection') + testImplementation project(':mockwebserver') + testImplementation project(':okhttp-logging-interceptor') + testImplementation deps.conscrypt + testImplementation deps.junit + testImplementation deps.assertj + testCompileOnly deps.jsr305 +} diff --git a/okhttp-tests/pom.xml b/okhttp-tests/pom.xml deleted file mode 100644 index 06d352bd949c..000000000000 --- a/okhttp-tests/pom.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-tests - OkHttp Tests - - - - com.squareup.okio - okio - - - com.google.code.findbugs - jsr305 - provided - - - ${project.groupId} - okhttp - ${project.version} - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - ${project.groupId} - okhttp-tls - ${project.version} - test - - - ${project.groupId} - okhttp-urlconnection - ${project.version} - - - org.conscrypt - conscrypt-openjdk-uber - - - - junit - junit - test - - - ${project.groupId} - mockwebserver - ${project.version} - test - - - ${project.groupId} - logging-interceptor - ${project.version} - test - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.1.0 - - - jar-with-dependencies - - - - okhttp3.AutobahnTester - - - - - - package - - single - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 2.8.2 - - true - - - - - diff --git a/okhttp-tests/src/main/java/okhttp3/AutobahnTester.java b/okhttp-tests/src/test/java/okhttp3/AutobahnTester.java similarity index 100% rename from okhttp-tests/src/main/java/okhttp3/AutobahnTester.java rename to okhttp-tests/src/test/java/okhttp3/AutobahnTester.java diff --git a/okhttp-tests/src/main/java/okhttp3/TestTls13Request.java b/okhttp-tests/src/test/java/okhttp3/TestTls13Request.java similarity index 100% rename from okhttp-tests/src/main/java/okhttp3/TestTls13Request.java rename to okhttp-tests/src/test/java/okhttp3/TestTls13Request.java diff --git a/okhttp-tests/src/test/java/okhttp3/internal/tls/CertificatePinnerChainValidationTest.java b/okhttp-tests/src/test/java/okhttp3/internal/tls/CertificatePinnerChainValidationTest.java index f707064cd9c2..3df548f3bada 100644 --- a/okhttp-tests/src/test/java/okhttp3/internal/tls/CertificatePinnerChainValidationTest.java +++ b/okhttp-tests/src/test/java/okhttp3/internal/tls/CertificatePinnerChainValidationTest.java @@ -180,6 +180,9 @@ public final class CertificatePinnerChainValidationTest { } @Test public void unrelatedPinnedLeafCertificateInChain() throws Exception { + // https://github.com/square/okhttp/issues/4729 + assumeFalse(getJvmSpecVersion().equals("11")); + // Start with a trusted root CA certificate. HeldCertificate rootCa = new HeldCertificate.Builder() .serialNumber(1L) @@ -255,6 +258,9 @@ public final class CertificatePinnerChainValidationTest { } @Test public void unrelatedPinnedIntermediateCertificateInChain() throws Exception { + // https://github.com/square/okhttp/issues/4729 + assumeFalse(getJvmSpecVersion().equals("11")); + // Start with two root CA certificates, one is good and the other is compromised. HeldCertificate rootCa = new HeldCertificate.Builder() .serialNumber(1L) diff --git a/okhttp-tls/build.gradle b/okhttp-tls/build.gradle new file mode 100644 index 000000000000..cf3c4fdfea31 --- /dev/null +++ b/okhttp-tls/build.gradle @@ -0,0 +1,16 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3.tls') + } +} + +dependencies { + api deps.okio + implementation project(':okhttp') + implementation deps.bouncycastle + compileOnly deps.jsr305 + + testImplementation project(':okhttp-testing-support') + testImplementation deps.junit + testImplementation deps.assertj +} diff --git a/okhttp-tls/pom.xml b/okhttp-tls/pom.xml deleted file mode 100644 index b49ada1ce0fd..000000000000 --- a/okhttp-tls/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-tls - OkHttp Transport Layer Security (TLS) - - - - ${project.groupId} - okhttp - ${project.version} - - - com.google.code.findbugs - jsr305 - provided - - - org.bouncycastle - bcprov-jdk15on - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - - junit - junit - test - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - okhttp3.tls.internal:okhttp3.tls.internal.* - - http://square.github.io/okhttp/javadoc/ - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.tls - - - - - - - diff --git a/okhttp-urlconnection/build.gradle b/okhttp-urlconnection/build.gradle new file mode 100644 index 000000000000..8183e88861e1 --- /dev/null +++ b/okhttp-urlconnection/build.gradle @@ -0,0 +1,17 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3.urlconnection') + } +} + +dependencies { + api project(':okhttp') + compileOnly deps.jsr305 + compileOnly deps.animalSniffer + + testImplementation project(':okhttp-testing-support') + testImplementation project(':okhttp-tls') + testImplementation project(':mockwebserver') + testImplementation deps.junit + testImplementation deps.assertj +} diff --git a/okhttp-urlconnection/pom.xml b/okhttp-urlconnection/pom.xml deleted file mode 100644 index 7f7ce799a631..000000000000 --- a/okhttp-urlconnection/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp-urlconnection - OkHttp URLConnection - - - - com.google.code.findbugs - jsr305 - provided - - - org.codehaus.mojo - animal-sniffer-annotations - ${animal.sniffer.version} - true - - - ${project.groupId} - okhttp - ${project.version} - - - ${project.groupId} - okhttp-testing-support - ${project.version} - test - - - ${project.groupId} - okhttp-tls - ${project.version} - test - - - - junit - junit - test - - - ${project.groupId} - mockwebserver - ${project.version} - test - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - okhttp3.internal:okhttp3.internal.* - - http://square.github.io/okhttp/javadoc/ - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3.urlconnection - - - - - - - diff --git a/okhttp/build.gradle b/okhttp/build.gradle new file mode 100644 index 000000000000..ef28c857f782 --- /dev/null +++ b/okhttp/build.gradle @@ -0,0 +1,31 @@ +jar { + manifest { + attributes('Automatic-Module-Name': 'okhttp3') + } +} + +sourceSets { + main.java.srcDirs += "$buildDir/generated/sources/java-templates/java/main" +} + +compileJava { + dependsOn 'copyJavaTemplates' +} + +task copyJavaTemplates(type: Copy) { + from 'src/main/java-templates' + into "$buildDir/generated/sources/java-templates/java/main" + expand('projectVersion': "$VERSION_NAME") + filteringCharset = 'UTF-8' +} + +dependencies { + api deps.okio + compileOnly deps.conscrypt + compileOnly deps.android + compileOnly deps.jsr305 + compileOnly deps.animalSniffer + + testImplementation deps.junit + testImplementation deps.assertj +} diff --git a/okhttp/pom.xml b/okhttp/pom.xml deleted file mode 100644 index e365a32958ac..000000000000 --- a/okhttp/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - okhttp - OkHttp - - - - com.squareup.okio - okio - - - org.conscrypt - conscrypt-openjdk-uber - provided - - - com.google.android - android - provided - - - com.google.code.findbugs - jsr305 - provided - - - org.codehaus.mojo - animal-sniffer-annotations - 1.17 - provided - - - - - - - org.codehaus.mojo - templating-maven-plugin - 1.0.0 - - - - filter-sources - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - okhttp3.internal:okhttp3.internal.* - - http://square.github.io/okio/ - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.1 - - - - okhttp3 - - - - - - - diff --git a/okhttp/src/main/java-templates/okhttp3/internal/Version.java b/okhttp/src/main/java-templates/okhttp3/internal/Version.java index fce1c067c085..52e06085690d 100644 --- a/okhttp/src/main/java-templates/okhttp3/internal/Version.java +++ b/okhttp/src/main/java-templates/okhttp3/internal/Version.java @@ -17,7 +17,7 @@ public final class Version { public static String userAgent() { - return "okhttp/${project.version}"; + return "okhttp/${projectVersion}"; } private Version() { diff --git a/pom.xml b/pom.xml deleted file mode 100644 index e3b8b5279dba..000000000000 --- a/pom.xml +++ /dev/null @@ -1,740 +0,0 @@ - - - - 4.0.0 - - - org.sonatype.oss - oss-parent - 7 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - pom - - OkHttp (Parent) - An HTTP+HTTP/2 client for Android and Java applications - https://github.com/square/okhttp - - - okhttp - okhttp-tests - - okhttp-sse - okhttp-testing-support - okhttp-tls - okhttp-urlconnection - - okhttp-logging-interceptor - - okhttp-dnsoverhttps - - okcurl - mockwebserver - samples - - - - UTF-8 - - - 0.8 - 4.1.1.4 - 1.17 - 1.60 - 27.0.1-jre - 1.8 - 1.8.0 - 0.22 - 1.17.2 - 2.0.0 - - - 4.12 - 3.11.0 - - - platform - - - - https://github.com/square/okhttp/ - scm:git:https://github.com/square/okhttp.git - scm:git:git@github.com:square/okhttp.git - HEAD - - - - GitHub Issues - https://github.com/square/okhttp/issues - - - - - Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - - - com.squareup.okio - okio - ${okio.version} - - - com.google.code.findbugs - jsr305 - 3.0.2 - provided - - - junit - junit - ${junit.version} - - - org.bouncycastle - bcprov-jdk15on - ${bouncycastle.version} - - - io.airlift - airline - ${airlift.version} - - - com.google.guava - guava - ${guava.version} - - - com.google.android - android - ${android.version} - - - com.squareup.moshi - moshi - ${moshi.version} - - - com.github.jnr - jnr-unixsocket - ${jnr-unixsocket.version} - - - org.conscrypt - conscrypt-openjdk-uber - ${conscrypt.version} - - - org.assertj - assertj-core - ${assertj.version} - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.0 - - ${java.version} - ${java.version} - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.1 - - - ${okhttp.platform} - - true - - - - listener - okhttp3.testing.InstallUncaughtExceptionHandlerListener - - - - - - org.apache.maven.surefire - surefire-junit47 - 2.22.1 - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.0.1 - - false - none - - - - - - - - org.apache.maven.plugins - maven-release-plugin - 2.5.3 - - true - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - com.puppycrawl.tools - checkstyle - 8.18 - - - - true - checkstyle.xml - true - **/CipherSuite.java - - - - verify - - checkstyle - - - - - - org.codehaus.mojo - animal-sniffer-maven-plugin - ${animal.sniffer.version} - - - sniff-java18 - test - - check - - - - org.codehaus.mojo.signature - java18 - 1.0 - - - - - sniff-android5 - test - - check - - - - net.sf.androidscents.signature - android-api-level-21 - 5.0.1_r2 - - - - - - - - - - - errorprone - - 1.8 - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.0 - - javac-with-errorprone - true - ${java.version} - ${java.version} - - - - org.codehaus.plexus - plexus-compiler-javac-errorprone - 2.8.5 - - - com.google.errorprone - error_prone_core - 2.3.2 - - - - - - - - javadoc-lenient - - - 11 - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - - - - - - - alpn-when-jdk8 - - 1.8 - - - - ${settings.localRepository}/org/mortbay/jetty/alpn/alpn-boot/${alpn.jdk8.version}/alpn-boot-${alpn.jdk8.version}.jar - - jdk-with-jetty-boot - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - -Xbootclasspath/p:${bootclasspathPrefix} -Xms512m -Xmx512m - - - - org.mortbay.jetty.alpn - alpn-boot - ${alpn.jdk8.version} - - - - - - - - - jdk9 - - 9 - - - jdk9 - - - - jdk10 - - 10 - - - jdk9 - - - - jdk11 - - 11 - - - jdk9 - - - - jdk12 - - 12 - - - jdk9 - - - - conscrypt - - conscrypt - - - - org.conscrypt - conscrypt-openjdk-uber - - - - - - - - alpn-when-jdk8_05 - - 1.8.0_05 - - - 8.1.0.v20141016 - - - - alpn-when-jdk8_11 - - 1.8.0_11 - - - 8.1.0.v20141016 - - - - alpn-when-jdk8_20 - - 1.8.0_20 - - - 8.1.0.v20141016 - - - - alpn-when-jdk8_25 - - 1.8.0_25 - - - 8.1.2.v20141202 - - - - alpn-when-jdk8_31 - - 1.8.0_31 - - - 8.1.3.v20150130 - - - - alpn-when-jdk8_40 - - 1.8.0_40 - - - 8.1.3.v20150130 - - - - alpn-when-jdk8_45 - - 1.8.0_45 - - - 8.1.3.v20150130 - - - - alpn-when-jdk8_51 - - 1.8.0_51 - - - 8.1.4.v20150727 - - - - alpn-when-jdk8_60 - - 1.8.0_60 - - - 8.1.5.v20150921 - - - - alpn-when-jdk8_65 - - 1.8.0_65 - - - 8.1.6.v20151105 - - - - alpn-when-jdk8_66 - - 1.8.0_66 - - - 8.1.6.v20151105 - - - - alpn-when-jdk8_71 - - 1.8.0_71 - - - 8.1.7.v20160121 - - - - alpn-when-jdk8_72 - - 1.8.0_72 - - - 8.1.7.v20160121 - - - - alpn-when-jdk8_73 - - 1.8.0_73 - - - 8.1.7.v20160121 - - - - alpn-when-jdk8_74 - - 1.8.0_74 - - - 8.1.7.v20160121 - - - - alpn-when-jdk8_77 - - 1.8.0_77 - - - 8.1.7.v20160121 - - - - alpn-when-jdk8_91 - - 1.8.0_91 - - - 8.1.7.v20160121 - - - - alpn-when-jdk8_92 - - 1.8.0_92 - - - 8.1.8.v20160420 - - - - alpn-when-jdk8_101 - - 1.8.0_101 - - - 8.1.8.v20160420 - - - - alpn-when-jdk8_102 - - 1.8.0_102 - - - 8.1.9.v20160720 - - - - alpn-when-jdk8_111 - - 1.8.0_111 - - - 8.1.9.v20160720 - - - - alpn-when-jdk8_112 - - 1.8.0_112 - - - 8.1.9.v20160720 - - - - alpn-when-jdk8_121 - - 1.8.0_121 - - - 8.1.11.v20170118 - - - - alpn-when-jdk8_131 - - 1.8.0_131 - - - 8.1.11.v20170118 - - - - alpn-when-jdk8_141 - - 1.8.0_141 - - - 8.1.11.v20170118 - - - - alpn-when-jdk8_144 - - 1.8.0_144 - - - 8.1.11.v20170118 - - - - alpn-when-jdk8_151 - - 1.8.0_151 - - - 8.1.11.v20170118 - - - - alpn-when-jdk8_152 - - 1.8.0_152 - - - 8.1.11.v20170118 - - - - alpn-when-jdk8_161 - - 1.8.0_161 - - - 8.1.12.v20180117 - - - - alpn-when-jdk8_162 - - 1.8.0_162 - - - 8.1.12.v20180117 - - - - alpn-when-jdk8_171 - - 1.8.0_171 - - - 8.1.12.v20180117 - - - - alpn-when-jdk8_172 - - 1.8.0_172 - - - 8.1.12.v20180117 - - - - alpn-when-jdk8_181 - - 1.8.0_181 - - - 8.1.12.v20180117 - - - - alpn-when-jdk8_191 - - 1.8.0_191 - - - 8.1.13.v20181017 - - - - alpn-when-jdk8_192 - - 1.8.0_192 - - - 8.1.13.v20181017 - - - - alpn-when-jdk8_201 - - 1.8.0_201 - - - 8.1.13.v20181017 - - - - alpn-when-jdk8_202 - - 1.8.0_202 - - - 8.1.13.v20181017 - - - - diff --git a/samples/crawler/build.gradle b/samples/crawler/build.gradle new file mode 100644 index 000000000000..d9f72bd9c26d --- /dev/null +++ b/samples/crawler/build.gradle @@ -0,0 +1,4 @@ +dependencies { + implementation project(':okhttp') + implementation deps.jsoup +} diff --git a/samples/crawler/pom.xml b/samples/crawler/pom.xml deleted file mode 100644 index 2233d4fa797b..000000000000 --- a/samples/crawler/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3.sample - sample-parent - 3.15.0-SNAPSHOT - - - crawler - Sample: Crawler - - - - com.squareup.okhttp3 - okhttp - ${project.version} - - - org.jsoup - jsoup - 1.11.3 - - - diff --git a/samples/guide/build.gradle b/samples/guide/build.gradle new file mode 100644 index 000000000000..7f2ef895067b --- /dev/null +++ b/samples/guide/build.gradle @@ -0,0 +1,6 @@ +dependencies { + implementation project(':okhttp') + implementation project(':mockwebserver') + implementation project(':okhttp-tls') + implementation deps.moshi +} diff --git a/samples/guide/pom.xml b/samples/guide/pom.xml deleted file mode 100644 index a6f851856cef..000000000000 --- a/samples/guide/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3.sample - sample-parent - 3.15.0-SNAPSHOT - - - guide - Sample: Guide - - - - com.squareup.okhttp3 - okhttp - ${project.version} - - - com.squareup.okhttp3 - mockwebserver - ${project.version} - - - com.squareup.okhttp3 - okhttp-tls - ${project.version} - - - com.squareup.moshi - moshi - - - diff --git a/samples/pom.xml b/samples/pom.xml deleted file mode 100644 index ea0d6a61136e..000000000000 --- a/samples/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3 - parent - 3.15.0-SNAPSHOT - - - com.squareup.okhttp3.sample - sample-parent - pom - Samples (Parent) - - - guide - crawler - simple-client - slack - static-server - unixdomainsockets - - - - - - - org.codehaus.mojo - animal-sniffer-maven-plugin - - - none - - - - - - diff --git a/samples/simple-client/build.gradle b/samples/simple-client/build.gradle new file mode 100644 index 000000000000..f47e38b46ca0 --- /dev/null +++ b/samples/simple-client/build.gradle @@ -0,0 +1,4 @@ +dependencies { + implementation project(':okhttp') + implementation deps.moshi +} diff --git a/samples/simple-client/pom.xml b/samples/simple-client/pom.xml deleted file mode 100644 index d549a0558f06..000000000000 --- a/samples/simple-client/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3.sample - sample-parent - 3.15.0-SNAPSHOT - - - simple-client - Sample: Simple Client - - - - com.squareup.okhttp3 - okhttp - ${project.version} - - - - com.squareup.moshi - moshi - - - diff --git a/samples/slack/build.gradle b/samples/slack/build.gradle new file mode 100644 index 000000000000..b47f85b5a425 --- /dev/null +++ b/samples/slack/build.gradle @@ -0,0 +1,4 @@ +dependencies { + implementation project(':mockwebserver') + implementation deps.moshi +} diff --git a/samples/slack/pom.xml b/samples/slack/pom.xml deleted file mode 100644 index e472be38599c..000000000000 --- a/samples/slack/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3.sample - sample-parent - 3.15.0-SNAPSHOT - - - slack - Sample: Slack - - - - com.squareup.okhttp3 - mockwebserver - ${project.version} - - - com.squareup.moshi - moshi - - - diff --git a/samples/static-server/build.gradle b/samples/static-server/build.gradle new file mode 100644 index 000000000000..eb5f9e663c71 --- /dev/null +++ b/samples/static-server/build.gradle @@ -0,0 +1,14 @@ +jar { + manifest { + attributes 'Main-Class': 'okhttp3.sample.SampleServer' + } +} + +dependencies { + implementation project(':mockwebserver') +} + +apply plugin: 'com.github.johnrengelman.shadow' +shadowJar { + mergeServiceFiles() +} diff --git a/samples/static-server/pom.xml b/samples/static-server/pom.xml deleted file mode 100644 index 532840ca6f0c..000000000000 --- a/samples/static-server/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3.sample - sample-parent - 3.15.0-SNAPSHOT - - - static-server - Sample: Static Server - - - - com.squareup.okhttp3 - mockwebserver - ${project.version} - - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.1 - - true - shaded - - - - okhttp3.sample.SampleServer - - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - package - - shade - - - - - - - diff --git a/samples/unixdomainsockets/build.gradle b/samples/unixdomainsockets/build.gradle new file mode 100644 index 000000000000..ea86233a50b2 --- /dev/null +++ b/samples/unixdomainsockets/build.gradle @@ -0,0 +1,5 @@ +dependencies { + implementation project(':okhttp') + implementation project(':mockwebserver') + implementation deps.jnrUnixsocket +} diff --git a/samples/unixdomainsockets/pom.xml b/samples/unixdomainsockets/pom.xml deleted file mode 100644 index 096b65feb309..000000000000 --- a/samples/unixdomainsockets/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - 4.0.0 - - - com.squareup.okhttp3.sample - sample-parent - 3.15.0-SNAPSHOT - - - unixdomainsockets - Sample: UNIX domain sockets - - - - com.squareup.okhttp3 - okhttp - ${project.version} - - - com.squareup.okhttp3 - mockwebserver - ${project.version} - - - com.github.jnr - jnr-unixsocket - - - diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000000..923bdf989116 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,17 @@ +include ':mockwebserver' +include ':okcurl' +include ':okhttp' +include ':okhttp-dnsoverhttps' +include ':okhttp-hpacktests' +include ':okhttp-logging-interceptor' +include ':okhttp-sse' +include ':okhttp-testing-support' +include ':okhttp-tests' +include ':okhttp-tls' +include ':okhttp-urlconnection' +include ':samples:crawler' +include ':samples:guide' +include ':samples:simple-client' +include ':samples:slack' +include ':samples:static-server' +include ':samples:unixdomainsockets' diff --git a/website/index.html b/website/index.html index 2a32b6edc614..02c69c6c9ca3 100644 --- a/website/index.html +++ b/website/index.html @@ -124,7 +124,7 @@

Gradle

Contributing

If you would like to contribute code you can do so through GitHub by forking the repository and sending a pull request.

-

When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also make sure your code compiles by running mvn clean verify.

+

When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also make sure your code compiles by running ./gradlew check.

Some general advice