diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-15 21:47:10 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-15 21:47:10 +0000 |
commit | 0bacdaec55cb5c0bf5ae8aef1c8fac917241e20c (patch) | |
tree | bafe6d115be2559d39c73bfd437bb9d14e3d596a | |
parent | 5852725ee5bc9f5310ef05f2ca7d8207dc6aab47 (diff) | |
parent | 5731f9f9aea90e074693bdfdeb3b58fd218e374d (diff) | |
download | volley-android12-mainline-tzdata3-release.tar.gz |
Snap for 8730993 from 5731f9f9aea90e074693bdfdeb3b58fd218e374d to mainline-tzdata3-releaseaml_tz3_314012070aml_tz3_314012050aml_tz3_314012010aml_tz3_313110000aml_tz3_312511020aml_tz3_312511010aml_tz3_312410020aml_tz3_312410010android12-mainline-tzdata3-releaseaml_tz3_314012010
Change-Id: I13e53f2c5a35a1ead2356b12d78400ef75b96057
-rw-r--r-- | .github/workflows/gradle-build.yaml | 28 | ||||
-rw-r--r-- | .travis.yml | 41 | ||||
-rw-r--r-- | Android.bp | 3 | ||||
-rw-r--r-- | bintray.gradle | 78 | ||||
-rw-r--r-- | build.gradle | 104 | ||||
-rw-r--r-- | consumer-proguard-rules.pro (renamed from core/consumer-proguard-rules.pro) | 0 | ||||
-rw-r--r-- | core/build.gradle | 28 | ||||
-rw-r--r-- | cronet/build.gradle | 24 | ||||
-rw-r--r-- | cronet/src/main/AndroidManifest.xml | 2 | ||||
-rwxr-xr-x | publish-snapshot-on-commit.sh | 16 | ||||
-rw-r--r-- | publish.gradle | 72 | ||||
-rw-r--r-- | rules.gradle | 36 | ||||
-rw-r--r-- | settings.gradle | 4 | ||||
-rw-r--r-- | src/main/AndroidManifest.xml (renamed from core/src/main/AndroidManifest.xml) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/AsyncCache.java (renamed from core/src/main/java/com/android/volley/AsyncCache.java) | 7 | ||||
-rw-r--r-- | src/main/java/com/android/volley/AsyncNetwork.java (renamed from core/src/main/java/com/android/volley/AsyncNetwork.java) | 7 | ||||
-rw-r--r-- | src/main/java/com/android/volley/AsyncRequestQueue.java (renamed from core/src/main/java/com/android/volley/AsyncRequestQueue.java) | 124 | ||||
-rw-r--r-- | src/main/java/com/android/volley/AuthFailureError.java (renamed from core/src/main/java/com/android/volley/AuthFailureError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/Cache.java (renamed from core/src/main/java/com/android/volley/Cache.java) | 12 | ||||
-rw-r--r-- | src/main/java/com/android/volley/CacheDispatcher.java (renamed from core/src/main/java/com/android/volley/CacheDispatcher.java) | 10 | ||||
-rw-r--r-- | src/main/java/com/android/volley/ClientError.java (renamed from core/src/main/java/com/android/volley/ClientError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/DefaultRetryPolicy.java (renamed from core/src/main/java/com/android/volley/DefaultRetryPolicy.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/ExecutorDelivery.java (renamed from core/src/main/java/com/android/volley/ExecutorDelivery.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/Header.java (renamed from core/src/main/java/com/android/volley/Header.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/Network.java (renamed from core/src/main/java/com/android/volley/Network.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/NetworkDispatcher.java (renamed from core/src/main/java/com/android/volley/NetworkDispatcher.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/NetworkError.java (renamed from core/src/main/java/com/android/volley/NetworkError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/NetworkResponse.java (renamed from core/src/main/java/com/android/volley/NetworkResponse.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/NoConnectionError.java (renamed from core/src/main/java/com/android/volley/NoConnectionError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/ParseError.java (renamed from core/src/main/java/com/android/volley/ParseError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/Request.java (renamed from core/src/main/java/com/android/volley/Request.java) | 12 | ||||
-rw-r--r-- | src/main/java/com/android/volley/RequestQueue.java (renamed from core/src/main/java/com/android/volley/RequestQueue.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/RequestTask.java (renamed from core/src/main/java/com/android/volley/RequestTask.java) | 7 | ||||
-rw-r--r-- | src/main/java/com/android/volley/Response.java (renamed from core/src/main/java/com/android/volley/Response.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/ResponseDelivery.java (renamed from core/src/main/java/com/android/volley/ResponseDelivery.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/RetryPolicy.java (renamed from core/src/main/java/com/android/volley/RetryPolicy.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/ServerError.java (renamed from core/src/main/java/com/android/volley/ServerError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/TimeoutError.java (renamed from core/src/main/java/com/android/volley/TimeoutError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/VolleyError.java (renamed from core/src/main/java/com/android/volley/VolleyError.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/VolleyLog.java (renamed from core/src/main/java/com/android/volley/VolleyLog.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/WaitingRequestManager.java (renamed from core/src/main/java/com/android/volley/WaitingRequestManager.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/cronet/CronetHttpStack.java (renamed from cronet/src/main/java/com/android/volley/cronet/CronetHttpStack.java) | 3 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/AdaptedHttpStack.java (renamed from core/src/main/java/com/android/volley/toolbox/AdaptedHttpStack.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/AndroidAuthenticator.java (renamed from core/src/main/java/com/android/volley/toolbox/AndroidAuthenticator.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/AsyncHttpStack.java (renamed from core/src/main/java/com/android/volley/toolbox/AsyncHttpStack.java) | 7 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/Authenticator.java (renamed from core/src/main/java/com/android/volley/toolbox/Authenticator.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/BaseHttpStack.java (renamed from core/src/main/java/com/android/volley/toolbox/BaseHttpStack.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/BasicAsyncNetwork.java (renamed from core/src/main/java/com/android/volley/toolbox/BasicAsyncNetwork.java) | 42 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/BasicNetwork.java (renamed from core/src/main/java/com/android/volley/toolbox/BasicNetwork.java) | 8 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/ByteArrayPool.java (renamed from core/src/main/java/com/android/volley/toolbox/ByteArrayPool.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/ClearCacheRequest.java (renamed from core/src/main/java/com/android/volley/toolbox/ClearCacheRequest.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/DiskBasedCache.java (renamed from core/src/main/java/com/android/volley/toolbox/DiskBasedCache.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/FileSupplier.java (renamed from core/src/main/java/com/android/volley/toolbox/FileSupplier.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/HttpClientStack.java (renamed from core/src/main/java/com/android/volley/toolbox/HttpClientStack.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/HttpHeaderParser.java (renamed from core/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/HttpResponse.java (renamed from core/src/main/java/com/android/volley/toolbox/HttpResponse.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/HttpStack.java (renamed from core/src/main/java/com/android/volley/toolbox/HttpStack.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/HurlStack.java (renamed from core/src/main/java/com/android/volley/toolbox/HurlStack.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/ImageLoader.java (renamed from core/src/main/java/com/android/volley/toolbox/ImageLoader.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/ImageRequest.java (renamed from core/src/main/java/com/android/volley/toolbox/ImageRequest.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/JsonArrayRequest.java (renamed from core/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java) | 7 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/JsonObjectRequest.java (renamed from core/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java) | 37 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/JsonRequest.java (renamed from core/src/main/java/com/android/volley/toolbox/JsonRequest.java) | 10 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/NetworkImageView.java (renamed from core/src/main/java/com/android/volley/toolbox/NetworkImageView.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/NetworkUtility.java (renamed from core/src/main/java/com/android/volley/toolbox/NetworkUtility.java) | 62 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/NoAsyncCache.java (renamed from core/src/main/java/com/android/volley/toolbox/NoAsyncCache.java) | 7 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/NoCache.java (renamed from core/src/main/java/com/android/volley/toolbox/NoCache.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java (renamed from core/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/RequestFuture.java (renamed from core/src/main/java/com/android/volley/toolbox/RequestFuture.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/StringRequest.java (renamed from core/src/main/java/com/android/volley/toolbox/StringRequest.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/Threads.java (renamed from core/src/main/java/com/android/volley/toolbox/Threads.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/UrlRewriter.java (renamed from core/src/main/java/com/android/volley/toolbox/UrlRewriter.java) | 0 | ||||
-rw-r--r-- | src/main/java/com/android/volley/toolbox/Volley.java (renamed from core/src/main/java/com/android/volley/toolbox/Volley.java) | 5 | ||||
-rw-r--r-- | src/test/java/com/android/volley/AsyncRequestQueueTest.java (renamed from core/src/test/java/com/android/volley/AsyncRequestQueueTest.java) | 88 | ||||
-rw-r--r-- | src/test/java/com/android/volley/CacheDispatcherTest.java (renamed from core/src/test/java/com/android/volley/CacheDispatcherTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/NetworkDispatcherTest.java (renamed from core/src/test/java/com/android/volley/NetworkDispatcherTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/NetworkResponseTest.java (renamed from core/src/test/java/com/android/volley/NetworkResponseTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/RequestQueueIntegrationTest.java (renamed from core/src/test/java/com/android/volley/RequestQueueIntegrationTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/RequestQueueTest.java (renamed from core/src/test/java/com/android/volley/RequestQueueTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/RequestTest.java (renamed from core/src/test/java/com/android/volley/RequestTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/ResponseDeliveryTest.java (renamed from core/src/test/java/com/android/volley/ResponseDeliveryTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/cronet/CronetHttpStackTest.java (renamed from cronet/src/test/java/com/android/volley/cronet/CronetHttpStackTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/mock/MockAsyncStack.java (renamed from core/src/test/java/com/android/volley/mock/MockAsyncStack.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/mock/MockHttpStack.java (renamed from core/src/test/java/com/android/volley/mock/MockHttpStack.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/mock/MockRequest.java (renamed from core/src/test/java/com/android/volley/mock/MockRequest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/mock/ShadowSystemClock.java (renamed from core/src/test/java/com/android/volley/mock/ShadowSystemClock.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/mock/TestRequest.java (renamed from testing/src/main/java/com/android/volley/mock/TestRequest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java (renamed from core/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java (renamed from core/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java (renamed from core/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/BasicAsyncNetworkTest.java (renamed from core/src/test/java/com/android/volley/toolbox/BasicAsyncNetworkTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/BasicNetworkTest.java (renamed from core/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java (renamed from core/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/CacheTest.java (renamed from core/src/test/java/com/android/volley/toolbox/CacheTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java (renamed from core/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/HttpClientStackTest.java (renamed from core/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java (renamed from core/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/HttpStackConformanceTest.java (renamed from core/src/test/java/com/android/volley/toolbox/HttpStackConformanceTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/HurlStackTest.java (renamed from core/src/test/java/com/android/volley/toolbox/HurlStackTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/ImageLoaderTest.java (renamed from core/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/ImageRequestTest.java (renamed from core/src/test/java/com/android/volley/toolbox/ImageRequestTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java (renamed from core/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/JsonRequestTest.java (renamed from core/src/test/java/com/android/volley/toolbox/JsonRequestTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java (renamed from core/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java (renamed from core/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/RequestFutureTest.java (renamed from core/src/test/java/com/android/volley/toolbox/RequestFutureTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/RequestQueueTest.java (renamed from core/src/test/java/com/android/volley/toolbox/RequestQueueTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/RequestTest.java (renamed from core/src/test/java/com/android/volley/toolbox/RequestTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/ResponseTest.java (renamed from core/src/test/java/com/android/volley/toolbox/ResponseTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/toolbox/StringRequestTest.java (renamed from core/src/test/java/com/android/volley/toolbox/StringRequestTest.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/utils/CacheTestUtils.java (renamed from core/src/test/java/com/android/volley/utils/CacheTestUtils.java) | 0 | ||||
-rw-r--r-- | src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java (renamed from core/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java) | 0 | ||||
-rw-r--r-- | src/test/resources/org.robolectric.Config.properties (renamed from core/src/test/resources/org.robolectric.Config.properties) | 0 | ||||
-rw-r--r-- | testing/build.gradle | 4 | ||||
-rw-r--r-- | testing/src/main/AndroidManifest.xml | 2 |
115 files changed, 337 insertions, 560 deletions
diff --git a/.github/workflows/gradle-build.yaml b/.github/workflows/gradle-build.yaml deleted file mode 100644 index c42648c..0000000 --- a/.github/workflows/gradle-build.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: Gradle - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Cache Gradle packages - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} - restore-keys: ${{ runner.os }}-gradle - - name: Build with Gradle - run: ./gradlew --continue verifyGoogleJavaFormat build connectedCheck - - name: Publish snapshot - if: github.event_name == 'push' - env: - OSSRH_DEPLOY_USERNAME: ${{ secrets.OSSRH_DEPLOY_USERNAME }} - OSSRH_DEPLOY_PASSWORD: ${{ secrets.OSSRH_DEPLOY_PASSWORD }} - run: ./publish-snapshot-on-commit.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..fb6481a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,41 @@ +language: android +android: + licenses: + - 'android-sdk-preview-license-.+' + - 'android-sdk-license-.+' + - 'google-gdk-license-.+' + + components: + # Workaround to be able to install v28 SDK and build tools. + # See https://github.com/travis-ci/travis-ci/issues/6040 + - tools # to update the repository XML files + - tools # to update the SDK tools themselves + + - platform-tools + - build-tools-28.0.3 + - android-28 + +jdk: + - oraclejdk8 + +# Avoid uploading the cache after every build +# See https://docs.travis-ci.com/user/languages/android/ +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ + - rm -fr $HOME/.gradle/caches/*/classAnalysis/ + - rm -fr $HOME/.gradle/caches/*/workerMain/ +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ + - $HOME/.android/build-cache + +env: + global: + - secure: "ObTSgg1H/RoQwhf9735Cr0OEs7r296aQTKiVOmQYSIxZPzc7o2KveSVV8IVeQ+VQtDxPFij6Odk4gaQSKVytliTlgtSsrEaYt67yWWYLWBLWbnzLNYoWMMy+36O5BK78RNtVJ3Xr1mdMcZ2+SRj2TcEvQBqMWlUkJfEcmJttreq0Wd7jiNitv5MbyYRcd2AvKaqNilx5rEm1ihbE0wT3lH20EdAjjjckaBT04r+VXU9e0dg6tmZjqG8dxGzxYHLRTz7nmKXlUnOJ3steNPrmR/AsGqKW6Ppowi31t3iLpL3zdT0+mvzfvnQwBodqHWSU/JhVDGlePv+4a5aU80s+5nN1IKL7tTLGYWoKdoIuQLovRkdcdkuj8UNyftPj6qOO2C9Tk8j64WXwUIDRnmNfjXbFzqN51oiT94G6hPcEDQSxLwuqlmgNm9I9WxZidb5YotIN2BcIKthAvdL4ecxE5INJvss8DVdYUZ53000GqSoMv8WET6jYkSJPKfvmTgpqqYIW0sgMiDfO/ta/MTFG5kSqECL+sAFZNmugwmTc7NIdy29myCyLH/A6oM4n3QeFDDHhOl2cRYlsX3juzw2goRppR9sEosFN0D1T7Fije5RmJsPgVLGwYMxSGukAHufcatKfhccUVl+haSJ3PLQ1z+25Ug2kpJwMAHbUYWCBnew=" + - secure: "Ac95rbJd5dgNdK8ZlaeXpkKYXHGNj8pm4eNv1Oe8YtsByshHtBAK1m55H4Ex55oRXaLXntvQwnnJfqeTDPuqvd7QP1fjvp4Yjdaqa8MkC6qdVtm6LaqsGuE38uSiU6oxJKfnlCywNe2LfFlbzBtPd3ejNI7tfJcO3s1mD2aBT46vmwUy0t5ESxNdP2zUs6DFcbaOUWeJhQn8iNdRm2VbHEMdevzvvXXIUB9YUdBZQIuAZ5E8NRP5/dzPE8P0CY6/yXqQ/6bkXRV3Pf9QsRzJ+oEQVJAIFfC4JAGasgaBIVpaJ2C2At39jrNFpGYUNbHxvkBEal+WiaPk5TfmVbpyWJOTPRaaY3tIRdBbYf6kklnQk2jRJB6GCi4/yvT6oNjTQQEwsuYlaivkibwNehQqtqyjj12CcTI7lwbgNXeLvIWE6LNLIxrY4pnNy3bKjA0oLFoG/FuP3Wi9WldBtVXwvUBVFFXeOgzP6lCDkzGYTwYZi20lRmSgma3Q5e3/BbPtos3BZ9dSY3lUjttGxvHEDCJ48U1aw6usR91ZKD78Thb5OxWLkvs4rjWEDU2I649wiYSyqFldNEnv+2SJSRB+097XEcnCopGXorlMhBMAlhwHyiRY1u0D+9qrpfIl9Z07j0ZiG5uIscDXQZZjMivqe/+u8NJ3kN0zrDO5BQEgNls=" + +# Publish a SNAPSHOT build for all commits to master. +script: + - ./gradlew --continue verifyGoogleJavaFormat build connectedCheck && ./publish-snapshot-on-commit.sh @@ -36,10 +36,11 @@ java_library { name: "volley", sdk_version: "28", min_sdk_version: "8", - srcs: ["core/src/main/java/**/*.java"], + srcs: ["src/main/java/**/*.java"], // Exclude Cronet support for now. Can be enabled later if/when Cronet is made available as a // compilation dependency for Volley clients. + exclude_srcs: ["src/main/java/com/android/volley/cronet/**/*"], libs: [ // Only needed at compile-time. diff --git a/bintray.gradle b/bintray.gradle new file mode 100644 index 0000000..b642b41 --- /dev/null +++ b/bintray.gradle @@ -0,0 +1,78 @@ +buildscript { + repositories { + jcenter() + } + dependencies { + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.8.1" + } +} + +// apply the plugin with its class name rather than its Id to work around gradle limitation of +// not being able to find the plugin by Id despite the dependencies being added right above. Gradle +// is currently not capable of loading plugins by Id if the dependency is anywhere else than +// in the main project build.gradle. This file is "imported" into the project's build.gradle +// through a "apply from:". +apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin +apply plugin: 'maven-publish' + +task sourcesJar(type: Jar) { + classifier = 'sources' + from android.sourceSets.main.java.srcDirs +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives javadocJar + archives sourcesJar +} + +publishing { + publications { + library(MavenPublication) { + groupId 'com.android.volley' + artifactId 'volley' + version project.version + pom { + packaging 'aar' + licenses { + license { + name = "The Apache License, Version 2.0" + url = "http://www.apache.org/licenses/LICENSE-2.0.txt" + } + } + } + + // Release AAR, Sources, and JavaDoc + artifact "$buildDir/outputs/aar/volley-release.aar" + artifact sourcesJar + artifact javadocJar + } + } +} + +artifactory { + contextUrl = "https://oss.jfrog.org" + publish { + repository { + repoKey = 'oss-snapshot-local' + username = System.env.CI_DEPLOY_USERNAME + password = System.env.CI_DEPLOY_PASSWORD + } + defaults { + publications('library') + publishArtifacts = true + } + } + resolve { + repoKey = 'jcenter' + } +} diff --git a/build.gradle b/build.gradle index b8db952..544771c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,72 +1,76 @@ +// NOTE: The only changes that belong in this file are the definitions +// of tool versions (gradle plugin, compile SDK, build tools), so that +// Volley can be built via gradle as a standalone project. +// +// Any other changes to the build config belong in rules.gradle, which +// is used by projects that depend on Volley but define their own +// tools versions across all dependencies to ensure a consistent build. +// +// Most users should just add this line to settings.gradle: +// include(":volley") +// +// If you have a more complicated Gradle setup you can choose to use +// this instead: +// include(":volley") +// project(':volley').buildFileName = 'rules.gradle' + +import net.ltgt.gradle.errorprone.CheckSeverity + buildscript { repositories { - gradlePluginPortal() jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' - classpath 'gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.6' - // NOTE: 0.7 or newer will require upgrading to a newer Android gradle plugin: - // https://github.com/tbroyer/gradle-errorprone-plugin/commit/65b1026ebeae1b7ed8c28578c7f6eea512c16bea - classpath 'net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:0.6.1' } } -allprojects { - repositories { - jcenter() - google() - } +plugins { + id "com.github.sherter.google-java-format" version "0.6" + // NOTE: 0.7 or newer will require upgrading to a newer Android gradle plugin: + // https://github.com/tbroyer/gradle-errorprone-plugin/commit/65b1026ebeae1b7ed8c28578c7f6eea512c16bea + id "net.ltgt.errorprone" version "0.6.1" } -subprojects { - apply plugin: 'com.github.sherter.google-java-format' - apply plugin: 'net.ltgt.errorprone' - - googleJavaFormat { - toolVersion = '1.5' - options style: 'AOSP' - } - - apply plugin: 'com.android.library' - - dependencies { - // NOTE: Updating ErrorProne introduces new checks that may cause the build to fail. Pin to a - // specific version to control these updates. - errorprone("com.google.errorprone:error_prone_core:2.3.2") - // ErrorProne requires a JDK 9 compiler, so pull one in as a dependency since we use Java 8: - // https://github.com/tbroyer/gradle-errorprone-plugin#jdk-8-support - errorproneJavac("com.google.errorprone:javac:9+181-r4173-1") - } +googleJavaFormat { + toolVersion = '1.5' + options style: 'AOSP' +} - group = 'com.android.volley' - version = '1.2.1-SNAPSHOT' +apply plugin: 'com.android.library' - android { - useLibrary 'org.apache.http.legacy' +repositories { + jcenter() + google() +} - compileSdkVersion 28 - buildToolsVersion = '28.0.3' +dependencies { + // NOTE: Updating ErrorProne introduces new checks that may cause the build to fail. Pin to a + // specific version to control these updates. + errorprone("com.google.errorprone:error_prone_core:2.3.2") + // ErrorProne requires a JDK 9 compiler, so pull one in as a dependency since we use Java 8: + // https://github.com/tbroyer/gradle-errorprone-plugin#jdk-8-support + errorproneJavac("com.google.errorprone:javac:9+181-r4173-1") +} - defaultConfig { - minSdkVersion 8 - } +group = 'com.android.volley' +version = '1.2.0-SNAPSHOT' - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_7 - targetCompatibility JavaVersion.VERSION_1_7 - } - } +android { + compileSdkVersion 28 + buildToolsVersion = '28.0.3' - tasks.withType(JavaCompile) { - options.errorprone { - check("ParameterComment", net.ltgt.gradle.errorprone.CheckSeverity.ERROR) - } - options.compilerArgs << "-Xlint:unchecked" << "-Werror" + defaultConfig { + minSdkVersion 8 } +} - if (it.name != 'testing') { - apply from: '../publish.gradle' +tasks.withType(JavaCompile) { + options.errorprone { + check("ParameterComment", CheckSeverity.ERROR) } } + +apply from: 'rules.gradle' +apply from: 'bintray.gradle' diff --git a/core/consumer-proguard-rules.pro b/consumer-proguard-rules.pro index 38d2cf1..38d2cf1 100644 --- a/core/consumer-proguard-rules.pro +++ b/consumer-proguard-rules.pro diff --git a/core/build.gradle b/core/build.gradle deleted file mode 100644 index 812968c..0000000 --- a/core/build.gradle +++ /dev/null @@ -1,28 +0,0 @@ -android { - defaultConfig { - consumerProguardFiles 'consumer-proguard-rules.pro' - } -} - -dependencies { - implementation "androidx.annotation:annotation:1.0.1" - - testImplementation project(":testing") - testImplementation "junit:junit:4.12" - testImplementation "org.hamcrest:hamcrest-library:1.3" - testImplementation "org.mockito:mockito-core:2.19.0" - testImplementation "org.robolectric:robolectric:3.4.2" -} - -publishing { - publications { - library(MavenPublication) { - artifactId 'volley' - pom { - name = 'Volley' - description = 'An HTTP library that makes networking for Android apps easier and, most importantly, faster.' - } - artifact "$buildDir/outputs/aar/core-release.aar" - } - } -} diff --git a/cronet/build.gradle b/cronet/build.gradle deleted file mode 100644 index 5ee53d6..0000000 --- a/cronet/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -dependencies { - implementation project(":core") - implementation "androidx.annotation:annotation:1.0.1" - compileOnly "org.chromium.net:cronet-embedded:76.3809.111" - - testImplementation project(":testing") - testImplementation "org.chromium.net:cronet-embedded:76.3809.111" - testImplementation "junit:junit:4.12" - testImplementation "org.mockito:mockito-core:2.19.0" - testImplementation "org.robolectric:robolectric:3.4.2" -} - -publishing { - publications { - library(MavenPublication) { - artifactId 'volley-cronet' - pom { - name = 'Volley Cronet' - description = 'Cronet support for Volley.' - } - artifact "$buildDir/outputs/aar/cronet-release.aar" - } - } -} diff --git a/cronet/src/main/AndroidManifest.xml b/cronet/src/main/AndroidManifest.xml deleted file mode 100644 index 0dec093..0000000 --- a/cronet/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest package="com.android.volley.cronet" /> diff --git a/publish-snapshot-on-commit.sh b/publish-snapshot-on-commit.sh index ba02b79..0d0e034 100755 --- a/publish-snapshot-on-commit.sh +++ b/publish-snapshot-on-commit.sh @@ -1,15 +1,13 @@ set -eu -GITHUB_BRANCH=${GITHUB_REF#refs/heads/} +if [ "$TRAVIS_REPO_SLUG" == "google/volley" ] && \ + [ "$TRAVIS_PULL_REQUEST" == "false" ] && \ + [ "$TRAVIS_BRANCH" == "master" ]; then + echo -e "Publishing snapshot build to OJO...\n" -if [ "$GITHUB_REPOSITORY" == "google/volley" ] && \ - [ "$GITHUB_EVENT_NAME" == "push" ] && \ - [ "$GITHUB_BRANCH" == "master" ]; then - echo -e "Publishing snapshot build...\n" + ./gradlew artifactoryPublish - ./gradlew publish - - echo -e "Published snapshot build" + echo -e "Published snapshot build to OJO" else echo -e "Not publishing snapshot" -fi +fi
\ No newline at end of file diff --git a/publish.gradle b/publish.gradle deleted file mode 100644 index 429df4d..0000000 --- a/publish.gradle +++ /dev/null @@ -1,72 +0,0 @@ -apply plugin: 'maven-publish' - -task sourcesJar(type: Jar) { - classifier = 'sources' - from android.sourceSets.main.java.srcDirs -} - -task javadoc(type: Javadoc) { - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) -} - -afterEvaluate { - javadoc.classpath += files(android.libraryVariants.collect { variant -> - variant.getJavaCompile().classpath.files - }) -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives javadocJar - archives sourcesJar -} - -publishing { - publications { - library(MavenPublication) { - groupId 'com.android.volley' - version project.version - pom { - name = 'Volley' - url = 'https://github.com/google/volley' - packaging 'aar' - licenses { - license { - name = "The Apache License, Version 2.0" - url = "http://www.apache.org/licenses/LICENSE-2.0.txt" - } - } - scm { - connection = 'scm:git:git://github.com/google/volley.git' - developerConnection = 'scm:git:ssh://git@github.com/google/volley.git' - url = 'https://github.com/google/volley' - } - developers { - developer { - name = 'The Volley Team' - email = 'noreply+volley@google.com' - } - } - } - - // Release AAR, Sources, and JavaDoc - artifact sourcesJar - artifact javadocJar - } - } - - repositories { - maven { - url = "https://oss.sonatype.org/content/repositories/snapshots/" - credentials { - username = System.env.OSSRH_DEPLOY_USERNAME - password = System.env.OSSRH_DEPLOY_PASSWORD - } - } - } -} diff --git a/rules.gradle b/rules.gradle new file mode 100644 index 0000000..e0aef80 --- /dev/null +++ b/rules.gradle @@ -0,0 +1,36 @@ +// See build.gradle for an explanation of what this file is. + +apply plugin: 'com.android.library' + +android { + useLibrary 'org.apache.http.legacy' + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + + defaultConfig { + consumerProguardFiles 'consumer-proguard-rules.pro' + } +} + +tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:unchecked" << "-Werror" +} + +dependencies { + implementation "androidx.annotation:annotation:1.0.1" + compileOnly "org.chromium.net:cronet-embedded:76.3809.111" +} + +// Check if the android plugin version supports unit testing. +if (configurations.findByName("testImplementation")) { + dependencies { + testImplementation "org.chromium.net:cronet-embedded:76.3809.111" + testImplementation "junit:junit:4.12" + testImplementation "org.hamcrest:hamcrest-library:1.3" + testImplementation "org.mockito:mockito-core:2.19.0" + testImplementation "org.robolectric:robolectric:3.4.2" + } +} diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index ace4000..0000000 --- a/settings.gradle +++ /dev/null @@ -1,4 +0,0 @@ -rootProject.name = 'volley' -include 'core' -include 'cronet' -include 'testing' diff --git a/core/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index ba3a2a7..ba3a2a7 100644 --- a/core/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml diff --git a/core/src/main/java/com/android/volley/AsyncCache.java b/src/main/java/com/android/volley/AsyncCache.java index 8b2dbcc..3cddb4b 100644 --- a/core/src/main/java/com/android/volley/AsyncCache.java +++ b/src/main/java/com/android/volley/AsyncCache.java @@ -18,12 +18,7 @@ package com.android.volley; import androidx.annotation.Nullable; -/** - * Asynchronous equivalent to the {@link Cache} interface. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. - */ +/** Asynchronous equivalent to the {@link Cache} interface. */ public abstract class AsyncCache { public interface OnGetCompleteCallback { diff --git a/core/src/main/java/com/android/volley/AsyncNetwork.java b/src/main/java/com/android/volley/AsyncNetwork.java index 47f35ea..ad19c03 100644 --- a/core/src/main/java/com/android/volley/AsyncNetwork.java +++ b/src/main/java/com/android/volley/AsyncNetwork.java @@ -22,12 +22,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicReference; -/** - * An asynchronous implementation of {@link Network} to perform requests. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. - */ +/** An asynchronous implementation of {@link Network} to perform requests. */ public abstract class AsyncNetwork implements Network { private ExecutorService mBlockingExecutor; private ExecutorService mNonBlockingExecutor; diff --git a/core/src/main/java/com/android/volley/AsyncRequestQueue.java b/src/main/java/com/android/volley/AsyncRequestQueue.java index 7bf8c21..3754866 100644 --- a/core/src/main/java/com/android/volley/AsyncRequestQueue.java +++ b/src/main/java/com/android/volley/AsyncRequestQueue.java @@ -25,10 +25,9 @@ import com.android.volley.AsyncCache.OnGetCompleteCallback; import com.android.volley.AsyncNetwork.OnRequestComplete; import com.android.volley.Cache.Entry; import java.net.HttpURLConnection; -import java.util.ArrayList; import java.util.Comparator; -import java.util.List; import java.util.concurrent.BlockingQueue; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.PriorityBlockingQueue; @@ -42,10 +41,7 @@ import java.util.concurrent.TimeUnit; * An asynchronous request dispatch queue. * * <p>Add requests to the queue with {@link #add(Request)}. Once completed, responses will be - * delivered on the main thread (unless a custom {@link ResponseDelivery} has been provided). - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. + * delivered on the main thread (unless a custom {@link ResponseDelivery} has been provided) */ public class AsyncRequestQueue extends RequestQueue { /** Default number of blocking threads to start. */ @@ -87,17 +83,6 @@ public class AsyncRequestQueue extends RequestQueue { private final WaitingRequestManager mWaitingRequestManager = new WaitingRequestManager(this); /** - * Requests which have been queued before cache initialization has completed. - * - * <p>These requests are kicked off once cache initialization finishes. We avoid enqueuing them - * sooner as the cache may not yet be ready. - */ - private final List<Request<?>> mRequestsAwaitingCacheInitialization = new ArrayList<>(); - - private volatile boolean mIsCacheInitialized = false; - private final Object mCacheInitializationLock = new Object[0]; - - /** * Sets all the variables, but processing does not begin until {@link #start()} is called. * * @param cache to use for persisting responses to disk. If an AsyncCache was provided, then @@ -134,37 +119,34 @@ public class AsyncRequestQueue extends RequestQueue { mNetwork.setNonBlockingExecutor(mNonBlockingExecutor); mNetwork.setNonBlockingScheduledExecutor(mNonBlockingScheduledExecutor); - // Kick off cache initialization, which must complete before any requests can be processed. - if (mAsyncCache != null) { - mNonBlockingExecutor.execute( - new Runnable() { - @Override - public void run() { + mNonBlockingExecutor.execute( + new Runnable() { + @Override + public void run() { + // This is intentionally blocking, because we don't want to process any + // requests until the cache is initialized. + if (mAsyncCache != null) { + final CountDownLatch latch = new CountDownLatch(1); mAsyncCache.initialize( new AsyncCache.OnWriteCompleteCallback() { @Override public void onWriteComplete() { - onCacheInitializationComplete(); + latch.countDown(); } }); - } - }); - } else { - mBlockingExecutor.execute( - new Runnable() { - @Override - public void run() { + try { + latch.await(); + } catch (InterruptedException e) { + VolleyLog.e( + e, "Thread was interrupted while initializing the cache."); + Thread.currentThread().interrupt(); + throw new RuntimeException(e); + } + } else { getCache().initialize(); - mNonBlockingExecutor.execute( - new Runnable() { - @Override - public void run() { - onCacheInitializationComplete(); - } - }); } - }); - } + } + }); } /** Shuts down and nullifies both executors */ @@ -187,17 +169,6 @@ public class AsyncRequestQueue extends RequestQueue { /** Begins the request by sending it to the Cache or Network. */ @Override <T> void beginRequest(Request<T> request) { - // If the cache hasn't been initialized yet, add the request to a temporary queue to be - // flushed once initialization completes. - if (!mIsCacheInitialized) { - synchronized (mCacheInitializationLock) { - if (!mIsCacheInitialized) { - mRequestsAwaitingCacheInitialization.add(request); - return; - } - } - } - // If the request is uncacheable, send it over the network. if (request.shouldCache()) { if (mAsyncCache != null) { @@ -210,20 +181,6 @@ public class AsyncRequestQueue extends RequestQueue { } } - private void onCacheInitializationComplete() { - List<Request<?>> requestsToDispatch; - synchronized (mCacheInitializationLock) { - requestsToDispatch = new ArrayList<>(mRequestsAwaitingCacheInitialization); - mRequestsAwaitingCacheInitialization.clear(); - mIsCacheInitialized = true; - } - - // Kick off any requests that were queued while waiting for cache initialization. - for (Request<?> request : requestsToDispatch) { - beginRequest(request); - } - } - @Override <T> void sendRequestOverNetwork(Request<T> request) { mNonBlockingExecutor.execute(new NetworkTask<>(request)); @@ -273,14 +230,8 @@ public class AsyncRequestQueue extends RequestQueue { return; } - // Use a single instant to evaluate cache expiration. Otherwise, a cache entry with - // identical soft and hard TTL times may appear to be valid when checking isExpired but - // invalid upon checking refreshNeeded(), triggering a soft TTL refresh which should be - // impossible. - long currentTimeMillis = System.currentTimeMillis(); - // If it is completely expired, just send it to the network. - if (entry.isExpired(currentTimeMillis)) { + if (entry.isExpired()) { mRequest.addMarker("cache-hit-expired"); mRequest.setCacheEntry(entry); if (!mWaitingRequestManager.maybeAddToWaitingRequests(mRequest)) { @@ -290,17 +241,15 @@ public class AsyncRequestQueue extends RequestQueue { } // We have a cache hit; parse its data for delivery back to the request. - mBlockingExecutor.execute(new CacheParseTask<>(mRequest, entry, currentTimeMillis)); + mBlockingExecutor.execute(new CacheParseTask<>(mRequest, entry)); } private class CacheParseTask<T> extends RequestTask<T> { Cache.Entry entry; - long startTimeMillis; - CacheParseTask(Request<T> request, Cache.Entry entry, long startTimeMillis) { + CacheParseTask(Request<T> request, Cache.Entry entry) { super(request); this.entry = entry; - this.startTimeMillis = startTimeMillis; } @Override @@ -316,7 +265,7 @@ public class AsyncRequestQueue extends RequestQueue { entry.allResponseHeaders)); mRequest.addMarker("cache-hit-parsed"); - if (!entry.refreshNeeded(startTimeMillis)) { + if (!entry.refreshNeeded()) { // Completely unexpired cache hit. Just deliver the response. getResponseDelivery().postResponse(mRequest, response); } else { @@ -487,24 +436,17 @@ public class AsyncRequestQueue extends RequestQueue { } /** - * Factory to create/provide the executors which Volley will use. - * - * <p>This class may be used by advanced applications to provide custom executors according to - * their needs. - * - * <p>For applications which rely on setting request priority via {@link Request#getPriority}, a - * task queue is provided which will prioritize requests of higher priority should the thread - * pool itself be exhausted. If a shared pool is provided which does not make use of the given - * queue, then lower-priority requests may have tasks executed before higher-priority requests - * when enough tasks are in flight to fully saturate the shared pool. + * This class may be used by advanced applications to provide custom executors according to + * their needs. Apps must create ExecutorServices dynamically given a blocking queue rather than + * providing them directly so that Volley can provide a PriorityQueue which will prioritize + * requests according to Request#getPriority. */ public abstract static class ExecutorFactory { - public abstract ExecutorService createNonBlockingExecutor( - BlockingQueue<Runnable> taskQueue); + abstract ExecutorService createNonBlockingExecutor(BlockingQueue<Runnable> taskQueue); - public abstract ExecutorService createBlockingExecutor(BlockingQueue<Runnable> taskQueue); + abstract ExecutorService createBlockingExecutor(BlockingQueue<Runnable> taskQueue); - public abstract ScheduledExecutorService createNonBlockingScheduledExecutor(); + abstract ScheduledExecutorService createNonBlockingScheduledExecutor(); } /** Provides a BlockingQueue to be used to create executors. */ diff --git a/core/src/main/java/com/android/volley/AuthFailureError.java b/src/main/java/com/android/volley/AuthFailureError.java index fc6417e..fc6417e 100644 --- a/core/src/main/java/com/android/volley/AuthFailureError.java +++ b/src/main/java/com/android/volley/AuthFailureError.java diff --git a/core/src/main/java/com/android/volley/Cache.java b/src/main/java/com/android/volley/Cache.java index 7348d0f..b8908ac 100644 --- a/core/src/main/java/com/android/volley/Cache.java +++ b/src/main/java/com/android/volley/Cache.java @@ -102,20 +102,12 @@ public interface Cache { /** True if the entry is expired. */ public boolean isExpired() { - return isExpired(System.currentTimeMillis()); - } - - boolean isExpired(long currentTimeMillis) { - return this.ttl < currentTimeMillis; + return this.ttl < System.currentTimeMillis(); } /** True if a refresh is needed from the original data source. */ public boolean refreshNeeded() { - return refreshNeeded(System.currentTimeMillis()); - } - - boolean refreshNeeded(long currentTimeMillis) { - return this.softTtl < currentTimeMillis; + return this.softTtl < System.currentTimeMillis(); } } } diff --git a/core/src/main/java/com/android/volley/CacheDispatcher.java b/src/main/java/com/android/volley/CacheDispatcher.java index 4443143..1bfc0ea 100644 --- a/core/src/main/java/com/android/volley/CacheDispatcher.java +++ b/src/main/java/com/android/volley/CacheDispatcher.java @@ -138,14 +138,8 @@ public class CacheDispatcher extends Thread { return; } - // Use a single instant to evaluate cache expiration. Otherwise, a cache entry with - // identical soft and hard TTL times may appear to be valid when checking isExpired but - // invalid upon checking refreshNeeded(), triggering a soft TTL refresh which should be - // impossible. - long currentTimeMillis = System.currentTimeMillis(); - // If it is completely expired, just send it to the network. - if (entry.isExpired(currentTimeMillis)) { + if (entry.isExpired()) { request.addMarker("cache-hit-expired"); request.setCacheEntry(entry); if (!mWaitingRequestManager.maybeAddToWaitingRequests(request)) { @@ -170,7 +164,7 @@ public class CacheDispatcher extends Thread { } return; } - if (!entry.refreshNeeded(currentTimeMillis)) { + if (!entry.refreshNeeded()) { // Completely unexpired cache hit. Just deliver the response. mDelivery.postResponse(request, response); } else { diff --git a/core/src/main/java/com/android/volley/ClientError.java b/src/main/java/com/android/volley/ClientError.java index 521b76f..521b76f 100644 --- a/core/src/main/java/com/android/volley/ClientError.java +++ b/src/main/java/com/android/volley/ClientError.java diff --git a/core/src/main/java/com/android/volley/DefaultRetryPolicy.java b/src/main/java/com/android/volley/DefaultRetryPolicy.java index 4be6b50..4be6b50 100644 --- a/core/src/main/java/com/android/volley/DefaultRetryPolicy.java +++ b/src/main/java/com/android/volley/DefaultRetryPolicy.java diff --git a/core/src/main/java/com/android/volley/ExecutorDelivery.java b/src/main/java/com/android/volley/ExecutorDelivery.java index fd992f9..fd992f9 100644 --- a/core/src/main/java/com/android/volley/ExecutorDelivery.java +++ b/src/main/java/com/android/volley/ExecutorDelivery.java diff --git a/core/src/main/java/com/android/volley/Header.java b/src/main/java/com/android/volley/Header.java index cd9c6ec..cd9c6ec 100644 --- a/core/src/main/java/com/android/volley/Header.java +++ b/src/main/java/com/android/volley/Header.java diff --git a/core/src/main/java/com/android/volley/Network.java b/src/main/java/com/android/volley/Network.java index 16d5858..16d5858 100644 --- a/core/src/main/java/com/android/volley/Network.java +++ b/src/main/java/com/android/volley/Network.java diff --git a/core/src/main/java/com/android/volley/NetworkDispatcher.java b/src/main/java/com/android/volley/NetworkDispatcher.java index 06057c3..06057c3 100644 --- a/core/src/main/java/com/android/volley/NetworkDispatcher.java +++ b/src/main/java/com/android/volley/NetworkDispatcher.java diff --git a/core/src/main/java/com/android/volley/NetworkError.java b/src/main/java/com/android/volley/NetworkError.java index 6b2b19f..6b2b19f 100644 --- a/core/src/main/java/com/android/volley/NetworkError.java +++ b/src/main/java/com/android/volley/NetworkError.java diff --git a/core/src/main/java/com/android/volley/NetworkResponse.java b/src/main/java/com/android/volley/NetworkResponse.java index cfbc371..cfbc371 100644 --- a/core/src/main/java/com/android/volley/NetworkResponse.java +++ b/src/main/java/com/android/volley/NetworkResponse.java diff --git a/core/src/main/java/com/android/volley/NoConnectionError.java b/src/main/java/com/android/volley/NoConnectionError.java index 185eb35..185eb35 100644 --- a/core/src/main/java/com/android/volley/NoConnectionError.java +++ b/src/main/java/com/android/volley/NoConnectionError.java diff --git a/core/src/main/java/com/android/volley/ParseError.java b/src/main/java/com/android/volley/ParseError.java index 04a9d58..04a9d58 100644 --- a/core/src/main/java/com/android/volley/ParseError.java +++ b/src/main/java/com/android/volley/ParseError.java diff --git a/core/src/main/java/com/android/volley/Request.java b/src/main/java/com/android/volley/Request.java index df0d18f..b60dc74 100644 --- a/core/src/main/java/com/android/volley/Request.java +++ b/src/main/java/com/android/volley/Request.java @@ -135,8 +135,8 @@ public abstract class Request<T> implements Comparable<Request<T>> { * @deprecated Use {@link #Request(int, String, com.android.volley.Response.ErrorListener)}. */ @Deprecated - public Request(String url, Response.ErrorListener errorListener) { - this(Method.DEPRECATED_GET_OR_POST, url, errorListener); + public Request(String url, Response.ErrorListener listener) { + this(Method.DEPRECATED_GET_OR_POST, url, listener); } /** @@ -144,15 +144,11 @@ public abstract class Request<T> implements Comparable<Request<T>> { * error listener. Note that the normal response listener is not provided here as delivery of * responses is provided by subclasses, who have a better idea of how to deliver an * already-parsed response. - * - * @param method the HTTP method to use - * @param url URL to fetch the response from - * @param errorListener Error listener, or null to ignore errors. */ - public Request(int method, String url, @Nullable Response.ErrorListener errorListener) { + public Request(int method, String url, @Nullable Response.ErrorListener listener) { mMethod = method; mUrl = url; - mErrorListener = errorListener; + mErrorListener = listener; setRetryPolicy(new DefaultRetryPolicy()); mDefaultTrafficStatsTag = findDefaultTrafficStatsTag(url); diff --git a/core/src/main/java/com/android/volley/RequestQueue.java b/src/main/java/com/android/volley/RequestQueue.java index 6db0b1c..6db0b1c 100644 --- a/core/src/main/java/com/android/volley/RequestQueue.java +++ b/src/main/java/com/android/volley/RequestQueue.java diff --git a/core/src/main/java/com/android/volley/RequestTask.java b/src/main/java/com/android/volley/RequestTask.java index b429f79..8eeaf2c 100644 --- a/core/src/main/java/com/android/volley/RequestTask.java +++ b/src/main/java/com/android/volley/RequestTask.java @@ -1,11 +1,6 @@ package com.android.volley; -/** - * Abstract runnable that's a task to be completed by the RequestQueue. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. - */ +/** Abstract runnable that's a task to be completed by the RequestQueue. */ public abstract class RequestTask<T> implements Runnable { final Request<T> mRequest; diff --git a/core/src/main/java/com/android/volley/Response.java b/src/main/java/com/android/volley/Response.java index 622bdc4..622bdc4 100644 --- a/core/src/main/java/com/android/volley/Response.java +++ b/src/main/java/com/android/volley/Response.java diff --git a/core/src/main/java/com/android/volley/ResponseDelivery.java b/src/main/java/com/android/volley/ResponseDelivery.java index 10aa137..10aa137 100644 --- a/core/src/main/java/com/android/volley/ResponseDelivery.java +++ b/src/main/java/com/android/volley/ResponseDelivery.java diff --git a/core/src/main/java/com/android/volley/RetryPolicy.java b/src/main/java/com/android/volley/RetryPolicy.java index 3ef26de..3ef26de 100644 --- a/core/src/main/java/com/android/volley/RetryPolicy.java +++ b/src/main/java/com/android/volley/RetryPolicy.java diff --git a/core/src/main/java/com/android/volley/ServerError.java b/src/main/java/com/android/volley/ServerError.java index 84b2eb4..84b2eb4 100644 --- a/core/src/main/java/com/android/volley/ServerError.java +++ b/src/main/java/com/android/volley/ServerError.java diff --git a/core/src/main/java/com/android/volley/TimeoutError.java b/src/main/java/com/android/volley/TimeoutError.java index 227ae08..227ae08 100644 --- a/core/src/main/java/com/android/volley/TimeoutError.java +++ b/src/main/java/com/android/volley/TimeoutError.java diff --git a/core/src/main/java/com/android/volley/VolleyError.java b/src/main/java/com/android/volley/VolleyError.java index 45086da..45086da 100644 --- a/core/src/main/java/com/android/volley/VolleyError.java +++ b/src/main/java/com/android/volley/VolleyError.java diff --git a/core/src/main/java/com/android/volley/VolleyLog.java b/src/main/java/com/android/volley/VolleyLog.java index 8477668..8477668 100644 --- a/core/src/main/java/com/android/volley/VolleyLog.java +++ b/src/main/java/com/android/volley/VolleyLog.java diff --git a/core/src/main/java/com/android/volley/WaitingRequestManager.java b/src/main/java/com/android/volley/WaitingRequestManager.java index 682e339..682e339 100644 --- a/core/src/main/java/com/android/volley/WaitingRequestManager.java +++ b/src/main/java/com/android/volley/WaitingRequestManager.java diff --git a/cronet/src/main/java/com/android/volley/cronet/CronetHttpStack.java b/src/main/java/com/android/volley/cronet/CronetHttpStack.java index 874029b..f3baace 100644 --- a/cronet/src/main/java/com/android/volley/cronet/CronetHttpStack.java +++ b/src/main/java/com/android/volley/cronet/CronetHttpStack.java @@ -53,9 +53,6 @@ import org.chromium.net.UrlResponseInfo; /** * A {@link AsyncHttpStack} that's based on Cronet's fully asynchronous API for network requests. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. */ public class CronetHttpStack extends AsyncHttpStack { diff --git a/core/src/main/java/com/android/volley/toolbox/AdaptedHttpStack.java b/src/main/java/com/android/volley/toolbox/AdaptedHttpStack.java index c75c25f..c75c25f 100644 --- a/core/src/main/java/com/android/volley/toolbox/AdaptedHttpStack.java +++ b/src/main/java/com/android/volley/toolbox/AdaptedHttpStack.java diff --git a/core/src/main/java/com/android/volley/toolbox/AndroidAuthenticator.java b/src/main/java/com/android/volley/toolbox/AndroidAuthenticator.java index f3381ae..f3381ae 100644 --- a/core/src/main/java/com/android/volley/toolbox/AndroidAuthenticator.java +++ b/src/main/java/com/android/volley/toolbox/AndroidAuthenticator.java diff --git a/core/src/main/java/com/android/volley/toolbox/AsyncHttpStack.java b/src/main/java/com/android/volley/toolbox/AsyncHttpStack.java index 4165637..bafab8c 100644 --- a/core/src/main/java/com/android/volley/toolbox/AsyncHttpStack.java +++ b/src/main/java/com/android/volley/toolbox/AsyncHttpStack.java @@ -28,12 +28,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicReference; -/** - * Asynchronous extension of the {@link BaseHttpStack} class. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. - */ +/** Asynchronous extension of the {@link BaseHttpStack} class. */ public abstract class AsyncHttpStack extends BaseHttpStack { private ExecutorService mBlockingExecutor; private ExecutorService mNonBlockingExecutor; diff --git a/core/src/main/java/com/android/volley/toolbox/Authenticator.java b/src/main/java/com/android/volley/toolbox/Authenticator.java index 2ba43db..2ba43db 100644 --- a/core/src/main/java/com/android/volley/toolbox/Authenticator.java +++ b/src/main/java/com/android/volley/toolbox/Authenticator.java diff --git a/core/src/main/java/com/android/volley/toolbox/BaseHttpStack.java b/src/main/java/com/android/volley/toolbox/BaseHttpStack.java index 99a9899..99a9899 100644 --- a/core/src/main/java/com/android/volley/toolbox/BaseHttpStack.java +++ b/src/main/java/com/android/volley/toolbox/BaseHttpStack.java diff --git a/core/src/main/java/com/android/volley/toolbox/BasicAsyncNetwork.java b/src/main/java/com/android/volley/toolbox/BasicAsyncNetwork.java index cdedaff..55892a0 100644 --- a/core/src/main/java/com/android/volley/toolbox/BasicAsyncNetwork.java +++ b/src/main/java/com/android/volley/toolbox/BasicAsyncNetwork.java @@ -29,7 +29,6 @@ import com.android.volley.NetworkResponse; import com.android.volley.Request; import com.android.volley.RequestTask; import com.android.volley.VolleyError; -import com.android.volley.toolbox.NetworkUtility.RetryInfo; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; @@ -37,12 +36,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; -/** - * A network performing Volley requests over an {@link HttpStack}. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. - */ +/** A network performing Volley requests over an {@link HttpStack}. */ public class BasicAsyncNetwork extends AsyncNetwork { private final AsyncHttpStack mAsyncStack; @@ -132,39 +126,13 @@ public class BasicAsyncNetwork extends AsyncNetwork { @Nullable HttpResponse httpResponse, @Nullable byte[] responseContents) { try { - RetryInfo retryInfo = - NetworkUtility.shouldRetryException( - request, exception, requestStartMs, httpResponse, responseContents); - // RetryPolicy#retry may need a background thread, so invoke in the blocking executor. - getBlockingExecutor() - .execute(new InvokeRetryPolicyTask<>(request, retryInfo, callback)); + NetworkUtility.handleException( + request, exception, requestStartMs, httpResponse, responseContents); } catch (VolleyError volleyError) { callback.onError(volleyError); + return; } - } - - private class InvokeRetryPolicyTask<T> extends RequestTask<T> { - final Request<T> request; - final RetryInfo retryInfo; - final OnRequestComplete callback; - - InvokeRetryPolicyTask(Request<T> request, RetryInfo retryInfo, OnRequestComplete callback) { - super(request); - this.request = request; - this.retryInfo = retryInfo; - this.callback = callback; - } - - @Override - public void run() { - try { - NetworkUtility.attemptRetryOnException(request, retryInfo); - // attemptRetryOnException didn't throw, so proceed with the next attempt. - performRequest(request, callback); - } catch (VolleyError e) { - callback.onError(e); - } - } + performRequest(request, callback); } @Override diff --git a/core/src/main/java/com/android/volley/toolbox/BasicNetwork.java b/src/main/java/com/android/volley/toolbox/BasicNetwork.java index 552e628..06427fe 100644 --- a/core/src/main/java/com/android/volley/toolbox/BasicNetwork.java +++ b/src/main/java/com/android/volley/toolbox/BasicNetwork.java @@ -22,7 +22,6 @@ import com.android.volley.Network; import com.android.volley.NetworkResponse; import com.android.volley.Request; import com.android.volley.VolleyError; -import com.android.volley.toolbox.NetworkUtility.RetryInfo; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; @@ -141,11 +140,8 @@ public class BasicNetwork implements Network { } catch (IOException e) { // This will either throw an exception, breaking us from the loop, or will loop // again and retry the request. - RetryInfo retryInfo = - NetworkUtility.shouldRetryException( - request, e, requestStart, httpResponse, responseContents); - // We should already be on a background thread, so we can invoke the retry inline. - NetworkUtility.attemptRetryOnException(request, retryInfo); + NetworkUtility.handleException( + request, e, requestStart, httpResponse, responseContents); } } } diff --git a/core/src/main/java/com/android/volley/toolbox/ByteArrayPool.java b/src/main/java/com/android/volley/toolbox/ByteArrayPool.java index 0134fa2..0134fa2 100644 --- a/core/src/main/java/com/android/volley/toolbox/ByteArrayPool.java +++ b/src/main/java/com/android/volley/toolbox/ByteArrayPool.java diff --git a/core/src/main/java/com/android/volley/toolbox/ClearCacheRequest.java b/src/main/java/com/android/volley/toolbox/ClearCacheRequest.java index 856ef80..856ef80 100644 --- a/core/src/main/java/com/android/volley/toolbox/ClearCacheRequest.java +++ b/src/main/java/com/android/volley/toolbox/ClearCacheRequest.java diff --git a/core/src/main/java/com/android/volley/toolbox/DiskBasedCache.java b/src/main/java/com/android/volley/toolbox/DiskBasedCache.java index d4310e0..d4310e0 100644 --- a/core/src/main/java/com/android/volley/toolbox/DiskBasedCache.java +++ b/src/main/java/com/android/volley/toolbox/DiskBasedCache.java diff --git a/core/src/main/java/com/android/volley/toolbox/FileSupplier.java b/src/main/java/com/android/volley/toolbox/FileSupplier.java index 70898a6..70898a6 100644 --- a/core/src/main/java/com/android/volley/toolbox/FileSupplier.java +++ b/src/main/java/com/android/volley/toolbox/FileSupplier.java diff --git a/core/src/main/java/com/android/volley/toolbox/HttpClientStack.java b/src/main/java/com/android/volley/toolbox/HttpClientStack.java index 1e9e4b0..1e9e4b0 100644 --- a/core/src/main/java/com/android/volley/toolbox/HttpClientStack.java +++ b/src/main/java/com/android/volley/toolbox/HttpClientStack.java diff --git a/core/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java b/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java index 0b29e80..0b29e80 100644 --- a/core/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java +++ b/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java diff --git a/core/src/main/java/com/android/volley/toolbox/HttpResponse.java b/src/main/java/com/android/volley/toolbox/HttpResponse.java index 595f926..595f926 100644 --- a/core/src/main/java/com/android/volley/toolbox/HttpResponse.java +++ b/src/main/java/com/android/volley/toolbox/HttpResponse.java diff --git a/core/src/main/java/com/android/volley/toolbox/HttpStack.java b/src/main/java/com/android/volley/toolbox/HttpStack.java index 85179a7..85179a7 100644 --- a/core/src/main/java/com/android/volley/toolbox/HttpStack.java +++ b/src/main/java/com/android/volley/toolbox/HttpStack.java diff --git a/core/src/main/java/com/android/volley/toolbox/HurlStack.java b/src/main/java/com/android/volley/toolbox/HurlStack.java index 35c6a72..35c6a72 100644 --- a/core/src/main/java/com/android/volley/toolbox/HurlStack.java +++ b/src/main/java/com/android/volley/toolbox/HurlStack.java diff --git a/core/src/main/java/com/android/volley/toolbox/ImageLoader.java b/src/main/java/com/android/volley/toolbox/ImageLoader.java index eece2cf..eece2cf 100644 --- a/core/src/main/java/com/android/volley/toolbox/ImageLoader.java +++ b/src/main/java/com/android/volley/toolbox/ImageLoader.java diff --git a/core/src/main/java/com/android/volley/toolbox/ImageRequest.java b/src/main/java/com/android/volley/toolbox/ImageRequest.java index 32b5aa3..32b5aa3 100644 --- a/core/src/main/java/com/android/volley/toolbox/ImageRequest.java +++ b/src/main/java/com/android/volley/toolbox/ImageRequest.java diff --git a/core/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java b/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java index 9f56746..86ed9e9 100644 --- a/core/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java +++ b/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java @@ -26,10 +26,7 @@ import java.io.UnsupportedEncodingException; import org.json.JSONArray; import org.json.JSONException; -/** - * A request for retrieving a {@link JSONArray} response body at a given URL, allowing for an - * optional {@link JSONArray} to be passed in as part of the request body. - */ +/** A request for retrieving a {@link JSONArray} response body at a given URL. */ public class JsonArrayRequest extends JsonRequest<JSONArray> { /** @@ -63,7 +60,7 @@ public class JsonArrayRequest extends JsonRequest<JSONArray> { super( method, url, - jsonRequest != null ? jsonRequest.toString() : null, + (jsonRequest == null) ? null : jsonRequest.toString(), listener, errorListener); } diff --git a/core/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java b/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java index eccb54b..8dca0ec 100644 --- a/core/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java +++ b/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java @@ -35,55 +35,42 @@ public class JsonObjectRequest extends JsonRequest<JSONObject> { /** * Creates a new request. * + * @param method the HTTP method to use * @param url URL to fetch the JSON from + * @param jsonRequest A {@link JSONObject} to post with the request. Null indicates no + * parameters will be posted along with request. * @param listener Listener to receive the JSON response * @param errorListener Error listener, or null to ignore errors. */ public JsonObjectRequest( - String url, Listener<JSONObject> listener, @Nullable ErrorListener errorListener) { - super(Method.GET, url, null, listener, errorListener); - } - - /** - * Constructor which defaults to <code>GET</code> if <code>jsonRequest</code> is <code>null - * </code> , <code>POST</code> otherwise. - * - * @deprecated Use {@link #JsonObjectRequest(int, String, JSONObject, Listener, ErrorListener)}. - */ - @Deprecated - public JsonObjectRequest( + int method, String url, @Nullable JSONObject jsonRequest, Listener<JSONObject> listener, @Nullable ErrorListener errorListener) { super( - jsonRequest == null ? Method.GET : Method.POST, + method, url, - jsonRequest != null ? jsonRequest.toString() : null, + (jsonRequest == null) ? null : jsonRequest.toString(), listener, errorListener); } /** - * Creates a new request. + * Constructor which defaults to <code>GET</code> if <code>jsonRequest</code> is <code>null + * </code> , <code>POST</code> otherwise. * - * @param method the HTTP method to use - * @param url URL to fetch the JSON from - * @param jsonRequest A {@link JSONObject} to post with the request. Null indicates no - * parameters will be posted along with request. - * @param listener Listener to receive the JSON response - * @param errorListener Error listener, or null to ignore errors. + * @see #JsonObjectRequest(int, String, JSONObject, Listener, ErrorListener) */ public JsonObjectRequest( - int method, String url, @Nullable JSONObject jsonRequest, Listener<JSONObject> listener, @Nullable ErrorListener errorListener) { - super( - method, + this( + jsonRequest == null ? Method.GET : Method.POST, url, - jsonRequest != null ? jsonRequest.toString() : null, + jsonRequest, listener, errorListener); } diff --git a/core/src/main/java/com/android/volley/toolbox/JsonRequest.java b/src/main/java/com/android/volley/toolbox/JsonRequest.java index c2d1fad..bc035ae 100644 --- a/core/src/main/java/com/android/volley/toolbox/JsonRequest.java +++ b/src/main/java/com/android/volley/toolbox/JsonRequest.java @@ -61,16 +61,6 @@ public abstract class JsonRequest<T> extends Request<T> { this(Method.DEPRECATED_GET_OR_POST, url, requestBody, listener, errorListener); } - /** - * Creates a new request. - * - * @param method the HTTP method to use - * @param url URL to fetch the JSON from - * @param requestBody The content to post as the body of the request. Null indicates no - * parameters will be posted along with request. - * @param listener Listener to receive the JSON response - * @param errorListener Error listener, or null to ignore errors. - */ public JsonRequest( int method, String url, diff --git a/core/src/main/java/com/android/volley/toolbox/NetworkImageView.java b/src/main/java/com/android/volley/toolbox/NetworkImageView.java index a24b3e2..a24b3e2 100644 --- a/core/src/main/java/com/android/volley/toolbox/NetworkImageView.java +++ b/src/main/java/com/android/volley/toolbox/NetworkImageView.java diff --git a/core/src/main/java/com/android/volley/toolbox/NetworkUtility.java b/src/main/java/com/android/volley/toolbox/NetworkUtility.java index 58a3bb3..44d5904 100644 --- a/core/src/main/java/com/android/volley/toolbox/NetworkUtility.java +++ b/src/main/java/com/android/volley/toolbox/NetworkUtility.java @@ -42,7 +42,7 @@ import java.util.List; * Utility class for methods that are shared between {@link BasicNetwork} and {@link * BasicAsyncNetwork} */ -final class NetworkUtility { +public final class NetworkUtility { private static final int SLOW_REQUEST_THRESHOLD_MS = 3000; private NetworkUtility() {} @@ -113,45 +113,30 @@ final class NetworkUtility { /** * Attempts to prepare the request for a retry. If there are no more attempts remaining in the - * request's retry policy, the provided exception is thrown. - * - * <p>Must be invoked from a background thread, as client implementations of RetryPolicy#retry - * may make blocking calls. + * request's retry policy, a timeout exception is thrown. * * @param request The request to use. */ - static void attemptRetryOnException(final Request<?> request, final RetryInfo retryInfo) + private static void attemptRetryOnException( + final String logPrefix, final Request<?> request, final VolleyError exception) throws VolleyError { final RetryPolicy retryPolicy = request.getRetryPolicy(); final int oldTimeout = request.getTimeoutMs(); try { - retryPolicy.retry(retryInfo.errorToRetry); + retryPolicy.retry(exception); } catch (VolleyError e) { request.addMarker( - String.format( - "%s-timeout-giveup [timeout=%s]", retryInfo.logPrefix, oldTimeout)); + String.format("%s-timeout-giveup [timeout=%s]", logPrefix, oldTimeout)); throw e; } - request.addMarker(String.format("%s-retry [timeout=%s]", retryInfo.logPrefix, oldTimeout)); - } - - static class RetryInfo { - private final String logPrefix; - private final VolleyError errorToRetry; - - private RetryInfo(String logPrefix, VolleyError errorToRetry) { - this.logPrefix = logPrefix; - this.errorToRetry = errorToRetry; - } + request.addMarker(String.format("%s-retry [timeout=%s]", logPrefix, oldTimeout)); } /** * Based on the exception thrown, decides whether to attempt to retry, or to throw the error. - * - * <p>If this method returns without throwing, {@link #attemptRetryOnException} should be called - * with the provided {@link RetryInfo} to consult the client's retry policy. + * Also handles logging. */ - static RetryInfo shouldRetryException( + static void handleException( Request<?> request, IOException exception, long requestStartMs, @@ -159,7 +144,7 @@ final class NetworkUtility { @Nullable byte[] responseContents) throws VolleyError { if (exception instanceof SocketTimeoutException) { - return new RetryInfo("socket", new TimeoutError()); + attemptRetryOnException("socket", request, new TimeoutError()); } else if (exception instanceof MalformedURLException) { throw new RuntimeException("Bad URL " + request.getUrl(), exception); } else { @@ -168,9 +153,11 @@ final class NetworkUtility { statusCode = httpResponse.getStatusCode(); } else { if (request.shouldRetryConnectionErrors()) { - return new RetryInfo("connection", new NoConnectionError()); + attemptRetryOnException("connection", request, new NoConnectionError()); + return; + } else { + throw new NoConnectionError(exception); } - throw new NoConnectionError(exception); } VolleyLog.e("Unexpected response code %d for %s", statusCode, request.getUrl()); NetworkResponse networkResponse; @@ -186,21 +173,24 @@ final class NetworkUtility { responseHeaders); if (statusCode == HttpURLConnection.HTTP_UNAUTHORIZED || statusCode == HttpURLConnection.HTTP_FORBIDDEN) { - return new RetryInfo("auth", new AuthFailureError(networkResponse)); - } - if (statusCode >= 400 && statusCode <= 499) { + attemptRetryOnException("auth", request, new AuthFailureError(networkResponse)); + } else if (statusCode >= 400 && statusCode <= 499) { // Don't retry other client errors. throw new ClientError(networkResponse); - } - if (statusCode >= 500 && statusCode <= 599) { + } else if (statusCode >= 500 && statusCode <= 599) { if (request.shouldRetryServerErrors()) { - return new RetryInfo("server", new ServerError(networkResponse)); + attemptRetryOnException( + "server", request, new ServerError(networkResponse)); + } else { + throw new ServerError(networkResponse); } + } else { + // 3xx? No reason to retry. + throw new ServerError(networkResponse); } - // Server error and client has opted out of retries, or 3xx. No reason to retry. - throw new ServerError(networkResponse); + } else { + attemptRetryOnException("network", request, new NetworkError()); } - return new RetryInfo("network", new NetworkError()); } } } diff --git a/core/src/main/java/com/android/volley/toolbox/NoAsyncCache.java b/src/main/java/com/android/volley/toolbox/NoAsyncCache.java index 1fda58f..aa4aeea 100644 --- a/core/src/main/java/com/android/volley/toolbox/NoAsyncCache.java +++ b/src/main/java/com/android/volley/toolbox/NoAsyncCache.java @@ -3,12 +3,7 @@ package com.android.volley.toolbox; import com.android.volley.AsyncCache; import com.android.volley.Cache; -/** - * An AsyncCache that doesn't cache anything. - * - * <p><b>WARNING</b>: This API is experimental and subject to breaking changes. Please see - * https://github.com/google/volley/wiki/Asynchronous-Volley for more details. - */ +/** An AsyncCache that doesn't cache anything. */ public class NoAsyncCache extends AsyncCache { @Override public void get(String key, OnGetCompleteCallback callback) { diff --git a/core/src/main/java/com/android/volley/toolbox/NoCache.java b/src/main/java/com/android/volley/toolbox/NoCache.java index 51f9945..51f9945 100644 --- a/core/src/main/java/com/android/volley/toolbox/NoCache.java +++ b/src/main/java/com/android/volley/toolbox/NoCache.java diff --git a/core/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java b/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java index bdcc45e..bdcc45e 100644 --- a/core/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java +++ b/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java diff --git a/core/src/main/java/com/android/volley/toolbox/RequestFuture.java b/src/main/java/com/android/volley/toolbox/RequestFuture.java index f9cbce2..f9cbce2 100644 --- a/core/src/main/java/com/android/volley/toolbox/RequestFuture.java +++ b/src/main/java/com/android/volley/toolbox/RequestFuture.java diff --git a/core/src/main/java/com/android/volley/toolbox/StringRequest.java b/src/main/java/com/android/volley/toolbox/StringRequest.java index df7b386..df7b386 100644 --- a/core/src/main/java/com/android/volley/toolbox/StringRequest.java +++ b/src/main/java/com/android/volley/toolbox/StringRequest.java diff --git a/core/src/main/java/com/android/volley/toolbox/Threads.java b/src/main/java/com/android/volley/toolbox/Threads.java index 66c3e41..66c3e41 100644 --- a/core/src/main/java/com/android/volley/toolbox/Threads.java +++ b/src/main/java/com/android/volley/toolbox/Threads.java diff --git a/core/src/main/java/com/android/volley/toolbox/UrlRewriter.java b/src/main/java/com/android/volley/toolbox/UrlRewriter.java index 8bbb770..8bbb770 100644 --- a/core/src/main/java/com/android/volley/toolbox/UrlRewriter.java +++ b/src/main/java/com/android/volley/toolbox/UrlRewriter.java diff --git a/core/src/main/java/com/android/volley/toolbox/Volley.java b/src/main/java/com/android/volley/toolbox/Volley.java index 6ab34bb..bc65c9c 100644 --- a/core/src/main/java/com/android/volley/toolbox/Volley.java +++ b/src/main/java/com/android/volley/toolbox/Volley.java @@ -21,7 +21,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.net.http.AndroidHttpClient; import android.os.Build; -import androidx.annotation.NonNull; import com.android.volley.Network; import com.android.volley.RequestQueue; import java.io.File; @@ -38,7 +37,6 @@ public class Volley { * @param stack A {@link BaseHttpStack} to use for the network, or null for default. * @return A started {@link RequestQueue} instance. */ - @NonNull public static RequestQueue newRequestQueue(Context context, BaseHttpStack stack) { BasicNetwork network; if (stack == null) { @@ -80,7 +78,6 @@ public class Volley { */ @Deprecated @SuppressWarnings("deprecation") - @NonNull public static RequestQueue newRequestQueue(Context context, HttpStack stack) { if (stack == null) { return newRequestQueue(context, (BaseHttpStack) null); @@ -88,7 +85,6 @@ public class Volley { return newRequestQueue(context, new BasicNetwork(stack)); } - @NonNull private static RequestQueue newRequestQueue(Context context, Network network) { final Context appContext = context.getApplicationContext(); // Use a lazy supplier for the cache directory so that newRequestQueue() can be called on @@ -116,7 +112,6 @@ public class Volley { * @param context A {@link Context} to use for creating the cache dir. * @return A started {@link RequestQueue} instance. */ - @NonNull public static RequestQueue newRequestQueue(Context context) { return newRequestQueue(context, (BaseHttpStack) null); } diff --git a/core/src/test/java/com/android/volley/AsyncRequestQueueTest.java b/src/test/java/com/android/volley/AsyncRequestQueueTest.java index aef4f01..54ff0a1 100644 --- a/core/src/test/java/com/android/volley/AsyncRequestQueueTest.java +++ b/src/test/java/com/android/volley/AsyncRequestQueueTest.java @@ -16,9 +16,6 @@ package com.android.volley; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; @@ -26,8 +23,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; -import com.android.volley.AsyncCache.OnGetCompleteCallback; -import com.android.volley.AsyncCache.OnWriteCompleteCallback; import com.android.volley.mock.ShadowSystemClock; import com.android.volley.toolbox.NoAsyncCache; import com.android.volley.toolbox.StringRequest; @@ -39,7 +34,6 @@ import java.util.concurrent.ScheduledExecutorService; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; @@ -51,13 +45,37 @@ public class AsyncRequestQueueTest { @Mock private AsyncNetwork mMockNetwork; @Mock private ScheduledExecutorService mMockScheduledExecutor; - private final ResponseDelivery mDelivery = new ImmediateResponseDelivery(); private AsyncRequestQueue queue; @Before public void setUp() throws Exception { + ResponseDelivery mDelivery = new ImmediateResponseDelivery(); initMocks(this); - queue = createRequestQueue(new NoAsyncCache()); + queue = + new AsyncRequestQueue.Builder(mMockNetwork) + .setAsyncCache(new NoAsyncCache()) + .setResponseDelivery(mDelivery) + .setExecutorFactory( + new AsyncRequestQueue.ExecutorFactory() { + @Override + public ExecutorService createNonBlockingExecutor( + BlockingQueue<Runnable> taskQueue) { + return MoreExecutors.newDirectExecutorService(); + } + + @Override + public ExecutorService createBlockingExecutor( + BlockingQueue<Runnable> taskQueue) { + return MoreExecutors.newDirectExecutorService(); + } + + @Override + public ScheduledExecutorService + createNonBlockingScheduledExecutor() { + return mMockScheduledExecutor; + } + }) + .build(); } @Test @@ -143,58 +161,4 @@ public class AsyncRequestQueueTest { verifyNoMoreInteractions(listener); queue.stop(); } - - @Test - public void requestsQueuedBeforeCacheInitialization_asyncCache() { - // Create a new queue with a mock cache in order to verify the initialization. - AsyncCache mockAsyncCache = mock(AsyncCache.class); - AsyncRequestQueue queue = createRequestQueue(mockAsyncCache); - queue.start(); - - ArgumentCaptor<OnWriteCompleteCallback> callbackCaptor = - ArgumentCaptor.forClass(OnWriteCompleteCallback.class); - verify(mockAsyncCache).initialize(callbackCaptor.capture()); - - StringRequest req = mock(StringRequest.class); - req.setShouldCache(true); - when(req.getCacheKey()).thenReturn("cache-key"); - queue.add(req); - - // Cache should not be read before initialization completes. - verify(mockAsyncCache, never()).get(anyString(), any(OnGetCompleteCallback.class)); - - callbackCaptor.getValue().onWriteComplete(); - - // Once the write completes, the request should be kicked off (in the form of a cache - // lookup). - verify(mockAsyncCache).get(eq("cache-key"), any(OnGetCompleteCallback.class)); - - queue.stop(); - } - - private AsyncRequestQueue createRequestQueue(AsyncCache asyncCache) { - return new AsyncRequestQueue.Builder(mMockNetwork) - .setResponseDelivery(mDelivery) - .setAsyncCache(asyncCache) - .setExecutorFactory( - new AsyncRequestQueue.ExecutorFactory() { - @Override - public ExecutorService createNonBlockingExecutor( - BlockingQueue<Runnable> taskQueue) { - return MoreExecutors.newDirectExecutorService(); - } - - @Override - public ExecutorService createBlockingExecutor( - BlockingQueue<Runnable> taskQueue) { - return MoreExecutors.newDirectExecutorService(); - } - - @Override - public ScheduledExecutorService createNonBlockingScheduledExecutor() { - return mMockScheduledExecutor; - } - }) - .build(); - } } diff --git a/core/src/test/java/com/android/volley/CacheDispatcherTest.java b/src/test/java/com/android/volley/CacheDispatcherTest.java index aef6785..aef6785 100644 --- a/core/src/test/java/com/android/volley/CacheDispatcherTest.java +++ b/src/test/java/com/android/volley/CacheDispatcherTest.java diff --git a/core/src/test/java/com/android/volley/NetworkDispatcherTest.java b/src/test/java/com/android/volley/NetworkDispatcherTest.java index 74dfe8a..74dfe8a 100644 --- a/core/src/test/java/com/android/volley/NetworkDispatcherTest.java +++ b/src/test/java/com/android/volley/NetworkDispatcherTest.java diff --git a/core/src/test/java/com/android/volley/NetworkResponseTest.java b/src/test/java/com/android/volley/NetworkResponseTest.java index 70210da..70210da 100644 --- a/core/src/test/java/com/android/volley/NetworkResponseTest.java +++ b/src/test/java/com/android/volley/NetworkResponseTest.java diff --git a/core/src/test/java/com/android/volley/RequestQueueIntegrationTest.java b/src/test/java/com/android/volley/RequestQueueIntegrationTest.java index a2bfbc6..a2bfbc6 100644 --- a/core/src/test/java/com/android/volley/RequestQueueIntegrationTest.java +++ b/src/test/java/com/android/volley/RequestQueueIntegrationTest.java diff --git a/core/src/test/java/com/android/volley/RequestQueueTest.java b/src/test/java/com/android/volley/RequestQueueTest.java index ba9b0f8..ba9b0f8 100644 --- a/core/src/test/java/com/android/volley/RequestQueueTest.java +++ b/src/test/java/com/android/volley/RequestQueueTest.java diff --git a/core/src/test/java/com/android/volley/RequestTest.java b/src/test/java/com/android/volley/RequestTest.java index cced39f..cced39f 100644 --- a/core/src/test/java/com/android/volley/RequestTest.java +++ b/src/test/java/com/android/volley/RequestTest.java diff --git a/core/src/test/java/com/android/volley/ResponseDeliveryTest.java b/src/test/java/com/android/volley/ResponseDeliveryTest.java index 6e71c3b..6e71c3b 100644 --- a/core/src/test/java/com/android/volley/ResponseDeliveryTest.java +++ b/src/test/java/com/android/volley/ResponseDeliveryTest.java diff --git a/cronet/src/test/java/com/android/volley/cronet/CronetHttpStackTest.java b/src/test/java/com/android/volley/cronet/CronetHttpStackTest.java index cedb6ff..cedb6ff 100644 --- a/cronet/src/test/java/com/android/volley/cronet/CronetHttpStackTest.java +++ b/src/test/java/com/android/volley/cronet/CronetHttpStackTest.java diff --git a/core/src/test/java/com/android/volley/mock/MockAsyncStack.java b/src/test/java/com/android/volley/mock/MockAsyncStack.java index 5ea8343..5ea8343 100644 --- a/core/src/test/java/com/android/volley/mock/MockAsyncStack.java +++ b/src/test/java/com/android/volley/mock/MockAsyncStack.java diff --git a/core/src/test/java/com/android/volley/mock/MockHttpStack.java b/src/test/java/com/android/volley/mock/MockHttpStack.java index b86e7a0..b86e7a0 100644 --- a/core/src/test/java/com/android/volley/mock/MockHttpStack.java +++ b/src/test/java/com/android/volley/mock/MockHttpStack.java diff --git a/core/src/test/java/com/android/volley/mock/MockRequest.java b/src/test/java/com/android/volley/mock/MockRequest.java index 6fc26b4..6fc26b4 100644 --- a/core/src/test/java/com/android/volley/mock/MockRequest.java +++ b/src/test/java/com/android/volley/mock/MockRequest.java diff --git a/core/src/test/java/com/android/volley/mock/ShadowSystemClock.java b/src/test/java/com/android/volley/mock/ShadowSystemClock.java index 6d75d4b..6d75d4b 100644 --- a/core/src/test/java/com/android/volley/mock/ShadowSystemClock.java +++ b/src/test/java/com/android/volley/mock/ShadowSystemClock.java diff --git a/testing/src/main/java/com/android/volley/mock/TestRequest.java b/src/test/java/com/android/volley/mock/TestRequest.java index f397f01..f397f01 100644 --- a/testing/src/main/java/com/android/volley/mock/TestRequest.java +++ b/src/test/java/com/android/volley/mock/TestRequest.java diff --git a/core/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java b/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java index dbd6535..dbd6535 100644 --- a/core/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java +++ b/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java b/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java index 982eda2..982eda2 100644 --- a/core/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java +++ b/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java b/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java index 1049ad0..1049ad0 100644 --- a/core/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java +++ b/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/BasicAsyncNetworkTest.java b/src/test/java/com/android/volley/toolbox/BasicAsyncNetworkTest.java index 91d4062..91d4062 100644 --- a/core/src/test/java/com/android/volley/toolbox/BasicAsyncNetworkTest.java +++ b/src/test/java/com/android/volley/toolbox/BasicAsyncNetworkTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java b/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java index 3630379..3630379 100644 --- a/core/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java +++ b/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java b/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java index 62da207..62da207 100644 --- a/core/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java +++ b/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/CacheTest.java b/src/test/java/com/android/volley/toolbox/CacheTest.java index 22dae22..22dae22 100644 --- a/core/src/test/java/com/android/volley/toolbox/CacheTest.java +++ b/src/test/java/com/android/volley/toolbox/CacheTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java b/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java index db6e491..db6e491 100644 --- a/core/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java +++ b/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java b/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java index 2a451dc..2a451dc 100644 --- a/core/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java +++ b/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java b/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java index 7780c3e..7780c3e 100644 --- a/core/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java +++ b/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/HttpStackConformanceTest.java b/src/test/java/com/android/volley/toolbox/HttpStackConformanceTest.java index 6794af8..6794af8 100644 --- a/core/src/test/java/com/android/volley/toolbox/HttpStackConformanceTest.java +++ b/src/test/java/com/android/volley/toolbox/HttpStackConformanceTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/HurlStackTest.java b/src/test/java/com/android/volley/toolbox/HurlStackTest.java index 7508244..7508244 100644 --- a/core/src/test/java/com/android/volley/toolbox/HurlStackTest.java +++ b/src/test/java/com/android/volley/toolbox/HurlStackTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java index 59a0b1b..59a0b1b 100644 --- a/core/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java +++ b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/ImageRequestTest.java b/src/test/java/com/android/volley/toolbox/ImageRequestTest.java index 6b50319..6b50319 100644 --- a/core/src/test/java/com/android/volley/toolbox/ImageRequestTest.java +++ b/src/test/java/com/android/volley/toolbox/ImageRequestTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java b/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java index 70bb2ea..70bb2ea 100644 --- a/core/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java +++ b/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/JsonRequestTest.java b/src/test/java/com/android/volley/toolbox/JsonRequestTest.java index 44c0ad9..44c0ad9 100644 --- a/core/src/test/java/com/android/volley/toolbox/JsonRequestTest.java +++ b/src/test/java/com/android/volley/toolbox/JsonRequestTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java b/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java index fd2073e..fd2073e 100644 --- a/core/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java +++ b/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java b/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java index 266edcd..266edcd 100644 --- a/core/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java +++ b/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/RequestFutureTest.java b/src/test/java/com/android/volley/toolbox/RequestFutureTest.java index 5b5c975..5b5c975 100644 --- a/core/src/test/java/com/android/volley/toolbox/RequestFutureTest.java +++ b/src/test/java/com/android/volley/toolbox/RequestFutureTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/RequestQueueTest.java b/src/test/java/com/android/volley/toolbox/RequestQueueTest.java index 1899b71..1899b71 100644 --- a/core/src/test/java/com/android/volley/toolbox/RequestQueueTest.java +++ b/src/test/java/com/android/volley/toolbox/RequestQueueTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/RequestTest.java b/src/test/java/com/android/volley/toolbox/RequestTest.java index 0911ad6..0911ad6 100644 --- a/core/src/test/java/com/android/volley/toolbox/RequestTest.java +++ b/src/test/java/com/android/volley/toolbox/RequestTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/ResponseTest.java b/src/test/java/com/android/volley/toolbox/ResponseTest.java index 44438fa..44438fa 100644 --- a/core/src/test/java/com/android/volley/toolbox/ResponseTest.java +++ b/src/test/java/com/android/volley/toolbox/ResponseTest.java diff --git a/core/src/test/java/com/android/volley/toolbox/StringRequestTest.java b/src/test/java/com/android/volley/toolbox/StringRequestTest.java index 0ecb06b..0ecb06b 100644 --- a/core/src/test/java/com/android/volley/toolbox/StringRequestTest.java +++ b/src/test/java/com/android/volley/toolbox/StringRequestTest.java diff --git a/core/src/test/java/com/android/volley/utils/CacheTestUtils.java b/src/test/java/com/android/volley/utils/CacheTestUtils.java index 5980712..5980712 100644 --- a/core/src/test/java/com/android/volley/utils/CacheTestUtils.java +++ b/src/test/java/com/android/volley/utils/CacheTestUtils.java diff --git a/core/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java b/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java index 67e5923..67e5923 100644 --- a/core/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java +++ b/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java diff --git a/core/src/test/resources/org.robolectric.Config.properties b/src/test/resources/org.robolectric.Config.properties index 9daf692..9daf692 100644 --- a/core/src/test/resources/org.robolectric.Config.properties +++ b/src/test/resources/org.robolectric.Config.properties diff --git a/testing/build.gradle b/testing/build.gradle deleted file mode 100644 index b374088..0000000 --- a/testing/build.gradle +++ /dev/null @@ -1,4 +0,0 @@ -dependencies { - implementation project(":core") -} - diff --git a/testing/src/main/AndroidManifest.xml b/testing/src/main/AndroidManifest.xml deleted file mode 100644 index 24b1376..0000000 --- a/testing/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest package="com.android.volley.testing" /> |