Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: GoogleCloudPlatform/appengine-java-standard
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.0.5
Choose a base ref
...
head repository: GoogleCloudPlatform/appengine-java-standard
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.0.6
Choose a head ref

Commits on May 12, 2022

  1. appengine-jsr107 artifact move to Open Source.

    PiperOrigin-RevId: 448258069
    Change-Id: I6d76a62e5e637e0ae1365d246bb0861def04e048
    ludoch authored and gae-java-bot committed May 12, 2022
    Copy the full SHA
    cc9a140 View commit details

Commits on May 15, 2022

  1. Internal change

    PiperOrigin-RevId: 448764989
    Change-Id: I52aed661b7ebc431a9667e23e36d6e245a8bb479
    kluever authored and gae-java-bot committed May 15, 2022
    Copy the full SHA
    86828be View commit details

Commits on May 16, 2022

  1. Move FailInitializationServlet test in open source extending an exist…

    …ing test web app.
    
    PiperOrigin-RevId: 449002705
    Change-Id: Ie6f0eda11a51a77bee28c5f2de6e1ffca11ed7b0
    ludoch authored and gae-java-bot committed May 16, 2022
    Copy the full SHA
    9679f49 View commit details

Commits on May 23, 2022

  1. Internal change

    PiperOrigin-RevId: 450419146
    Change-Id: I639db840dc2285fbc2c955f73d6f02ab55db0866
    ludoch authored and gae-java-bot committed May 23, 2022
    Copy the full SHA
    ebda46b View commit details
  2. Internal change

    PiperOrigin-RevId: 450453387
    Change-Id: I9f998e73c732b17ecc4bdc602f5280a46a9217a4
    ludoch authored and gae-java-bot committed May 23, 2022
    Copy the full SHA
    bcf3e4c View commit details

Commits on May 24, 2022

  1. Internal change

    PiperOrigin-RevId: 450743586
    Change-Id: Id077ce0d9932f3bfa3c593c50e9697aa68a6d000
    nick-someone authored and gae-java-bot committed May 24, 2022
    Copy the full SHA
    3286fe0 View commit details

Commits on May 25, 2022

  1. Remove annotation usage which is just a compile warning but causing a…

    … lot of issues trying to use the jsr107 jar in internal processes.
    
    PiperOrigin-RevId: 450929598
    Change-Id: I74736e02ae0f37a69bc155f5e5f2af67df867dca
    ludoch authored and gae-java-bot committed May 25, 2022
    Copy the full SHA
    83ddda1 View commit details

Commits on May 31, 2022

  1. Internal change

    PiperOrigin-RevId: 452101026
    Change-Id: Ie2ba5e7964833b2d9876ba93c81fd8416ea27d1e
    ludoch authored and gae-java-bot committed May 31, 2022
    Copy the full SHA
    36e5c30 View commit details

Commits on Jun 2, 2022

  1. Internal change

    PiperOrigin-RevId: 452589752
    Change-Id: I8c452d4052d00ff514903f0b341ab51a958debcd
    ludoch authored and gae-java-bot committed Jun 2, 2022
    Copy the full SHA
    ff3cb0e View commit details

Commits on Jun 6, 2022

  1. In lieu of using a concrete JacksonFactory instance, consumers only n…

    …eed the abstract JsonFactory interface, which implements all the relevant methods. This will allow later swapping out of the implementation detail to use the GsonFactory class.
    
    PiperOrigin-RevId: 453140895
    Change-Id: Ice6e6db95cf7e8fc8840099a550f7a3751659e7e
    gae-java-bot committed Jun 6, 2022
    Copy the full SHA
    70ce7d9 View commit details

Commits on Jun 13, 2022

  1. Internal change

    PiperOrigin-RevId: 454668947
    Change-Id: I82609306a993f320360586892647d839e0c4c511
    gae-java-bot committed Jun 13, 2022
    Copy the full SHA
    3bd3a43 View commit details

Commits on Jun 15, 2022

  1. Internal change

    PiperOrigin-RevId: 455047067
    Change-Id: I7a799e5da9e0ec218ab27d50e60bd82b87988923
    gae-java-bot committed Jun 15, 2022
    Copy the full SHA
    2dc7a2f View commit details

Commits on Jun 17, 2022

  1. Internal change

    PiperOrigin-RevId: 455653260
    Change-Id: I04dad17191ce5d0aa1c02dd453d8cbf07af62a4d
    ludoch authored and gae-java-bot committed Jun 17, 2022
    Copy the full SHA
    3ef656e View commit details

Commits on Jun 27, 2022

  1. Add tests for GAE API compatibility.

    PiperOrigin-RevId: 457475134
    Change-Id: I2d3f154b8ee29df0e302d1429f014e0383ce3424
    ludoch authored and gae-java-bot committed Jun 27, 2022
    Copy the full SHA
    2d87921 View commit details
  2. Reuse repackaged classes from the appengine API jar which is anyway a…

    … runtime dependency for the local devappserver.
    
    PiperOrigin-RevId: 457535301
    Change-Id: I16597aad0048cee7ee0d7c0b94ef5cdc01b56a0f
    ludoch authored and gae-java-bot committed Jun 27, 2022
    Copy the full SHA
    9a79122 View commit details

Commits on Jun 28, 2022

  1. Move tests for appengine-testing library to Open Source.

    PiperOrigin-RevId: 457700358
    Change-Id: Ia130ecd4a015556cc1b9fa5c282ed25a77bb3742
    ludoch authored and gae-java-bot committed Jun 28, 2022
    Copy the full SHA
    bfa7514 View commit details

Commits on Jun 30, 2022

  1. Update to Jetty 9.4.46.v20220331

    PiperOrigin-RevId: 458172461
    Change-Id: I92c4da9e9d7f151fce13a3c208b66fd751d43990
    ludoch authored and gae-java-bot committed Jun 30, 2022
    Copy the full SHA
    359c380 View commit details
  2. Internal change

    PiperOrigin-RevId: 458175137
    Change-Id: I97e07abeee08a51b11b39f4193885b9b470dd17c
    ludoch authored and gae-java-bot committed Jun 30, 2022
    Copy the full SHA
    2a047b8 View commit details
  3. Update war plugin version to 3.3.2

    PiperOrigin-RevId: 458218000
    Change-Id: I12b0fc17b91a5c1f1779daef7d3e4726a099efe8
    ludoch authored and gae-java-bot committed Jun 30, 2022
    Copy the full SHA
    c7baae1 View commit details
  4. Make the test of appengine-testing framework to pass with a JDK17 com…

    …piler.
    
    PiperOrigin-RevId: 458231858
    Change-Id: I59dc92d528374c3c73650975b9ad424c0abae401
    ludoch authored and gae-java-bot committed Jun 30, 2022
    Copy the full SHA
    ba5196a View commit details

Commits on Jul 1, 2022

  1. Add more API open statement (java.base/java.util.concurrent=ALL-UNNAM…

    …ED) due to JDK17 new constraint.
    
    PiperOrigin-RevId: 458395411
    Change-Id: I80ee09f47e67c93df033d52e4493e5731a2b4459
    ludoch authored and gae-java-bot committed Jul 1, 2022
    Copy the full SHA
    985f9ef View commit details

Commits on Jul 8, 2022

  1. Copybara import of the project:

    --
    e24b97c by Greg Wilkins <gregw@webtide.com>:
    
    Fix testUpcomingTimes
    
    The test was dependent on JVM specific formatting of Dates
    
    COPYBARA_INTEGRATE_REVIEW=#15 from webtide:cronEntryTest-testUpcomingTimes e24b97c
    PiperOrigin-RevId: 459791538
    Change-Id: I7f85499a7597f47c9ba7c2e1a25b60106a16f986
    gregw authored and gae-java-bot committed Jul 8, 2022
    Copy the full SHA
    4c75e4c View commit details

Commits on Jul 11, 2022

  1. Migrate use of JacksonFactory to GsonFactory

    PiperOrigin-RevId: 460210064
    Change-Id: Ic906e694c364fb63691d4b0320ee781ef581c576
    gae-java-bot committed Jul 11, 2022
    Copy the full SHA
    d3dc933 View commit details

Commits on Jul 12, 2022

  1. Internal change

    PiperOrigin-RevId: 460429348
    Change-Id: I73e13c5486f9888c2b818f8b3258837b6272f327
    ludoch authored and gae-java-bot committed Jul 12, 2022
    Copy the full SHA
    8741966 View commit details
  2. Make WebAppContextFactory more extensible.

    PiperOrigin-RevId: 460489548
    Change-Id: I892dd20cede7555dab68355bd1797e33a8818577
    gae-java-bot committed Jul 12, 2022
    Copy the full SHA
    4df746f View commit details

Commits on Jul 13, 2022

  1. use the -nolog version of the apache-jsp jar, as needed by the GAE SDK.

    PiperOrigin-RevId: 460771567
    Change-Id: Ib5772192251a407192b67d747f6c7d2306f1e70f
    ludoch authored and gae-java-bot committed Jul 13, 2022
    Copy the full SHA
    b1bbec3 View commit details

Commits on Jul 15, 2022

  1. Move the appengine-remote-api.jar file in the correct SDK location.

    PiperOrigin-RevId: 461166086
    Change-Id: I679ba3848281a4bd8b5bff2bf041b3c3e7afa917
    ludoch authored and gae-java-bot committed Jul 15, 2022
    Copy the full SHA
    71f9bd6 View commit details

Commits on Jul 20, 2022

  1. Update Jetty to 9.4.48.v20220622

    PiperOrigin-RevId: 462024021
    Change-Id: I492a73029d0f7a53679d851f077856b6b5ade66a
    gae-java-bot committed Jul 20, 2022
    Copy the full SHA
    89bd186 View commit details
  2. Issue #16 fix multithread build

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    454bde1 View commit details
  3. upgrade mvnw with mvn --errors --batch-mode --show-version org.apache…

    ….maven.plugins:maven-wrapper-plugin:3.1.0:wrapper -Dmaven=3.8.6
    
    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    0d4eb30 View commit details
  4. add maven-wrapper.jar

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    97fb3a1 View commit details
  5. fix mvnw

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    efe9e4c View commit details
  6. fix url....

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    8ed51fe View commit details
  7. it looks GHA do not support this...

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    ae3cb43 View commit details
  8. restore version from main branch

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    b2864af View commit details
  9. chmod +x mvnw

    Signed-off-by: Olivier Lamy <olamy@apache.org>
    olamy committed Jul 20, 2022
    Copy the full SHA
    a70c9aa View commit details

Commits on Jul 21, 2022

  1. update .gitignore for files generated when building project

    Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
    lachlan-roberts committed Jul 21, 2022
    Copy the full SHA
    b9d07d4 View commit details
  2. Merge pull request #17 from GoogleCloudPlatform:multi-thread-build

    PiperOrigin-RevId: 462483934
    Change-Id: Ifda70ae08a407aff0a644c8b74971e9ce7027452
    gae-java-bot committed Jul 21, 2022
    Copy the full SHA
    6ef17fd View commit details

Commits on Jul 26, 2022

  1. Merge pull request #18 from GoogleCloudPlatform:generated-files

    PiperOrigin-RevId: 463283884
    Change-Id: Ic6cee7ad6425f65e1079c234807f7655e5abccb1
    gae-java-bot committed Jul 26, 2022
    Copy the full SHA
    59f4fbd View commit details

Commits on Jul 27, 2022

  1. Internal change

    PiperOrigin-RevId: 463528579
    Change-Id: I3c5dca2d33422b361dcc7aa207252048cfb94af6
    ludoch authored and gae-java-bot committed Jul 27, 2022
    Copy the full SHA
    57a6257 View commit details

Commits on Jul 30, 2022

  1. Fix for https://issuetracker.google.com/issues/240455023

    PiperOrigin-RevId: 464283128
    Change-Id: I2d81b6f1592821dbcff06ce0dcbeb9241885690b
    ludoch authored and gae-java-bot committed Jul 30, 2022
    Copy the full SHA
    bcb69c0 View commit details

Commits on Aug 8, 2022

  1. Fix #13

    PiperOrigin-RevId: 466000250
    Change-Id: I3fdd59c3cf0400ae7a7758b13d7621f080c8e0f4
    ludoch authored and gae-java-bot committed Aug 8, 2022
    Copy the full SHA
    a224675 View commit details
  2. Add an Optional-using variant of ThreadManager.currentRequestThreadFa…

    …ctory.
    
    PiperOrigin-RevId: 466058136
    Change-Id: I81cce7e05027e035d2eb031fe61df97ca85d7633
    gae-java-bot committed Aug 8, 2022
    Copy the full SHA
    cacbccb View commit details

Commits on Aug 9, 2022

  1. Skip Maven repository push for samples via <maven.deploy.skip>true</m…

    …aven.deploy.skip>.
    
    PiperOrigin-RevId: 466446509
    Change-Id: I3a25de496986d4a35c0ca56b728c4766fd6a056e
    ludoch authored and gae-java-bot committed Aug 9, 2022
    Copy the full SHA
    7947688 View commit details
  2. Push version 2.0.6 publicly.

    PiperOrigin-RevId: 466458227
    Change-Id: I95531cc3f9c96eee4b3bbf0d4812fdf22a98037f
    ludoch authored and gae-java-bot committed Aug 9, 2022
    Copy the full SHA
    80f12d1 View commit details
Showing with 16,820 additions and 488 deletions.
  1. +2 −2 .github/workflows/maven.yml
  2. +4 −0 .gitignore
  3. +2 −2 TRYLATESTBITSINPROD.md
  4. +1 −1 api/pom.xml
  5. +41 −15 api/src/main/java/com/google/appengine/api/ThreadManager.java
  6. +3 −3 api/src/main/java/com/google/appengine/api/datastore/CloudDatastoreV1ClientImpl.java
  7. +1 −1 api_dev/pom.xml
  8. +1 −1 api_dev/src/main/java/com/google/appengine/api/datastore/dev/LocalDatastoreService.java
  9. +4 −24 api_dev/src/main/java/com/google/appengine/tools/info/AppengineSdk.java
  10. +2 −7 api_dev/src/main/java/com/google/appengine/tools/info/ClassicSdk.java
  11. +3 −3 api_dev/src/main/java/com/google/appengine/tools/info/MavenSdk.java
  12. +10 −5 api_dev/src/main/java/com/google/appengine/tools/info/SdkInfo.java
  13. +2 −2 api_dev/src/test/java/com/google/appengine/api/datastore/LazyListImplTest.java
  14. +5 −1 api_dev/src/test/java/com/google/appengine/api/quota/QuotaServiceImplTest.java
  15. +1 −1 api_legacy/pom.xml
  16. +1 −1 appengine-api-1.0-sdk/pom.xml
  17. +1 −1 appengine-api-stubs/pom.xml
  18. +74 −0 appengine_jsr107/pom.xml
  19. +292 −0 appengine_jsr107/src/main/java/com/google/appengine/api/memcache/jsr107cache/GCache.java
  20. +126 −0 appengine_jsr107/src/main/java/com/google/appengine/api/memcache/jsr107cache/GCacheEntry.java
  21. +34 −0 appengine_jsr107/src/main/java/com/google/appengine/api/memcache/jsr107cache/GCacheException.java
  22. +83 −0 appengine_jsr107/src/main/java/com/google/appengine/api/memcache/jsr107cache/GCacheFactory.java
  23. +95 −0 appengine_jsr107/src/test/java/com/google/appengine/api/memcache/jsr107cache/GCacheEntryTest.java
  24. +439 −0 appengine_jsr107/src/test/java/com/google/appengine/api/memcache/jsr107cache/GCacheTest.java
  25. +1 −1 appengine_resources/pom.xml
  26. +1 −1 appengine_testing/pom.xml
  27. +113 −0 appengine_testing_tests/pom.xml
  28. +172 −0 ..._tests/src/test/java/com/google/appengine/tools/development/testing/DeferredTaskCallbackTest.java
  29. +125 −0 ...ine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/EndToEndTest.javap
  30. +97 −0 ...test/java/com/google/appengine/tools/development/testing/LocalBlobstoreServiceTestConfigTest.java
  31. +97 −0 ...est/java/com/google/appengine/tools/development/testing/LocalCapabilityServiceTestConfigTest.java
  32. +86 −0 ...com/google/appengine/tools/development/testing/LocalDatastoreServiceTestCapabilityChangeTest.java
  33. +80 −0 ...test/java/com/google/appengine/tools/development/testing/LocalDatastoreServiceTestConfigTest.java
  34. +55 −0 .../test/java/com/google/appengine/tools/development/testing/LocalMemcacheServiceTestConfigTest.java
  35. +948 −0 ...c/test/java/com/google/appengine/tools/development/testing/LocalModulesServiceTestConfigTest.java
  36. +496 −0 ...ests/src/test/java/com/google/appengine/tools/development/testing/LocalServiceTestHelperTest.java
  37. +90 −0 ...ts/src/test/java/com/google/appengine/tools/development/testing/LocalTaskQueueTestConfigTest.java
  38. +55 −0 .../src/test/java/com/google/appengine/tools/development/testing/LocalUserServiceTestConfigTest.java
  39. +52 −0 ...ting_tests/src/test/java/com/google/appengine/tools/development/testing/ReuseTestRunnerTest.javap
  40. +191 −0 ...src/test/java/com/google/appengine/tools/development/testing/ServletInvokingTaskCallbackTest.java
  41. +92 −0 ...ng_tests/src/test/java/com/google/appengine/tools/development/testing/TaskCountDownLatchTest.java
  42. +48 −0 ...ngine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/TestServlet.java
  43. +66 −0 ...ests/src/test/java/com/google/appengine/tools/development/testing/TestingApiIntegrationTest.javap
  44. +21 −0 ...gine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/appengine-web.xml
  45. +33 −0 appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/web.xml
  46. +2 −1 applications/pom.xml
  47. +2 −2 applications/proberapp/pom.xml
  48. +2 −1 applications/proberapp/src/main/java/app/ProberApp.java
  49. +124 −0 applications/springboot/pom.xml
  50. +28 −0 ...cations/springboot/src/main/java/com/example/appengine/demos/springboot/HelloworldController.java
  51. +28 −0 applications/springboot/src/main/java/com/example/appengine/demos/springboot/ServletInitializer.java
  52. +28 −0 ...springboot/src/main/java/com/example/appengine/demos/springboot/SpringBootExampleApplication.java
  53. +22 −0 applications/springboot/src/main/resources/application.properties
  54. +19 −0 applications/springboot/src/main/resources/application.yaml
  55. +27 −0 applications/springboot/src/main/resources/logging.properties
  56. +23 −0 applications/springboot/src/main/webapp/WEB-INF/appengine-web.xml
  57. +30 −0 ...gboot/src/test/java/com/example/appengine/demos/springboot/SpringBootExampleApplicationTests.java
  58. +126 −0 google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml
  59. +148 −0 ...d/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/AccessibleApiDetector.java
  60. +384 −0 ...i_compatibility_tests/src/test/java/com/google/appengine/apicompat/AccessibleApiDetectorTest.java
  61. +130 −0 .../appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/Api.java
  62. +224 −0 ..._standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ApiComparison.java
  63. +46 −0 ...ndard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ApiComparisonTest.java
  64. +187 −0 ...ine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ApiVisitor.java
  65. +65 −0 ...compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiInterfaceUsage.java
  66. +69 −0 ...atibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiInterfaceUsageTest.java
  67. +59 −0 ...dard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiUsage.java
  68. +175 −0 ..._compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiUsageVerifier.java
  69. +114 −0 ...pi_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java
  70. +214 −0 ...e_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/UsageTracker.java
  71. +34 −0 ...andard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/UsageTrackerTest.java
  72. +151 −0 ...pi_compatibility_tests/src/test/java/com/google/appengine/apicompat/UsageTrackingClassLoader.java
  73. +285 −0 ...ompatibility_tests/src/test/java/com/google/appengine/apicompat/UsageTrackingClassLoaderTest.java
  74. +237 −0 ...ppengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/Utils.java
  75. +67 −0 ...e_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/package-info.java
  76. +39 −0 ...i_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/HasInnerClass.java
  77. +27 −0 ...mpatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/InterfaceWithEnum.java
  78. +23 −0 ...pi_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/MyAnnotation.java
  79. +28 −0 ...pi_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/MyComparator.java
  80. +25 −0 ...dard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/MyEnum.java
  81. +24 −0 ...mpatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PkgProtectedClass.java
  82. +23 −0 ...ibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PkgProtectedInterface.java
  83. +25 −0 ...ava/com/google/appengine/apicompat/testclasses/PublicAbstractClassExtendingPkgProtectedClass.java
  84. +26 −0 .../google/appengine/apicompat/testclasses/PublicAbstractClassImplementingPkgProtectedInterface.java
  85. +45 −0 .../api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicBase.java
  86. +38 −0 ...c/test/java/com/google/appengine/apicompat/testclasses/PublicClassExtendingPkgProtectedClass.java
  87. +38 −0 ...java/com/google/appengine/apicompat/testclasses/PublicClassImplementingPkgProtectedInterface.java
  88. +38 −0 ..._compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicFinalSub.java
  89. +25 −0 ...compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicInterface.java
  90. +42 −0 ...d/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicSub.java
  91. +37 −0 ...ests/src/test/java/com/google/appengine/apicompat/testclasses/PublicSubWithAppEngineInternal.java
  92. +23 −0 ...tibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/TemplatizedInterface.java
  93. +25 −0 ...lity_tests/src/test/java/com/google/appengine/apicompat/testclasses/TemplatizedInterfaceImpl.java
  94. +22 −0 ...y_tests/src/test/java/com/google/appengine/apicompat/testclasses/p1/PkgWithAppEngineInternal.java
  95. +20 −0 ...compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/p1/package-info.java
  96. +271 −0 ...tibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java
  97. +39 −0 ...y_tests/src/test/java/com/google/appengine/apicompat/usage/AppIdentityApiExhaustiveUsageTest.java
  98. +186 −0 ...i_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/AppIdentityApiUsage.java
  99. +32 −0 ...ility_tests/src/test/java/com/google/appengine/apicompat/usage/BackendApiExhaustiveUsageTest.java
  100. +100 −0 ...d/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/BackendApiUsage.java
  101. +38 −0 ...ity_tests/src/test/java/com/google/appengine/apicompat/usage/BlobstoreApiExhaustiveUsageTest.java
  102. +492 −0 ...api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/BlobstoreApiUsage.java
  103. +42 −0 ..._tests/src/test/java/com/google/appengine/apicompat/usage/CapabilitiesApiExhaustiveUsageTest.java
  104. +162 −0 ..._compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/CapabilitiesApiUsage.java
  105. +33 −0 ...ity_tests/src/test/java/com/google/appengine/apicompat/usage/DatastoreApiExhaustiveUsageTest.java
  106. +2,279 −0 ...api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/DatastoreApiUsage.java
  107. +39 −0 ...bility_tests/src/test/java/com/google/appengine/apicompat/usage/ImagesApiExhaustiveUsageTest.java
  108. +409 −0 ...rd/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ImagesApiUsage.java
  109. +37 −0 ...tibility_tests/src/test/java/com/google/appengine/apicompat/usage/LogsApiExhaustiveUsageTest.java
  110. +368 −0 ...dard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/LogsApiUsage.java
  111. +40 −0 ...tibility_tests/src/test/java/com/google/appengine/apicompat/usage/MailApiExhaustiveUsageTest.java
  112. +314 −0 ...dard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/MailApiUsage.java
  113. +43 −0 ...lity_tests/src/test/java/com/google/appengine/apicompat/usage/MemcacheApiExhaustiveUsageTest.java
  114. +666 −0 .../api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/MemcacheApiUsage.java
  115. +41 −0 ...ility_tests/src/test/java/com/google/appengine/apicompat/usage/ModulesApiExhaustiveUsageTest.java
  116. +119 −0 ...d/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ModulesApiUsage.java
  117. +37 −0 ...ibility_tests/src/test/java/com/google/appengine/apicompat/usage/OAuthApiExhaustiveUsageTest.java
  118. +245 −0 ...ard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/OAuthApiUsage.java
  119. +32 −0 ...ibility_tests/src/test/java/com/google/appengine/apicompat/usage/QuotaApiExhaustiveUsageTest.java
  120. +106 −0 ...ard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/QuotaApiUsage.java
  121. +33 −0 ...bility_tests/src/test/java/com/google/appengine/apicompat/usage/SearchApiExhaustiveUsageTest.java
  122. +1,367 −0 ...rd/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/SearchApiUsage.java
  123. +42 −0 ...ity_tests/src/test/java/com/google/appengine/apicompat/usage/TaskQueueApiExhaustiveUsageTest.java
  124. +538 −0 ...api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/TaskQueueApiUsage.java
  125. +39 −0 ...lity_tests/src/test/java/com/google/appengine/apicompat/usage/URLFetchApiExhaustiveUsageTest.java
  126. +292 −0 .../api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/URLFetchApiUsage.java
  127. +35 −0 ...ibility_tests/src/test/java/com/google/appengine/apicompat/usage/UsersApiExhaustiveUsageTest.java
  128. +139 −0 ...ard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/UsersApiUsage.java
  129. +6 −0 kokoro/gcp_ubuntu/build.sh
  130. +1 −1 kokoro/gcp_ubuntu/publish_javadoc.sh
  131. +1 −1 lib/pom.xml
  132. +1 −1 lib/tools_api/pom.xml
  133. +14 −38 lib/tools_api/src/main/java/com/google/appengine/tools/KickStart.java
  134. +2 −4 lib/tools_api/src/main/java/com/google/appengine/tools/admin/Application.java
  135. +19 −2 lib/tools_api/src/test/java/com/google/appengine/tools/KickStartTest.java
  136. +19 −5 lib/tools_api/src/test/java/com/google/appengine/tools/admin/CronEntryTest.java
  137. +1 −1 lib/xml_validator/pom.xml
  138. +1 −1 lib/xml_validator_test/pom.xml
  139. +1 −1 local_runtime_shared/pom.xml
  140. +11 −4 pom.xml
  141. +1 −1 protobuf/pom.xml
  142. +1 −1 quickstartgenerator/pom.xml
  143. +1 −1 remoteapi/pom.xml
  144. +42 −48 remoteapi/src/main/java/com/google/appengine/tools/remoteapi/RemoteApiOptions.java
  145. +1 −1 runtime/deployment/pom.xml
  146. +1 −0 runtime/failinitfilterwebapp/pom.xml
  147. +1 −1 runtime/impl/pom.xml
  148. +1 −5 runtime/impl/src/main/java/com/google/apphosting/runtime/JavaRuntimeParams.java
  149. +4 −0 runtime/impl/src/main/java/com/google/apphosting/runtime/JsonLogHandler.java
  150. +3 −0 runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppEngineWebAppContext.java
  151. +3 −3 runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppEngineWebAppContextFactory.java
  152. +1 −1 runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppVersionHandlerFactory.java
  153. +2 −2 runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/WebAppContextFactory.java
  154. +1 −104 runtime/impl/src/test/java/com/google/apphosting/runtime/ClassPathUtilsTest.java
  155. +18 −0 runtime/impl/src/test/java/com/google/apphosting/runtime/JsonLogHandlerTest.java
  156. +2 −2 runtime/impl/src/test/java/com/google/apphosting/runtime/http/HttpApiProxyImplTest.java
  157. +6 −8 runtime/local/pom.xml
  158. +1 −1 runtime/main/pom.xml
  159. +0 −8 runtime/main/src/main/java/com/google/apphosting/runtime/JavaRuntimeMain.java
  160. +7 −1 runtime/main/src/main/java/com/google/apphosting/runtime/JavaRuntimeMainWithDefaults.java
  161. +0 −4 runtime/main/src/test/java/com/google/apphosting/runtime/JavaRuntimeMainTest.java
  162. +34 −0 runtime/nogaeapiswebapp/src/main/java/FailInitializationServlet.java
  163. +9 −0 runtime/nogaeapiswebapp/src/main/webapp/WEB-INF/web.xml
  164. +1 −1 runtime/pom.xml
  165. +1 −1 runtime/test/pom.xml
  166. +27 −119 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/JavaRuntimeViaHttpBase.java
  167. +1 −3 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/LegacyModeTest.java
  168. +12 −0 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/NoGaeApisTest.java
  169. +1 −1 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/OutOfMemoryTest.java
  170. +75 −0 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SpringBootTest.java
  171. +1 −1 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SystemPropertiesTest.java
  172. +1 −1 runtime/testapps/pom.xml
  173. +1 −1 runtime/util/pom.xml
  174. +5 −25 runtime/util/src/main/java/com/google/apphosting/runtime/ClassPathUtils.java
  175. +1 −1 runtime_shared/pom.xml
  176. +28 −3 sdk_assembly/pom.xml
  177. +1 −1 sessiondata/pom.xml
  178. +1 −1 shared_sdk/pom.xml
  179. +1 −1 third_party/geronimo_javamail/pom.xml
  180. +1 −1 utils/pom.xml
4 changes: 2 additions & 2 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -39,10 +39,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v2.5.0
uses: actions/setup-java@v3
with:
distribution: ${{ matrix.jdk }}
java-version: ${{ matrix.java }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -46,3 +46,7 @@ release.properties
pom.xml.releaseBackup
pom.xml.tag
runtime/test/WEB-INF/

# AppEngine Generated Files
/applications/proberapp/${appengine.runtime.location}/
/appengine_testing_tests/WEB-INF/appengine-generated/
4 changes: 2 additions & 2 deletions TRYLATESTBITSINPROD.md
Original file line number Diff line number Diff line change
@@ -43,12 +43,12 @@ top of your web application and change the entrypoint to boot with these jars in
mvn clean install
```

Let's assume the current built version is `2.0.6-SNAPSHOT`.
Let's assume the current built version is `2.0.7-SNAPSHOT`.
Add the dependency for the GAE runtime jars in your application pom.xml file:

```
<properties>
<appengine.runtime.version>2.0.6-SNAPSHOT</appengine.runtime.version>
<appengine.runtime.version>2.0.7-SNAPSHOT</appengine.runtime.version>
<appengine.runtime.location>${appengine.runtime.location}</appengine.runtime.location>
<properties>
...
2 changes: 1 addition & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@
<parent>
<groupId>com.google.appengine</groupId>
<artifactId>parent</artifactId>
<version>2.0.6-SNAPSHOT</version>
<version>2.0.7-SNAPSHOT</version>
</parent>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
56 changes: 41 additions & 15 deletions api/src/main/java/com/google/appengine/api/ThreadManager.java
Original file line number Diff line number Diff line change
@@ -17,6 +17,7 @@
package com.google.appengine.api;

import com.google.apphosting.api.ApiProxy;
import java.util.Optional;
import java.util.concurrent.ThreadFactory;

/**
@@ -36,24 +37,21 @@ public final class ThreadManager {
"com.google.appengine.api.ThreadManager.BACKGROUND_THREAD_FACTORY";

/**
* Returns a {@link ThreadFactory} that will create threads scoped
* to the current request. These threads will be interrupted at the
* end of the current request and must complete within the request
* deadline. If they fail to, the instance containing them may be
* terminated.
* Returns a {@link ThreadFactory} which will create threads scoped to the current request. These
* threads will be interrupted at the end of the current request and must complete within the
* request deadline. If they fail to, the instance containing them may be terminated.
*
* <p>The principal reason to use this method is so that the created
* threads can make App Engine API calls ({@code com.google.appengine.api.*}).
* In general, threads not associated with a request cannot make these API calls.
* <p>The principal reason to use this method is so that the created threads can make App Engine
* API calls ({@code com.google.appengine.api.*}). In general, threads not associated with a
* request cannot make these API calls.
*
* <p>The returned factory is typically used with a call like
* {@link java.util.concurrent.Executors#newCachedThreadPool(ThreadFactory)}.
* Do not use the {@link java.util.concurrent.ExecutorService ExecutorService} returned
* by this call after the request that created it has completed.
* <p>The returned factory is typically used with a call like {@link
* java.util.concurrent.Executors#newCachedThreadPool(ThreadFactory)}. Do not use the {@link
* java.util.concurrent.ExecutorService ExecutorService} returned by this call after the request
* that created it has completed.
*
* <p>Note that calling {@link ThreadFactory#newThread} on the
* returned instance may throw any of the unchecked exceptions
* mentioned by {@link #createBackgroundThread}.
* <p>Note that calling {@link ThreadFactory#newThread} on the returned instance may throw any of
* the unchecked exceptions mentioned by {@link #createBackgroundThread}.
*
* @throws NullPointerException if the calling thread is not associated with a request.
*/
@@ -62,6 +60,34 @@ public static ThreadFactory currentRequestThreadFactory() {
return (ThreadFactory) environment.getAttributes().get(REQUEST_THREAD_FACTORY_ATTR);
}

/**
* Returns an Optional {@link ThreadFactory} which will create threads scoped to the current
* request. These threads will be interrupted at the end of the current request and must complete
* within the request deadline. If they fail to, the instance containing them may be terminated.
*
* <p>If this method is not called from an App Engine request thread, returns an empty Optional
* instance.
*
* <p>The principal reason to use this method is so that the created threads can make App Engine
* API calls ({@code com.google.appengine.api.*}). In general, threads not associated with a
* request cannot make these API calls.
*
* <p>The returned factory is typically used with a call like {@link
* java.util.concurrent.Executors#newCachedThreadPool(ThreadFactory)}. Do not use the {@link
* java.util.concurrent.ExecutorService ExecutorService} returned by this call after the request
* that created it has completed.
*
* <p>Note that calling {@link ThreadFactory#newThread} on the returned instance may throw any of
* the unchecked exceptions mentioned by {@link #createBackgroundThread}.
*/
public static Optional<ThreadFactory> currentRequestThreadFactoryOptional() {
return Optional.ofNullable(ApiProxy.getCurrentEnvironment())
.flatMap(
environment ->
Optional.ofNullable(
(ThreadFactory) environment.getAttributes().get(REQUEST_THREAD_FACTORY_ATTR)));
}

/**
* Create a new {@link Thread} that executes {@code runnable} for
* the duration of the current request. Calling this method is
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.client.util.ExponentialBackOff;
import com.google.auto.value.AutoValue;
import com.google.common.base.Preconditions;
@@ -321,7 +321,7 @@ private static Credential getCredential() throws GeneralSecurityException, IOExc
// TODO: Remove this special case and defer to Application Default Credentials
// See b/35156374.
return new ComputeCredential(
GoogleNetHttpTransport.newTrustedTransport(), new JacksonFactory());
GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance());
}
return GoogleCredential.getApplicationDefault().createScoped(DatastoreOptions.SCOPES);
}
@@ -349,7 +349,7 @@ private static GoogleCredential.Builder getServiceAccountCredentialBuilder(Strin
throws GeneralSecurityException, IOException {
return new GoogleCredential.Builder()
.setTransport(GoogleNetHttpTransport.newTrustedTransport())
.setJsonFactory(new JacksonFactory())
.setJsonFactory(GsonFactory.getDefaultInstance())
.setServiceAccountId(account)
.setServiceAccountScopes(DatastoreOptions.SCOPES);
}
2 changes: 1 addition & 1 deletion api_dev/pom.xml
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@
<parent>
<groupId>com.google.appengine</groupId>
<artifactId>parent</artifactId>
<version>2.0.6-SNAPSHOT</version>
<version>2.0.7-SNAPSHOT</version>
</parent>

<packaging>jar</packaging>
Original file line number Diff line number Diff line change
@@ -1201,7 +1201,7 @@ private void addActionsImpl(Status status, TaskQueueBulkAddRequest request) {
static Transaction toProto1(
com.google.apphosting.datastore.proto2api.DatastoreV3Pb.Transaction txn) {
Transaction txnProto = new Transaction();
txnProto.mergeFrom(txn.toByteArray());
boolean unused = txnProto.mergeFrom(txn.toByteArray());
return txnProto;
}

Original file line number Diff line number Diff line change
@@ -34,21 +34,6 @@
*/
public abstract class AppengineSdk {

/**
* For the quickstart annotation processing, we need different weddefault.xml files used by Jetty
* to specify system default servlets and filters. For now, we need 3 of them: - the vm:true
* Managed VM Java image (based on Jetty92), - the vm:true/flex Managed VM Java image developped
* on github (based on Jetty93), - the App Engine standard Java8(g) runtime (based on Jetty93)
*/
public enum WebDefaultXmlType {
JETTY93_STANDARD {
@Override
public String toString() {
return "9.3.standard";
}
}
}

/**
* Default deployment admin server name.
*/
@@ -146,16 +131,11 @@ public List<URL> getUserJspLibs() {
/** Returns the list of web api jar URLs for the SDK. */
public abstract List<URL> getWebApiToolsLibs();

/**
* Returns the classpath of the quickstart process.
*/
public abstract String getQuickStartClasspath(WebDefaultXmlType jettyVersion);
/** Returns the classpath of the quickstart process. */
public abstract String getQuickStartClasspath();

/**
* Returns the webdefault.xml for the corresponding Jetty version.
* Valid versions for now are 9.2 and 9.3 (Standard or Flex).
*/
public abstract String getWebDefaultXml(WebDefaultXmlType jettyVersion);
/** Returns the webdefault.xml for the corresponding Jetty version. */
public abstract String getWebDefaultXml();

/**
* Returns the path to SDK resource files like xml or schemas files.
Original file line number Diff line number Diff line change
@@ -75,7 +75,7 @@ public List<URL> getDatanucleusLibs(String version) {
}

@Override
public String getQuickStartClasspath(WebDefaultXmlType jettyVersion) {
public String getQuickStartClasspath() {
List<String> list = new ArrayList<>();
File quickstart = new File(getSdkRoot(), "lib/tools/quickstart/quickstartgenerator.jar");
File jettyDir = new File(getSdkRoot(), SdkInfo.JETTY9_HOME_LIB_PATH);
@@ -101,13 +101,8 @@ public String getQuickStartClasspath(WebDefaultXmlType jettyVersion) {
}

@Override
public String getWebDefaultXml(WebDefaultXmlType jettyVersion) {
switch (jettyVersion) {
case JETTY93_STANDARD:
public String getWebDefaultXml() {
return getSdkRoot() + "/docs/webdefault.xml";
default:
throw new IllegalArgumentException("Invalid Jetty version: " + jettyVersion);
}
}

public String getSdkRoot() {
Original file line number Diff line number Diff line change
@@ -70,7 +70,7 @@ public List<File> getUserLibFiles() {
}

@Override
public String getQuickStartClasspath(WebDefaultXmlType jettyVersion) {
public String getQuickStartClasspath() {
List<String> classes =
Lists.transform(
profileToFiles.get("QuickStart"),
@@ -114,8 +114,8 @@ public List<URL> getDatanucleusLibs(String version) {
}

@Override
public String getWebDefaultXml(WebDefaultXmlType jettyVersion) {
return new File(resourceFile, jettyVersion + "/webdefault.xml").toString();
public String getWebDefaultXml() {
return new File(resourceFile, "aaaaaaa" + "/webdefault.xml").toString();
}

@Override
15 changes: 10 additions & 5 deletions api_dev/src/main/java/com/google/appengine/tools/info/SdkInfo.java
Original file line number Diff line number Diff line change
@@ -29,10 +29,7 @@
import java.util.SortedMap;
import java.util.TreeMap;

/**
* Retrieves installation information for the App Engine SDK.
*
*/
/** Retrieves installation information for the App Engine SDK. */
public class SdkInfo {

public static final String SDK_ROOT_PROPERTY = "appengine.sdk.root";
@@ -333,7 +330,15 @@ static List<File> getJetty9SharedLibFiles() {
File jettyHomeLib = new File(sdkRoot, JETTY9_HOME_LIB_PATH);

sharedLibs.add(new File(jettyHomeLib, "servlet-api-3.1.jar"));
sharedLibs.add(new File(jettyHomeLib, "jetty-schemas-3.1.jar"));
File schemas = new File(jettyHomeLib, "servlet-schemas-3.1.jar");
if (schemas.exists()) {
sharedLibs.add(schemas);
} else {
schemas = new File(jettyHomeLib, "jetty-schemas-3.1.jar");
if (schemas.exists()) {
sharedLibs.add(schemas);
}
}

// We want to match this file: "jetty-util-9.3.8.v20160314.jar"
// but without hardcoding the Jetty version which is changing from time to time.
Original file line number Diff line number Diff line change
@@ -96,11 +96,11 @@ public Future<byte[]> makeAsyncCall(
if (packageName.equals("datastore_v3")) {
if (methodName.equals("RunQuery")) {
DatastoreV3Pb.Query query = new DatastoreV3Pb.Query();
query.parseFrom(request);
boolean unused = query.parseFrom(request);
runQueryCalls.add(query);
} else if (methodName.equals("Next")) {
DatastoreV3Pb.NextRequest next = new DatastoreV3Pb.NextRequest();
next.parseFrom(request);
boolean unused = next.parseFrom(request);
nextCalls.add(next);
}
}
Original file line number Diff line number Diff line change
@@ -51,12 +51,16 @@ public void setUp() throws Exception {
// Setup the environment, stats, and quota service
environment = new MockEnvironment("some-app", "v1");
ApiProxy.setEnvironmentForCurrentThread(environment);
// TODO(b/226203690): the unused capture shouldn't be necessary

// We capture the result to avoid tripping a compile-time check, but we don't
// need to do anything with this result, as ApiStats's constructor is
// side-effecting (it binds this to the environment).
ApiStats unused = new ApiStats(environment) {
@Override
public long getApiTimeInMegaCycles() {
return 13;
}

@Override
public long getCpuTimeInMegaCycles() {
return 14;
2 changes: 1 addition & 1 deletion api_legacy/pom.xml
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@
<parent>
<groupId>com.google.appengine</groupId>
<artifactId>parent</artifactId>
<version>2.0.6-SNAPSHOT</version>
<version>2.0.7-SNAPSHOT</version>
</parent>

<packaging>jar</packaging>
2 changes: 1 addition & 1 deletion appengine-api-1.0-sdk/pom.xml
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@
<parent>
<groupId>com.google.appengine</groupId>
<artifactId>parent</artifactId>
<version>2.0.6-SNAPSHOT</version>
<version>2.0.7-SNAPSHOT</version>
</parent>
<packaging>jar</packaging>
<name>AppEngine :: appengine-api-1.0-sdk</name>
2 changes: 1 addition & 1 deletion appengine-api-stubs/pom.xml
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@
<parent>
<groupId>com.google.appengine</groupId>
<artifactId>parent</artifactId>
<version>2.0.6-SNAPSHOT</version>
<version>2.0.7-SNAPSHOT</version>
</parent>

<packaging>jar</packaging>
Loading