From 42fcfa4c4250435dd55504fd6bfd9ec8231174e3 Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Mon, 19 Sep 2022 09:40:09 -0700 Subject: [PATCH 01/16] Upgrade Jetty to 9.4.49.v20220914. PiperOrigin-RevId: 475312177 Change-Id: Ie96027ec428c7ae39bb5c6fd27f35fb2f1e80980 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 165165881..b054df981 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ 1.8 1.8 UTF-8 - 9.4.48.v20220622 + 9.4.49.v20220914 https://oss.sonatype.org/content/repositories/google-snapshots/ sonatype-nexus-snapshots https://oss.sonatype.org/service/local/staging/deploy/maven2/ From 5d0771fb095271765d9c109fc3d04dabae1c39b9 Mon Sep 17 00:00:00 2001 From: GAE Java Team Date: Tue, 20 Sep 2022 08:03:13 -0700 Subject: [PATCH 02/16] Reimplement Lite runtime background request handling as a servlet Filter PiperOrigin-RevId: 475555959 Change-Id: I94008f9193d7157de21bf8c07e600292147e83b4 --- .../google/apphosting/runtime/ServletEngineAdapter.java | 8 +------- .../google/apphosting/runtime/jetty94/JettyHttpProxy.java | 6 ++---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java b/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java index b2a081661..b409e97f8 100644 --- a/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java +++ b/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java @@ -106,9 +106,6 @@ abstract class Config { @Nullable public abstract EvaluationRuntimeServerInterface evaluationRuntimeServerInterface(); - /** Whether to pass through all headers to the web app, including X-AppEngine-*. */ - public abstract boolean passThroughPrivateHeaders(); - /** Returns an {@code Config.Builder}. */ public static Builder builder() { return new AutoValue_ServletEngineAdapter_Config.Builder() @@ -117,8 +114,7 @@ public static Builder builder() { .setJettyReusePort(false) .setJettyRequestHeaderSize(16384) .setJettyResponseHeaderSize(16384) - .setApplicationRoot("/base/data/home/apps") - .setPassThroughPrivateHeaders(false); + .setApplicationRoot("/base/data/home/apps"); } /** Builder for {@code Config} instances. */ @@ -141,8 +137,6 @@ public abstract static class Builder { public abstract Builder setEvaluationRuntimeServerInterface( EvaluationRuntimeServerInterface server); - public abstract Builder setPassThroughPrivateHeaders(boolean passThroughPrivateHeaders); - /** Returns a configured {@code Config} instance. */ public abstract Config build(); } diff --git a/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java b/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java index 0d5492147..173e67c67 100644 --- a/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java +++ b/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java @@ -264,7 +264,6 @@ public static class ForwardingHandler extends AbstractHandler { private final String fixedApplicationPath; private final AppInfoFactory appInfoFactory; private final EvaluationRuntimeServerInterface evaluationRuntimeServerInterface; - private final boolean passThroughPrivateHeaders; public ForwardingHandler(ServletEngineAdapter.Config runtimeOptions, Map env) throws ExecutionException, InterruptedException, IOException { @@ -272,7 +271,6 @@ public ForwardingHandler(ServletEngineAdapter.Config runtimeOptions, Map Date: Wed, 21 Sep 2022 09:56:51 -0700 Subject: [PATCH 03/16] Enabling Annotation Scanning for Servlet-based applications that are not using quickstart-web.xml. PiperOrigin-RevId: 475855167 Change-Id: I7a43db6ad3d45734220bcb5e9496069a45469040 --- runtime/annotationscanningwebapp/pom.xml | 73 +++++++++++++++++++ .../main/java/AnnotationScanningServlet.java | 46 ++++++++++++ .../WEB-INF/appengine-generated/app.yaml | 27 +++++++ .../src/main/webapp/WEB-INF/appengine-web.xml | 20 +++++ .../WEB-INF/appengine_optional.properties | 17 +++++ .../src/main/webapp/WEB-INF/web.xml | 22 ++++++ .../jetty94/AppVersionHandlerFactory.java | 32 ++++++-- .../apphosting/runtime/JavaRuntimeMain.java | 10 ++- runtime/pom.xml | 1 + .../jetty9/AnnotationScanningTest.java | 53 ++++++++++++++ 10 files changed, 294 insertions(+), 7 deletions(-) create mode 100644 runtime/annotationscanningwebapp/pom.xml create mode 100644 runtime/annotationscanningwebapp/src/main/java/AnnotationScanningServlet.java create mode 100644 runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-generated/app.yaml create mode 100644 runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-web.xml create mode 100644 runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine_optional.properties create mode 100644 runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/web.xml create mode 100644 runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/AnnotationScanningTest.java diff --git a/runtime/annotationscanningwebapp/pom.xml b/runtime/annotationscanningwebapp/pom.xml new file mode 100644 index 000000000..d81f65230 --- /dev/null +++ b/runtime/annotationscanningwebapp/pom.xml @@ -0,0 +1,73 @@ + + + + + 4.0.0 + war + 1.0 + + com.google.appengine.demos + annotationscanningwebapp + AppEngine :: annotationscanningwebapp + + + true + 1 + UTF-8 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + target/${project.artifactId}-${project.version}/WEB-INF/classes + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + true + + + + ${basedir}/src/main/webapp/WEB-INF + true + WEB-INF + + + + + + maven-compiler-plugin + 3.10.1 + + 1.8 + 1.8 + + + + + + diff --git a/runtime/annotationscanningwebapp/src/main/java/AnnotationScanningServlet.java b/runtime/annotationscanningwebapp/src/main/java/AnnotationScanningServlet.java new file mode 100644 index 000000000..65c7220df --- /dev/null +++ b/runtime/annotationscanningwebapp/src/main/java/AnnotationScanningServlet.java @@ -0,0 +1,46 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** Servlet that detects if the GAE APIs are in the app classpath. */ +@WebServlet( + name = "AnnotationScanningServlet", + urlPatterns = {"/"}) +public class AnnotationScanningServlet extends HttpServlet { + + @Override + protected void service(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + resp.setContentType("text/plain"); + PrintWriter out = resp.getWriter(); + // Testing that appengine-api-1.0-sdk.jar is not on the application classpath + // if the app does not define it. + try { + Class.forName("com.google.appengine.api.utils.SystemProperty"); + throw new IllegalArgumentException("com.google.appengine.api.utils.SystemProperty"); + + } catch (ClassNotFoundException expected) { + out.println("ok, com.google.appengine.api.utils.SystemProperty not seen."); + } + } +} diff --git a/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-generated/app.yaml b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-generated/app.yaml new file mode 100644 index 000000000..6a9d0e287 --- /dev/null +++ b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-generated/app.yaml @@ -0,0 +1,27 @@ +# Copyright 2021 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +runtime: java8 +inbound_services: +- warmup +derived_file_type: +- java_precompiled +threadsafe: True +auto_id_policy: default +api_version: 'user_defined' +handlers: +- url: /.* + script: unused + login: optional + secure: optional diff --git a/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-web.xml b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-web.xml new file mode 100644 index 000000000..dcfaa9c51 --- /dev/null +++ b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine-web.xml @@ -0,0 +1,20 @@ + + + + true + java8 + diff --git a/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine_optional.properties b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine_optional.properties new file mode 100644 index 000000000..9306fa2f8 --- /dev/null +++ b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/appengine_optional.properties @@ -0,0 +1,17 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use.annotationscanning=true \ No newline at end of file diff --git a/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/web.xml b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000..492979e92 --- /dev/null +++ b/runtime/annotationscanningwebapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,22 @@ + + + + diff --git a/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppVersionHandlerFactory.java b/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppVersionHandlerFactory.java index 19fba9b6f..0c128c0b7 100644 --- a/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppVersionHandlerFactory.java +++ b/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/AppVersionHandlerFactory.java @@ -19,7 +19,9 @@ import com.google.apphosting.base.AppVersionKey; import com.google.apphosting.runtime.AppVersion; import com.google.apphosting.runtime.SessionsConfig; +import com.google.apphosting.runtime.jetty9.AppEngineWebInfConfiguration; import com.google.apphosting.runtime.jetty9.JettyConstants; +import com.google.common.collect.ImmutableList; import com.google.common.flogger.GoogleLogger; import com.google.common.html.HtmlEscapers; import java.io.File; @@ -31,12 +33,16 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspFactory; +import org.eclipse.jetty.annotations.AnnotationConfiguration; import org.eclipse.jetty.server.Dispatcher; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ErrorPageErrorHandler; +import org.eclipse.jetty.webapp.FragmentConfiguration; +import org.eclipse.jetty.webapp.MetaInfConfiguration; import org.eclipse.jetty.webapp.WebAppContext; +import org.eclipse.jetty.webapp.WebXmlConfiguration; /** * {@code AppVersionHandlerFactory} implements a {@code Handler} for a given {@code AppVersionKey}. @@ -56,6 +62,12 @@ public class AppVersionHandlerFactory { public static final String WEB_DEFAULTS_XML = "com/google/apphosting/runtime/jetty94/webdefault.xml"; + /** + * This property will be used to enable/disable Annotation Scanning when quickstart-web.xml is not + * present. + */ + private static final String USE_ANNOTATION_SCANNING = "use.annotationscanning"; + /** * Specify which {@link org.eclipse.jetty.webapp.Configuration} objects should be invoked when * configuring a web application. @@ -66,14 +78,10 @@ public class AppVersionHandlerFactory { * allows users to use {@code jetty-web.xml} files. We definitely do not want to allow these * files, as they allow for arbitrary method invocation. */ + // List of all the standard Jetty configurations that need to be executed when there // is no WEB-INF/quickstart-web.xml file. - private static final String[] preconfigurationClasses = { - com.google.apphosting.runtime.jetty9.AppEngineWebInfConfiguration.class.getCanonicalName(), - org.eclipse.jetty.webapp.WebXmlConfiguration.class.getCanonicalName(), - org.eclipse.jetty.webapp.MetaInfConfiguration.class.getCanonicalName(), - org.eclipse.jetty.webapp.FragmentConfiguration.class.getCanonicalName() - }; + private final String[] preconfigurationClasses = getPreconfigurationClasses(); // List of Jetty configurations only needed if the quickstart process has been // executed, so we do not need the webinf, webxml, fragment and annotation configurations @@ -117,6 +125,18 @@ public Handler createHandler(AppVersion appVersion) throws ServletException { } } + private final String[] getPreconfigurationClasses() { + ImmutableList.Builder list = new ImmutableList.Builder<>(); + list.add(AppEngineWebInfConfiguration.class.getCanonicalName()); + list.add(WebXmlConfiguration.class.getCanonicalName()); + list.add(MetaInfConfiguration.class.getCanonicalName()); + list.add(FragmentConfiguration.class.getCanonicalName()); + if (Boolean.getBoolean(USE_ANNOTATION_SCANNING)) { + list.add(AnnotationConfiguration.class.getCanonicalName()); + } + return list.build().stream().toArray(String[]::new); + } + private Handler doCreateHandler(AppVersion appVersion) throws ServletException { AppVersionKey appVersionKey = appVersion.getKey(); try { diff --git a/runtime/main/src/main/java/com/google/apphosting/runtime/JavaRuntimeMain.java b/runtime/main/src/main/java/com/google/apphosting/runtime/JavaRuntimeMain.java index ca09fa286..f47bfd23c 100644 --- a/runtime/main/src/main/java/com/google/apphosting/runtime/JavaRuntimeMain.java +++ b/runtime/main/src/main/java/com/google/apphosting/runtime/JavaRuntimeMain.java @@ -43,6 +43,12 @@ public class JavaRuntimeMain { /** This property will be used in ClassPathUtils processing to determine the correct classpath. */ private static final String USE_MAVEN_JARS = "use.mavenjars"; + /** + * This property will be used to enable/disable Annotation Scanning when quickstart-web.xml is not + * present. + */ + private static final String USE_ANNOTATION_SCANNING = "use.annotationscanning"; + /** Disable logging in ApiProxy */ private static final String DISABLE_API_CALL_LOGGING_IN_APIPROXY = "disable_api_call_logging_in_apiproxy"; @@ -98,6 +104,7 @@ private String getApplicationRoot(String[] args) { * @return the flag value, if found, otherwise null */ /* @VisibleForTesting */ + @SuppressWarnings("ReturnMissingNullable") String getFlag(String[] args, String flagName, String warningMsgIfAbsent) { String target = "--" + flagName; for (int i = 0; i < args.length; i++) { @@ -138,7 +145,8 @@ void processOptionalProperties(String[] args) { new String[] { USE_MAVEN_JARS, DISABLE_API_CALL_LOGGING_IN_APIPROXY, - ALLOW_NON_RESIDENT_SESSION_ACCESS + ALLOW_NON_RESIDENT_SESSION_ACCESS, + USE_ANNOTATION_SCANNING }) { if ("true".equalsIgnoreCase(optionalProperties.getProperty(flag))) { System.setProperty(flag, "true"); diff --git a/runtime/pom.xml b/runtime/pom.xml index a0acef08e..5da3ff1a7 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -35,6 +35,7 @@ deployment local nogaeapiswebapp + annotationscanningwebapp failinitfilterwebapp test testapps diff --git a/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/AnnotationScanningTest.java b/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/AnnotationScanningTest.java new file mode 100644 index 000000000..e16fff2ef --- /dev/null +++ b/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/AnnotationScanningTest.java @@ -0,0 +1,53 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.apphosting.runtime.jetty9; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.File; +import java.io.IOException; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public final class AnnotationScanningTest extends JavaRuntimeViaHttpBase { + + private static File appRoot; + + @BeforeClass + public static void beforeClass() throws IOException, InterruptedException { + File currentDirectory = new File("").getAbsoluteFile(); + appRoot = + new File( + currentDirectory, "../annotationscanningwebapp/target/annotationscanningwebapp-1.0"); + assertThat(appRoot.isDirectory()).isTrue(); + } + + private RuntimeContext runtimeContext() throws IOException, InterruptedException { + RuntimeContext.Config config = + RuntimeContext.Config.builder().setApplicationPath(appRoot.toString()).build(); + return RuntimeContext.create(config); + } + + @Test + public void testAnnotationScanning() throws Exception { + try (RuntimeContext runtime = runtimeContext()) { + runtime.executeHttpGet("/", 200); + } + } +} From 6f29a27ee715b452e1847ae9727da673d8a8912d Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Wed, 21 Sep 2022 14:07:17 -0700 Subject: [PATCH 04/16] Internal change PiperOrigin-RevId: 475919184 Change-Id: I24841bd623e91644a7cc181694e526d7a971fbe6 --- kokoro/gcp_ubuntu/build.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kokoro/gcp_ubuntu/build.sh b/kokoro/gcp_ubuntu/build.sh index 7e15ef76c..425abb25b 100644 --- a/kokoro/gcp_ubuntu/build.sh +++ b/kokoro/gcp_ubuntu/build.sh @@ -53,7 +53,5 @@ cp quickstartgenerator/target/quickstartgenerator*.jar ${KOKORO_ARTIFACTS_DIR}/m cp -rf sdk_assembly/target/appengine-java-sdk ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/ # Make binaries executable. chmod a+x ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/appengine-java-sdk/bin/* -# Also create the area for the Cloud SDK deliverable in google_appengine_java_delta. -mkdir -p ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/google_appengine_java_delta/google/appengine/tools/java/ -cp -pr ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/appengine-java-sdk/* ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/google_appengine_java_delta/google/appengine/tools/java # LINT.ThenChange(//depot/google3/third_party/java_src/appengine_standard/check_build.sh) +cp sdk_assembly/target/google_appengine_java_delta*.zip ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/google_appengine_java_delta.zip From ff645a2260721965b7dd41d22d1f21fa1aa181c9 Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Fri, 23 Sep 2022 16:43:10 -0700 Subject: [PATCH 05/16] Update working version to 2.0.9 Snapshot. PiperOrigin-RevId: 476489957 Change-Id: I2aa9b09c4d23d6e099c7ccc09ffa3dee8aa8f9b3 --- TRYLATESTBITSINPROD.md | 4 ++-- api/pom.xml | 2 +- api_dev/pom.xml | 2 +- api_legacy/pom.xml | 2 +- appengine-api-1.0-sdk/pom.xml | 2 +- appengine-api-stubs/pom.xml | 2 +- appengine_jsr107/pom.xml | 2 +- appengine_resources/pom.xml | 2 +- appengine_testing/pom.xml | 2 +- appengine_testing_tests/pom.xml | 2 +- applications/pom.xml | 2 +- applications/proberapp/pom.xml | 2 +- .../appengine_standard/api_compatibility_tests/pom.xml | 2 +- .../google/appengine/apicompat/NoSerializeImmutableTest.java | 2 +- .../appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java | 2 +- lib/pom.xml | 2 +- lib/tools_api/pom.xml | 2 +- lib/xml_validator/pom.xml | 2 +- lib/xml_validator_test/pom.xml | 2 +- local_runtime_shared/pom.xml | 2 +- pom.xml | 2 +- protobuf/pom.xml | 2 +- quickstartgenerator/pom.xml | 2 +- remoteapi/pom.xml | 2 +- runtime/deployment/pom.xml | 2 +- runtime/impl/pom.xml | 2 +- runtime/local/pom.xml | 2 +- runtime/main/pom.xml | 2 +- runtime/pom.xml | 2 +- runtime/test/pom.xml | 2 +- runtime/testapps/pom.xml | 2 +- runtime/util/pom.xml | 2 +- runtime_shared/pom.xml | 2 +- sdk_assembly/pom.xml | 2 +- sessiondata/pom.xml | 2 +- shared_sdk/pom.xml | 2 +- third_party/geronimo_javamail/pom.xml | 2 +- utils/pom.xml | 2 +- 38 files changed, 39 insertions(+), 39 deletions(-) diff --git a/TRYLATESTBITSINPROD.md b/TRYLATESTBITSINPROD.md index 4ac795dc5..a6dbd7609 100644 --- a/TRYLATESTBITSINPROD.md +++ b/TRYLATESTBITSINPROD.md @@ -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.8-SNAPSHOT`. +Let's assume the current built version is `2.0.9.SNAPSHOT`. Add the dependency for the GAE runtime jars in your application pom.xml file: ``` - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT ${appengine.runtime.location} ... diff --git a/api/pom.xml b/api/pom.xml index 1d8dd6f0c..966e215c0 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT true diff --git a/api_dev/pom.xml b/api_dev/pom.xml index 643ac4ee3..d7d057694 100644 --- a/api_dev/pom.xml +++ b/api_dev/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/api_legacy/pom.xml b/api_legacy/pom.xml index e95399bc1..d5884eb19 100644 --- a/api_legacy/pom.xml +++ b/api_legacy/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/appengine-api-1.0-sdk/pom.xml b/appengine-api-1.0-sdk/pom.xml index 2a4cd307d..3a986bcd9 100644 --- a/appengine-api-1.0-sdk/pom.xml +++ b/appengine-api-1.0-sdk/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar AppEngine :: appengine-api-1.0-sdk diff --git a/appengine-api-stubs/pom.xml b/appengine-api-stubs/pom.xml index 99d878c44..2064f3708 100644 --- a/appengine-api-stubs/pom.xml +++ b/appengine-api-stubs/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/appengine_jsr107/pom.xml b/appengine_jsr107/pom.xml index 95713fc75..67fccfd07 100644 --- a/appengine_jsr107/pom.xml +++ b/appengine_jsr107/pom.xml @@ -24,7 +24,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT diff --git a/appengine_resources/pom.xml b/appengine_resources/pom.xml index 9c8936af2..f60d17f96 100644 --- a/appengine_resources/pom.xml +++ b/appengine_resources/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar AppEngine :: appengine-resources diff --git a/appengine_testing/pom.xml b/appengine_testing/pom.xml index 3a5cf8d12..ce2d2ed7d 100644 --- a/appengine_testing/pom.xml +++ b/appengine_testing/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/appengine_testing_tests/pom.xml b/appengine_testing_tests/pom.xml index 4fda5a190..38b05372e 100644 --- a/appengine_testing_tests/pom.xml +++ b/appengine_testing_tests/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/applications/pom.xml b/applications/pom.xml index 021070ce8..44066742d 100644 --- a/applications/pom.xml +++ b/applications/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT pom diff --git a/applications/proberapp/pom.xml b/applications/proberapp/pom.xml index f7c169b2d..e0a494622 100644 --- a/applications/proberapp/pom.xml +++ b/applications/proberapp/pom.xml @@ -27,7 +27,7 @@ com.google.appengine applications - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml index 8a008f0da..f05ddddb3 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java index 20ccc56ca..64c7c83a0 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java @@ -84,7 +84,7 @@ public class NoSerializeImmutableTest { */ @Test public void serializableCollectionFieldsAreNotGuavaImmutable() throws Exception { - File appengineApiJar = new File("/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.8-SNAPSHOT.jar"); + File appengineApiJar = new File("/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.9.SNAPSHOT.jar"); assertThat(appengineApiJar.exists()).isTrue(); ClassLoader apiJarClassLoader = new URLClassLoader(new URL[] {appengineApiJar.toURI().toURL()}); Class messageLite = diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java index 2395e854e..77ed09570 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java @@ -58,7 +58,7 @@ public abstract class ApiExhaustiveUsageTestCase { * The path to the sdk api jar. */ private static final String API_JAR_PATH - = "/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.8-SNAPSHOT.jar"; + = "/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.9.SNAPSHOT.jar"; private boolean isExhaustiveUsageClass(String clsName) { return clsName.startsWith("com.google.appengine.apicompat.usage"); diff --git a/lib/pom.xml b/lib/pom.xml index c2d78c12c..6f2b1d32d 100644 --- a/lib/pom.xml +++ b/lib/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT pom diff --git a/lib/tools_api/pom.xml b/lib/tools_api/pom.xml index f3edff734..7e7694f4a 100644 --- a/lib/tools_api/pom.xml +++ b/lib/tools_api/pom.xml @@ -23,7 +23,7 @@ com.google.appengine lib-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/lib/xml_validator/pom.xml b/lib/xml_validator/pom.xml index 842015883..df7344581 100644 --- a/lib/xml_validator/pom.xml +++ b/lib/xml_validator/pom.xml @@ -22,7 +22,7 @@ com.google.appengine lib-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar AppEngine :: libxmlvalidator diff --git a/lib/xml_validator_test/pom.xml b/lib/xml_validator_test/pom.xml index 2ec2fd546..1009faefd 100644 --- a/lib/xml_validator_test/pom.xml +++ b/lib/xml_validator_test/pom.xml @@ -22,7 +22,7 @@ com.google.appengine lib-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar AppEngine :: libxmlvalidator_test diff --git a/local_runtime_shared/pom.xml b/local_runtime_shared/pom.xml index 81e12b57c..7e914778e 100644 --- a/local_runtime_shared/pom.xml +++ b/local_runtime_shared/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar AppEngine :: appengine-local-runtime-shared diff --git a/pom.xml b/pom.xml index b054df981..832590ded 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 4.0.0 com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT pom AppEngine :: Parent project diff --git a/protobuf/pom.xml b/protobuf/pom.xml index aaa9ab7c8..58c3fe53f 100644 --- a/protobuf/pom.xml +++ b/protobuf/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/quickstartgenerator/pom.xml b/quickstartgenerator/pom.xml index da16f00f8..813070694 100644 --- a/quickstartgenerator/pom.xml +++ b/quickstartgenerator/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/remoteapi/pom.xml b/remoteapi/pom.xml index 3c6e39213..44ac4cdf9 100644 --- a/remoteapi/pom.xml +++ b/remoteapi/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar AppEngine :: appengine-remote-api diff --git a/runtime/deployment/pom.xml b/runtime/deployment/pom.xml index 8a6c5cbbe..ed4b9f657 100644 --- a/runtime/deployment/pom.xml +++ b/runtime/deployment/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT pom diff --git a/runtime/impl/pom.xml b/runtime/impl/pom.xml index aa98a6ee3..87aec54e3 100644 --- a/runtime/impl/pom.xml +++ b/runtime/impl/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/runtime/local/pom.xml b/runtime/local/pom.xml index ec320b985..c2ebe88d6 100644 --- a/runtime/local/pom.xml +++ b/runtime/local/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/runtime/main/pom.xml b/runtime/main/pom.xml index bbf1a17e5..8024eda1e 100644 --- a/runtime/main/pom.xml +++ b/runtime/main/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/runtime/pom.xml b/runtime/pom.xml index 5da3ff1a7..48ec194a5 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT AppEngine :: runtime projects pom diff --git a/runtime/test/pom.xml b/runtime/test/pom.xml index e871474f5..825d6ae99 100644 --- a/runtime/test/pom.xml +++ b/runtime/test/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/runtime/testapps/pom.xml b/runtime/testapps/pom.xml index 930b9baae..0b99a308c 100644 --- a/runtime/testapps/pom.xml +++ b/runtime/testapps/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/runtime/util/pom.xml b/runtime/util/pom.xml index 8172a8d1f..e647ac06b 100644 --- a/runtime/util/pom.xml +++ b/runtime/util/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/runtime_shared/pom.xml b/runtime_shared/pom.xml index cd7dfd657..6df5dbd32 100644 --- a/runtime_shared/pom.xml +++ b/runtime_shared/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/sdk_assembly/pom.xml b/sdk_assembly/pom.xml index be1db32e4..420145630 100644 --- a/sdk_assembly/pom.xml +++ b/sdk_assembly/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT 4.0.0 appengine-java-sdk diff --git a/sessiondata/pom.xml b/sessiondata/pom.xml index 6cdf1422f..0841d15e5 100644 --- a/sessiondata/pom.xml +++ b/sessiondata/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/shared_sdk/pom.xml b/shared_sdk/pom.xml index 022c11591..031000882 100644 --- a/shared_sdk/pom.xml +++ b/shared_sdk/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT jar diff --git a/third_party/geronimo_javamail/pom.xml b/third_party/geronimo_javamail/pom.xml index dd42bc239..29c0f7022 100644 --- a/third_party/geronimo_javamail/pom.xml +++ b/third_party/geronimo_javamail/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT ../../pom.xml diff --git a/utils/pom.xml b/utils/pom.xml index b0dbe18cf..294086b48 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.8-SNAPSHOT + 2.0.9.SNAPSHOT true From 538be3f6fc49f67f5ed18f8a1e78ef8d8f3d5241 Mon Sep 17 00:00:00 2001 From: Sriram Mahavadi Date: Mon, 26 Sep 2022 16:00:58 -0700 Subject: [PATCH 06/16] Generating notice for third-party licenses using license-maven-plugin (using goal - license:aggregate-add-third-party). Also attaching the License and Third-Party notice to the SDK binaries for distribution. PiperOrigin-RevId: 477013715 Change-Id: Ib00886335dd3883e735c5ee3c1833f906cbf0318 --- .../appengine_standard/THIRD-PARTY.txt | 309 ++++++++++++++++++ .../resources/third-party-file-template.ftl | 69 ++++ .../third-party-missing-licenses.properties | 24 ++ pom.xml | 23 ++ sdk_assembly/pom.xml | 20 ++ 5 files changed, 445 insertions(+) create mode 100644 google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt create mode 100644 google3/third_party/java_src/appengine_standard/licenses/resources/third-party-file-template.ftl create mode 100644 google3/third_party/java_src/appengine_standard/licenses/resources/third-party-missing-licenses.properties diff --git a/google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt b/google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt new file mode 100644 index 000000000..a763be96c --- /dev/null +++ b/google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt @@ -0,0 +1,309 @@ + +The repository contains 3rd-party code under the following licenses: + + + Apache License, Version 2.0 + + * Apache Ant Core (org.apache.ant:ant:1.10.12 - https://ant.apache.org/) + * Apache Ant Launcher (org.apache.ant:ant-launcher:1.10.12 - https://ant.apache.org/) + * Apache Commons Codec (commons-codec:commons-codec:1.15 - https://commons.apache.org/proper/commons-codec/) + * Apache Commons Logging (commons-logging:commons-logging:1.2 - http://commons.apache.org/proper/commons-logging/) + * Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.13 - http://hc.apache.org/httpcomponents-client) + * Apache HttpClient Mime (org.apache.httpcomponents:httpmime:4.5.13 - http://hc.apache.org/httpcomponents-client) + * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.15 - http://hc.apache.org/httpcomponents-core-ga) + * Apache HttpCore NIO (org.apache.httpcomponents:httpcore-nio:4.4.15 - http://hc.apache.org/httpcomponents-core-ga) + * Apache HTTP transport v2 for the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-apache-v2:1.42.1 - https://github.com/googleapis/google-http-java-client/google-http-client-apache-v2) + * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.17.2 - https://logging.apache.org/log4j/2.x/log4j-api/) + * Apache Log4j to SLF4J Adapter (org.apache.logging.log4j:log4j-to-slf4j:2.17.2 - https://logging.apache.org/log4j/2.x/log4j-to-slf4j/) + * ASM based accessors helper used by json-smart (net.minidev:accessors-smart:2.4.8 - https://urielch.github.io/) + * AssertJ fluent assertions (org.assertj:assertj-core:3.22.0 - https://assertj.github.io/doc/assertj-core/) + * Auto Common Libraries (com.google.auto:auto-common:1.2 - https://github.com/google/auto/tree/master/common) + * AutoService (com.google.auto.service:auto-service-annotations:1.0.1 - https://github.com/google/auto/tree/master/service) + * AutoService Processor (com.google.auto.service:auto-service:1.0.1 - https://github.com/google/auto/tree/master/service) + * AutoValue Annotations (com.google.auto.value:auto-value-annotations:1.9 - https://github.com/google/auto/tree/master/value) + * AutoValue Processor (com.google.auto.value:auto-value:1.9 - https://github.com/google/auto/tree/master/value) + * BigQuery (com.google.cloud:google-cloud-bigquery:2.10.10 - https://github.com/googleapis/java-bigquery) + * BigQuery API v2-rev20220326-1.32.1 (com.google.apis:google-api-services-bigquery:v2-rev20220326-1.32.1 - http://nexus.sonatype.org/oss-repository-hosting.html/google-api-services-bigquery) + * Byte Buddy (without dependencies) (net.bytebuddy:byte-buddy:1.12.12 - https://bytebuddy.net/byte-buddy) + * Byte Buddy (without dependencies) (net.bytebuddy:byte-buddy:1.12.13 - https://bytebuddy.net/byte-buddy) + * Byte Buddy agent (net.bytebuddy:byte-buddy-agent:1.12.12 - https://bytebuddy.net/byte-buddy-agent) + * Byte Buddy agent (net.bytebuddy:byte-buddy-agent:1.12.13 - https://bytebuddy.net/byte-buddy-agent) + * Cloud SQL Admin API v1beta4-rev20220310-1.32.1 (com.google.apis:google-api-services-sqladmin:v1beta4-rev20220310-1.32.1 - http://nexus.sonatype.org/oss-repository-hosting.html/google-api-services-sqladmin) + * Cloud SQL Core Socket Factory (Core Library, don't depend on this directly) (com.google.cloud.sql:jdbc-socket-factory-core:1.5.0 - https://github.com/GoogleCloudPlatform/cloud-sql-mysql-socket-factory/jdbc-socket-factory-core) + * Cloud SQL MySQL Socket Factory (for Connector/J 5.x) (com.google.cloud.sql:mysql-socket-factory:1.5.0 - https://github.com/GoogleCloudPlatform/cloud-sql-mysql-socket-factory/mysql-socket-factory) + * Cloud Storage JSON API v1-rev20220401-1.32.1 (com.google.apis:google-api-services-storage:v1-rev20220401-1.32.1 - http://nexus.sonatype.org/oss-repository-hosting.html/google-api-services-storage) + * datastore-v1-proto-client (com.google.cloud.datastore:datastore-v1-proto-client:2.10.1 - https://github.com/googleapis/java-datastore/datastore-v1-proto-client) + * EasyMock (org.easymock:easymock:4.3 - http://easymock.org/easymock) + * error-prone annotations (com.google.errorprone:error_prone_annotations:2.15.0 - https://errorprone.info/error_prone_annotations) + * FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 - http://findbugs.sourceforge.net/) + * Flogger (com.google.flogger:flogger:0.7.4 - https://github.com/google/flogger) + * Flogger System Backend (com.google.flogger:flogger-system-backend:0.7.4 - https://github.com/google/flogger) + * Google Android Annotations Library (com.google.android:annotations:4.1.1.4 - http://source.android.com/) + * Google APIs Client Library for Java (com.google.api-client:google-api-client:2.0.0 - https://github.com/googleapis/google-api-java-client/google-api-client) + * Google App Engine extensions to the Google API Client Library for Java. (com.google.api-client:google-api-client-appengine:2.0.0 - https://github.com/googleapis/google-api-java-client/google-api-client-appengine) + * Google App Engine extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-appengine:1.42.2 - https://github.com/googleapis/google-http-java-client/google-http-client-appengine) + * Google Cloud Core (com.google.cloud:google-cloud-core:2.6.1 - https://github.com/googleapis/java-core) + * Google Cloud Core gRPC (com.google.cloud:google-cloud-core-grpc:2.3.3 - https://github.com/googleapis/java-core) + * Google Cloud Core HTTP (com.google.cloud:google-cloud-core-http:2.6.0 - https://github.com/googleapis/java-core) + * Google Cloud Datastore (com.google.cloud:google-cloud-datastore:2.4.0 - https://github.com/googleapis/java-datastore) + * Google Cloud Logging (com.google.cloud:google-cloud-logging:3.7.5 - https://github.com/googleapis/java-logging) + * Google Cloud Spanner (com.google.cloud:google-cloud-spanner:6.17.3 - https://github.com/googleapis/java-spanner) + * Google Cloud Storage (com.google.cloud:google-cloud-storage:2.6.1 - https://github.com/googleapis/java-storage) + * Google HTTP Client Library for Java (com.google.http-client:google-http-client:1.42.2 - https://github.com/googleapis/google-http-java-client/google-http-client) + * Google Logger (com.google.flogger:google-extensions:0.7.4 - https://github.com/google/flogger) + * Google OAuth Client Library for Java (com.google.oauth-client:google-oauth-client:1.34.1 - https://github.com/googleapis/google-oauth-java-client/google-oauth-client) + * gRPC extension library for Google Cloud Platform (com.google.cloud:grpc-gcp:1.1.0 - https://github.com/GoogleCloudPlatform/grpc-gcp-java/tree/master/grpc-gcp) + * grpc-google-cloud-spanner-admin-database-v1 (com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.17.3 - https://github.com/googleapis/java-spanner/grpc-google-cloud-spanner-admin-database-v1) + * grpc-google-cloud-spanner-admin-instance-v1 (com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.17.3 - https://github.com/googleapis/java-spanner/grpc-google-cloud-spanner-admin-instance-v1) + * grpc-google-cloud-spanner-v1 (com.google.api.grpc:grpc-google-cloud-spanner-v1:6.17.3 - https://github.com/googleapis/java-spanner/grpc-google-cloud-spanner-v1) + * grpc-google-common-protos (com.google.api.grpc:grpc-google-common-protos:2.7.0 - https://github.com/googleapis/java-iam/grpc-google-common-protos) + * Gson (com.google.code.gson:gson:2.9.0 - https://github.com/google/gson/gson) + * GSON extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-gson:1.40.1 - https://github.com/googleapis/google-http-java-client/google-http-client-gson) + * GSON extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-gson:1.42.0 - https://github.com/googleapis/google-http-java-client/google-http-client-gson) + * GSON extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-gson:1.42.1 - https://github.com/googleapis/google-http-java-client/google-http-client-gson) + * Guava: Google Core Libraries for Java (com.google.guava:guava:31.1-jre - https://github.com/google/guava) + * Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess) + * Guava ListenableFuture only (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava - https://github.com/google/guava/listenablefuture) + * Guava Testing Library (com.google.guava:guava-testlib:31.1-jre - https://github.com/google/guava/guava-testlib) + * io.grpc:grpc-alts (io.grpc:grpc-alts:1.45.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-api (io.grpc:grpc-api:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-auth (io.grpc:grpc-auth:1.42.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-context (io.grpc:grpc-context:1.27.2 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-context (io.grpc:grpc-context:1.42.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-context (io.grpc:grpc-context:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-core (io.grpc:grpc-core:1.45.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-core (io.grpc:grpc-core:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-googleapis (io.grpc:grpc-googleapis:1.45.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-grpclb (io.grpc:grpc-grpclb:1.42.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-netty (io.grpc:grpc-netty:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-netty-shaded (io.grpc:grpc-netty-shaded:1.45.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-protobuf (io.grpc:grpc-protobuf:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-protobuf-lite (io.grpc:grpc-protobuf-lite:1.42.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-protobuf-lite (io.grpc:grpc-protobuf-lite:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-services (io.grpc:grpc-services:1.42.1 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-stub (io.grpc:grpc-stub:1.49.0 - https://github.com/grpc/grpc-java) + * io.grpc:grpc-xds (io.grpc:grpc-xds:1.45.1 - https://github.com/grpc/grpc-java) + * J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.3 - https://github.com/google/j2objc/) + * Jackson (org.codehaus.jackson:jackson-core-asl:1.9.13 - http://jackson.codehaus.org) + * Jackson 2 extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-jackson2:1.41.7 - https://github.com/googleapis/google-http-java-client/google-http-client-jackson2) + * Jackson 2 extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-jackson2:1.42.0 - https://github.com/googleapis/google-http-java-client/google-http-client-jackson2) + * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.13.3 - http://github.com/FasterXML/jackson) + * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.13.3 - https://github.com/FasterXML/jackson-core) + * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.13.3 - http://github.com/FasterXML/jackson) + * Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.3 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8) + * Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) + * Jackson extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-jackson:1.29.2 - https://github.com/googleapis/google-http-java-client/google-http-client-jackson) + * Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.3 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names) + * Java 6 (and higher) extensions to the Google OAuth Client Library for Java. (com.google.oauth-client:google-oauth-client-java6:1.34.1 - https://github.com/googleapis/google-oauth-java-client/google-oauth-client-java6) + * JCommander (com.beust:jcommander:1.48 - http://beust.com/jcommander) + * jffi (com.github.jnr:jffi:1.3.9 - http://github.com/jnr/jffi) + * jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm) + * jnr-constants (com.github.jnr:jnr-constants:0.10.3 - http://github.com/jnr/jnr-constants) + * jnr-enxio (com.github.jnr:jnr-enxio:0.32.13 - http://github.com/jnr/jnr-enxio) + * jnr-ffi (com.github.jnr:jnr-ffi:2.2.11 - http://github.com/jnr/jnr-ffi) + * jnr-unixsocket (com.github.jnr:jnr-unixsocket:0.38.17 - http://github.com/jnr/jnr-unixsocket) + * Joda-Time (joda-time:joda-time:2.11.1 - https://www.joda.org/joda-time/) + * JSONassert (org.skyscreamer:jsonassert:1.5.1 - https://github.com/skyscreamer/JSONassert) + * JSON library from Android SDK (com.vaadin.external.google:android-json:0.0.20131108.vaadin1 - http://developer.android.com/sdk) + * JSON Small and Fast Parser (net.minidev:json-smart:2.4.8 - https://urielch.github.io/) + * jsr107cache (net.sf.jsr107cache:jsr107cache:1.1 - http://maven.apache.org) + * juli (org.apache.tomcat:juli:6.0.53 - http://tomcat.apache.org/) + * Logging (commons-logging:commons-logging:1.0.4 - http://jakarta.apache.org/commons/logging/) + * Lucene Analyzers (org.apache.lucene:lucene-analyzers:2.9.4 - http://lucene.apache.org/java/lucene-contrib/lucene-analyzers) + * Lucene Core (org.apache.lucene:lucene-core:2.9.4 - http://lucene.apache.org/java/lucene-core) + * MortBay :: Apache EL :: API and Implementation (org.mortbay.jasper:apache-el:8.5.70 - https://github.com/jetty-project/jasper-jsp/apache-el) + * MortBay :: Apache Jasper :: JSP Implementation (org.mortbay.jasper:apache-jsp:8.5.70 - https://github.com/jetty-project/jasper-jsp/apache-jsp) + * Netty/Buffer (io.netty:netty-buffer:4.1.77.Final - https://netty.io/netty-buffer/) + * Netty/Codec/HTTP (io.netty:netty-codec-http:4.1.77.Final - https://netty.io/netty-codec-http/) + * Netty/Codec/HTTP2 (io.netty:netty-codec-http2:4.1.77.Final - https://netty.io/netty-codec-http2/) + * Netty/Codec/Socks (io.netty:netty-codec-socks:4.1.77.Final - https://netty.io/netty-codec-socks/) + * Netty/Codec (io.netty:netty-codec:4.1.77.Final - https://netty.io/netty-codec/) + * Netty/Common (io.netty:netty-common:4.1.77.Final - https://netty.io/netty-common/) + * Netty/Handler/Proxy (io.netty:netty-handler-proxy:4.1.77.Final - https://netty.io/netty-handler-proxy/) + * Netty/Handler (io.netty:netty-handler:4.1.77.Final - https://netty.io/netty-handler/) + * Netty/Resolver (io.netty:netty-resolver:4.1.77.Final - https://netty.io/netty-resolver/) + * Netty/Transport/Native/Unix/Common (io.netty:netty-transport-native-unix-common:4.1.77.Final - https://netty.io/netty-transport-native-unix-common/) + * Netty/Transport (io.netty:netty-transport:4.1.77.Final - https://netty.io/netty-transport/) + * Objenesis (org.objenesis:objenesis:3.2 - http://objenesis.org/objenesis) + * OpenCensus (io.opencensus:opencensus-api:0.30.0 - https://github.com/census-instrumentation/opencensus-java) + * OpenCensus (io.opencensus:opencensus-api:0.31.1 - https://github.com/census-instrumentation/opencensus-java) + * OpenCensus (io.opencensus:opencensus-contrib-grpc-util:0.30.0 - https://github.com/census-instrumentation/opencensus-java) + * OpenCensus (io.opencensus:opencensus-contrib-http-util:0.28.0 - https://github.com/census-instrumentation/opencensus-java) + * OpenCensus (io.opencensus:opencensus-contrib-http-util:0.31.1 - https://github.com/census-instrumentation/opencensus-java) + * OpenCensus (io.opencensus:opencensus-proto:0.2.0 - https://github.com/census-instrumentation/opencensus-proto) + * org.apiguardian:apiguardian-api (org.apiguardian:apiguardian-api:1.1.2 - https://github.com/apiguardian-team/apiguardian) + * org.conscrypt:conscrypt-openjdk-uber (org.conscrypt:conscrypt-openjdk-uber:2.5.1 - https://conscrypt.org/) + * org.opentest4j:opentest4j (org.opentest4j:opentest4j:1.2.0 - https://github.com/ota4j-team/opentest4j) + * org.xmlunit:xmlunit-core (org.xmlunit:xmlunit-core:2.9.0 - https://www.xmlunit.org/) + * perfmark:perfmark-api (io.perfmark:perfmark-api:0.23.0 - https://github.com/perfmark/perfmark) + * perfmark:perfmark-api (io.perfmark:perfmark-api:0.25.0 - https://github.com/perfmark/perfmark) + * project ':json-path' (com.jayway.jsonpath:json-path:2.7.0 - https://github.com/jayway/JsonPath) + * Protocol Buffer extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-protobuf:1.41.7 - https://github.com/googleapis/google-http-java-client/google-http-client-protobuf) + * Protocol Buffer extensions to the Google HTTP Client Library for Java. (com.google.http-client:google-http-client-protobuf:1.42.0 - https://github.com/googleapis/google-http-java-client/google-http-client-protobuf) + * proto-google-cloud-datastore-v1 (com.google.api.grpc:proto-google-cloud-datastore-v1:0.101.1 - https://github.com/googleapis/java-datastore/proto-google-cloud-datastore-v1) + * proto-google-cloud-logging-v2 (com.google.api.grpc:proto-google-cloud-logging-v2:0.96.5 - https://github.com/googleapis/java-logging/proto-google-cloud-logging-v2) + * proto-google-cloud-spanner-admin-database-v1 (com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.17.3 - https://github.com/googleapis/java-spanner/proto-google-cloud-spanner-admin-database-v1) + * proto-google-cloud-spanner-admin-instance-v1 (com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.17.3 - https://github.com/googleapis/java-spanner/proto-google-cloud-spanner-admin-instance-v1) + * proto-google-cloud-spanner-v1 (com.google.api.grpc:proto-google-cloud-spanner-v1:6.17.3 - https://github.com/googleapis/java-spanner/proto-google-cloud-spanner-v1) + * proto-google-common-protos (com.google.api.grpc:proto-google-common-protos:2.9.2 - https://github.com/googleapis/java-iam/proto-google-common-protos) + * proto-google-iam-v1 (com.google.api.grpc:proto-google-iam-v1:1.1.7 - https://github.com/googleapis/java-iam/proto-google-iam-v1) + * quartz (quartz:quartz:1.5.2 - no url defined) + * S2 Geometry Library for Java (com.google.geometry:s2-geometry:2.0.0 - https://github.com/google/s2-geometry-library-java) + * Servlet and JDO extensions to the Google API Client Library for Java. (com.google.api-client:google-api-client-servlet:2.0.0 - https://github.com/googleapis/google-api-java-client/google-api-client-servlet) + * SnakeYAML (org.yaml:snakeyaml:1.30 - https://bitbucket.org/snakeyaml/snakeyaml) + * Spring AOP (org.springframework:spring-aop:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring Beans (org.springframework:spring-beans:5.3.22 - https://github.com/spring-projects/spring-framework) + * spring-boot (org.springframework.boot:spring-boot:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-autoconfigure (org.springframework.boot:spring-boot-autoconfigure:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-starter (org.springframework.boot:spring-boot-starter:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-starter-json (org.springframework.boot:spring-boot-starter-json:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-starter-logging (org.springframework.boot:spring-boot-starter-logging:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-starter-test (org.springframework.boot:spring-boot-starter-test:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-starter-web (org.springframework.boot:spring-boot-starter-web:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-test (org.springframework.boot:spring-boot-test:2.7.2 - https://spring.io/projects/spring-boot) + * spring-boot-test-autoconfigure (org.springframework.boot:spring-boot-test-autoconfigure:2.7.2 - https://spring.io/projects/spring-boot) + * Spring Commons Logging Bridge (org.springframework:spring-jcl:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring Context (org.springframework:spring-context:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring Core (org.springframework:spring-core:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring Expression Language (SpEL) (org.springframework:spring-expression:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring TestContext Framework (org.springframework:spring-test:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring Web (org.springframework:spring-web:5.3.22 - https://github.com/spring-projects/spring-framework) + * Spring Web MVC (org.springframework:spring-webmvc:5.3.22 - https://github.com/spring-projects/spring-framework) + * Truth Core (com.google.truth:truth:1.1.3 - http://github.com/google/truth/truth) + * Truth Extension for Java8 (com.google.truth.extensions:truth-java8-extension:1.1.3 - http://github.com/google/truth/truth-extensions-parent/truth-java8-extension) + + Apache License, Version 2.0, Eclipse Public License - Version 1.0 + + * Jetty :: Apache JSP Implementation (org.eclipse.jetty:apache-jsp:9.4.49.v20220914 - https://eclipse.org/jetty/apache-jsp) + * Jetty :: Asynchronous HTTP Client (org.eclipse.jetty:jetty-client:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-client) + * Jetty :: Continuation (org.eclipse.jetty:jetty-continuation:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-continuation) + * Jetty :: Distribution Assemblies (org.eclipse.jetty:jetty-distribution:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-distribution) + * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-http) + * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-io) + * Jetty :: JMX Management (org.eclipse.jetty:jetty-jmx:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-jmx) + * Jetty :: JNDI Naming (org.eclipse.jetty:jetty-jndi:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-jndi) + * Jetty :: Plus (org.eclipse.jetty:jetty-plus:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-plus) + * Jetty :: Quick Start (org.eclipse.jetty:jetty-quickstart:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-quickstart) + * Jetty :: Schemas (org.eclipse.jetty.toolchain:jetty-schemas:3.1 - http://www.eclipse.org/jetty/jetty-toolchain/jetty-schemas) + * Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-security) + * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-server) + * Jetty :: Servlet Annotations (org.eclipse.jetty:jetty-annotations:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-annotations) + * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-servlet) + * Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-util-ajax) + * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-util) + * Jetty :: Utility Servlets and Filters (org.eclipse.jetty:jetty-servlets:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-servlets) + * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-webapp) + * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.49.v20220914 - https://eclipse.org/jetty/jetty-xml) + + Bouncy Castle Licence + + * Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs (org.bouncycastle:bcpkix-jdk15on:1.67 - http://www.bouncycastle.org/java.html) + * Bouncy Castle Provider (org.bouncycastle:bcprov-jdk15on:1.67 - http://www.bouncycastle.org/java.html) + + BSD License + + * ANTLR 3 Runtime (org.antlr:antlr-runtime:3.5.3 - http://www.antlr.org) + * API Common (com.google.api:api-common:2.1.1 - https://github.com/googleapis/api-common-java) + * API Common (com.google.api:api-common:2.2.1 - https://github.com/googleapis/api-common-java) + * GAX (Google Api eXtensions) for Java (com.google.api:gax:2.16.0 - https://github.com/googleapis/gax-java) + * GAX (Google Api eXtensions) for Java (com.google.api:gax-grpc:2.16.0 - https://github.com/googleapis/gax-java) + * GAX (Google Api eXtensions) for Java (com.google.api:gax-httpjson:0.101.0 - https://github.com/googleapis/gax-java) + + CDDL + GPLv2 + + * JavaServer Pages(TM) Standard Tag Library API (javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.2 - http://jcp.org/en/jsr/detail?id=52) + * Java Servlet API (javax.servlet:javax.servlet-api:3.1.0 - http://servlet-spec.java.net) + * javax.annotation API (javax.annotation:javax.annotation-api:1.3.2 - http://jcp.org/en/jsr/detail?id=250) + * javax.transaction API (javax.transaction:javax.transaction-api:1.3 - http://jta-spec.java.net) + * jstl (jstl:jstl:1.2 - no url defined) + * servlet-api (javax.servlet:servlet-api:2.5 - no url defined) + + COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + + * JavaBeans(TM) Activation Framework (javax.activation:activation:1.1.1 - http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp) + + Eclipse Distribution License 1.0 (BSD) + + * Jakarta Activation API jar (jakarta.activation:jakarta.activation-api:1.2.2 - https://github.com/eclipse-ee4j/jaf/jakarta.activation-api) + * Jakarta XML Binding API (jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 - https://github.com/eclipse-ee4j/jaxb-api/jakarta.xml.bind-api) + + Eclipse Public License 1.0 + + * JUnit (junit:junit:4.13.2 - http://junit.org) + + Eclipse Public License 1.0, GNU Lesser General Public License + + * Logback Classic Module (ch.qos.logback:logback-classic:1.2.11 - http://logback.qos.ch/logback-classic) + * Logback Core Module (ch.qos.logback:logback-core:1.2.11 - http://logback.qos.ch/logback-core) + + Eclipse Public License 2.0 + + * Eclipse Compiler for Java(TM) (org.eclipse.jdt:ecj:3.19.0 - http://www.eclipse.org/jdt) + * JUnit Jupiter (Aggregator) (org.junit.jupiter:junit-jupiter:5.8.2 - https://junit.org/junit5/) + * JUnit Jupiter API (org.junit.jupiter:junit-jupiter-api:5.8.2 - https://junit.org/junit5/) + * JUnit Jupiter Engine (org.junit.jupiter:junit-jupiter-engine:5.8.2 - https://junit.org/junit5/) + * JUnit Jupiter Params (org.junit.jupiter:junit-jupiter-params:5.8.2 - https://junit.org/junit5/) + * JUnit Platform Commons (org.junit.platform:junit-platform-commons:1.8.2 - https://junit.org/junit5/) + * JUnit Platform Engine API (org.junit.platform:junit-platform-engine:1.8.2 - https://junit.org/junit5/) + + Eclipse Public License 2.0, GNU General Public License, version 2 + + * Jakarta Annotations API (jakarta.annotation:jakarta.annotation-api:1.3.5 - https://projects.eclipse.org/projects/ee4j.ca) + + Eclipse Public License 2.0, GNU General Public License, version 2, GNU Lesser General Public License Version 2.1 + + * jnr-posix (com.github.jnr:jnr-posix:3.1.15 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) + + GNU General Public License, version 2 + + * MySQL Connector/J (mysql:mysql-connector-java:8.0.28 - http://dev.mysql.com/doc/connector-j/en/) + + GNU General Public License, version 2, The MIT License + + * Checker Qual (org.checkerframework:checker-compat-qual:2.5.3 - https://checkerframework.org) + * Checker Qual (org.checkerframework:checker-compat-qual:2.5.5 - https://checkerframework.org) + + Go License + + * RE2/J (com.google.re2j:re2j:1.5 - http://github.com/google/re2j) + + The 3-Clause BSD License + + * asm (org.ow2.asm:asm:9.1 - http://asm.ow2.io/) + * asm (org.ow2.asm:asm:9.3 - http://asm.ow2.io/) + * asm-analysis (org.ow2.asm:asm-analysis:9.2 - http://asm.ow2.io/) + * asm-analysis (org.ow2.asm:asm-analysis:9.3 - http://asm.ow2.io/) + * asm-commons (org.ow2.asm:asm-commons:9.2 - http://asm.ow2.io/) + * asm-commons (org.ow2.asm:asm-commons:9.3 - http://asm.ow2.io/) + * asm-tree (org.ow2.asm:asm-tree:9.2 - http://asm.ow2.io/) + * asm-tree (org.ow2.asm:asm-tree:9.3 - http://asm.ow2.io/) + * asm-util (org.ow2.asm:asm-util:9.2 - http://asm.ow2.io/) + * Google Auth Library for Java - Credentials (com.google.auth:google-auth-library-credentials:1.3.0 - https://github.com/googleapis/google-auth-library-java/google-auth-library-credentials) + * Google Auth Library for Java - OAuth2 HTTP (com.google.auth:google-auth-library-oauth2-http:1.3.0 - https://github.com/googleapis/google-auth-library-java/google-auth-library-oauth2-http) + * Hamcrest (org.hamcrest:hamcrest:2.2 - http://hamcrest.org/JavaHamcrest/) + * Hamcrest Core (org.hamcrest:hamcrest-core:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-core) + * Hamcrest Core (org.hamcrest:hamcrest-core:2.2 - http://hamcrest.org/JavaHamcrest/) + * Protocol Buffers [Core] (com.google.protobuf:protobuf-java:3.21.5 - https://developers.google.com/protocol-buffers/protobuf-java/) + * Protocol Buffers [Util] (com.google.protobuf:protobuf-java-util:3.21.5 - https://developers.google.com/protocol-buffers/protobuf-java-util/) + * ThreeTen backport (org.threeten:threetenbp:1.5.2 - https://www.threeten.org/threetenbp) + * ThreeTen-Extra (org.threeten:threeten-extra:1.7.0 - https://www.threeten.org/threeten-extra) + * YamlBeans (com.esotericsoftware.yamlbeans:yamlbeans:1.11 - https://github.com/EsotericSoftware/yamlbeans) + + The JSON License + + * JSON in Java (org.json:json:20220320 - https://github.com/douglascrockford/JSON-java) + + The MIT License + + * Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.20 - http://www.mojohaus.org/animal-sniffer/animal-sniffer-annotations) + * Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.21 - https://www.mojohaus.org/animal-sniffer/animal-sniffer-annotations) + * Checker Qual (org.checkerframework:checker-qual:3.24.0 - https://checkerframework.org) + * jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm) + * jsoup Java HTML Parser (org.jsoup:jsoup:1.15.3 - https://jsoup.org/) + * JUL to SLF4J bridge (org.slf4j:jul-to-slf4j:1.7.30 - http://www.slf4j.org) + * Mockito (org.mockito:mockito-all:1.10.19 - http://www.mockito.org) + * Mockito (org.mockito:mockito-all:2.0.2-beta - http://www.mockito.org) + * mockito-core (org.mockito:mockito-core:4.5.1 - https://github.com/mockito/mockito) + * mockito-core (org.mockito:mockito-core:4.7.0 - https://github.com/mockito/mockito) + * mockito-junit-jupiter (org.mockito:mockito-junit-jupiter:4.5.1 - https://github.com/mockito/mockito) + * SLF4J API Module (org.slf4j:slf4j-api:1.7.36 - http://www.slf4j.org) diff --git a/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-file-template.ftl b/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-file-template.ftl new file mode 100644 index 000000000..40e3d6ae9 --- /dev/null +++ b/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-file-template.ftl @@ -0,0 +1,69 @@ +<#-- + Copyright 2021 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<#-- Format artifact "name (groupId:artifactId:version - url)" --> +<#function artifactFormat artifact> + <#if artifact.name?index_of('Unnamed') > -1> + <#return artifact.artifactId + " (" + artifact.groupId + ":" + artifact.artifactId + ":" + artifact.version + " - " + (artifact.url!"no url defined") + ")"> + <#else> + <#return artifact.name + " (" + artifact.groupId + ":" + artifact.artifactId + ":" + artifact.version + " - " + (artifact.url!"no url defined") + ")"> + + + +<#-- Create a key from provided licenses list, ordered alphabetically: "license A, license B, license C" --> +<#function licensesKey licenses> + <#local result = ""> + <#list licenses?sort as license> + <#local result=result + ", " + license> + + <#return result?substring(2)> + + +<#-- Aggregate dependencies map for generated license key (support for multi-license) and convert artifacto to string --> +<#function aggregateLicenses dependencies> + <#assign aggregate = {}> + <#list dependencyMap as entry> + <#assign project = artifactFormat(entry.getKey())/> + <#assign licenses = entry.getValue()/> + <#assign key = licensesKey(licenses)/> + <#if aggregate[key]?? > + <#assign replacement = aggregate[key] + [project] /> + <#assign aggregate = aggregate + {key:replacement} /> + <#else> + <#assign aggregate = aggregate + {key:[project]} /> + + + <#return aggregate> + + +The repository contains 3rd-party code under the following licenses: + +<#if dependencyMap?size == 0> + The project has no dependencies. +<#else> +<#assign aggregate = aggregateLicenses(dependencyMap)> + <#-- Print sorted aggregate licenses --> + <#list aggregate?keys?sort as licenses> + <#assign projects = aggregate[licenses]/> + + ${licenses} + + <#-- Print sorded projects --> + <#list projects?sort as project> + * ${project} + + + diff --git a/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-missing-licenses.properties b/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-missing-licenses.properties new file mode 100644 index 000000000..7b82d7985 --- /dev/null +++ b/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-missing-licenses.properties @@ -0,0 +1,24 @@ +# +# Copyright 2021 Google LLC + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# https://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated by org.codehaus.mojo.license.AddThirdPartyMojo +# +# Please fill the missing licenses for dependencies to be picked by +# license-maven-plugin to generate THIRD-PARTY.txt file. +# +javax.servlet--servlet-api--2.5=CDDL + GPLv2 +jstl--jstl--1.2=CDDL + GPLv2 +net.sf.jsr107cache--jsr107cache--1.1=Apache License, Version 2.0 +quartz--quartz--1.5.2=Apache License, Version 2.0 diff --git a/pom.xml b/pom.xml index 832590ded..775ee2738 100644 --- a/pom.xml +++ b/pom.xml @@ -818,6 +818,29 @@ javacc-maven-plugin 2.6 + + org.codehaus.mojo + license-maven-plugin + 2.0.0 + + com.google.appengine + true + ${project.basedir}/licenses/resources/third-party-missing-licenses.properties + + Apache License, Version 2.0|The Apache Software License, Version 2.0|Apache Software License - Version 2.0|Apache-2.0|Apache 2.0|Apache 2|The Apache License, Version 2.0|Apache License 2.0|Apache License Version 2.0 + Eclipse Public License 1.0|Eclipse Public License - v 1.0| + Eclipse Public License 2.0|Eclipse Public License - v 2.0|Eclipse Public License v2.0|EPL 2.0 + CDDL + GPLv2|CDDL + GPLv2 with classpath exception + The MIT License|MIT license|MIT License + GNU General Public License, version 2|GNU General Public License, version 2 (GPL2), with the classpath exception|GPL2 w/ CPE|The GNU General Public License, v2 with FOSS exception|GNU General Public License Version 2 + BSD License|BSD|BSD licence + The 3-Clause BSD License|New BSD License|BSD New license|BSD-3-Clause|BSD License 3|BSD 3-clause + Eclipse Distribution License 1.0 (BSD)|Eclipse Distribution License - v 1.0|EDL 1.0 + + ${project.basedir} + ${project.basedir}/licenses/resources/third-party-file-template.ftl + + diff --git a/sdk_assembly/pom.xml b/sdk_assembly/pom.xml index 420145630..788ecd98f 100644 --- a/sdk_assembly/pom.xml +++ b/sdk_assembly/pom.xml @@ -57,6 +57,26 @@ + + copy-licenses + generate-resources + + copy-resources + + + ${assembly-directory} + UTF-8 + + + ${basedir}/.. + + LICENSE + THIRD-PARTY.txt + + + + + From 7444958f15f8e6d0c9151dd9165fd39a4e300221 Mon Sep 17 00:00:00 2001 From: Sriram Mahavadi Date: Mon, 26 Sep 2022 17:27:01 -0700 Subject: [PATCH 07/16] Internal change PiperOrigin-RevId: 477031090 Change-Id: Ia27f60772027c11c1fdbe7fbe028af6d6d4826f3 --- .../appengine_standard/THIRD-PARTY.txt => THIRD-PARTY.txt | 0 .../licenses => licenses}/resources/third-party-file-template.ftl | 0 .../resources/third-party-missing-licenses.properties | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt => THIRD-PARTY.txt (100%) rename {google3/third_party/java_src/appengine_standard/licenses => licenses}/resources/third-party-file-template.ftl (100%) rename {google3/third_party/java_src/appengine_standard/licenses => licenses}/resources/third-party-missing-licenses.properties (100%) diff --git a/google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt b/THIRD-PARTY.txt similarity index 100% rename from google3/third_party/java_src/appengine_standard/THIRD-PARTY.txt rename to THIRD-PARTY.txt diff --git a/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-file-template.ftl b/licenses/resources/third-party-file-template.ftl similarity index 100% rename from google3/third_party/java_src/appengine_standard/licenses/resources/third-party-file-template.ftl rename to licenses/resources/third-party-file-template.ftl diff --git a/google3/third_party/java_src/appengine_standard/licenses/resources/third-party-missing-licenses.properties b/licenses/resources/third-party-missing-licenses.properties similarity index 100% rename from google3/third_party/java_src/appengine_standard/licenses/resources/third-party-missing-licenses.properties rename to licenses/resources/third-party-missing-licenses.properties From 8b437c2fb694dfbf2ec72dd559cd1596dac0a918 Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Thu, 29 Sep 2022 11:42:33 -0700 Subject: [PATCH 08/16] Fix for https://github.com/GoogleCloudPlatform/app-maven-plugin/issues/480 Deleting a non needed sample in the distro. PiperOrigin-RevId: 477780963 Change-Id: I5c0cf1515d68ef71c472bcb1896bdc54a0691492 --- sdk_assembly/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk_assembly/pom.xml b/sdk_assembly/pom.xml index 788ecd98f..a353306a0 100644 --- a/sdk_assembly/pom.xml +++ b/sdk_assembly/pom.xml @@ -279,6 +279,7 @@ + From 1902e3559160750132819ac762b34bd2f96679bc Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Thu, 29 Sep 2022 14:13:36 -0700 Subject: [PATCH 09/16] Bump to 2.0.10 snapshot release. PiperOrigin-RevId: 477819564 Change-Id: Ic86398ed340a9b5bcfd29a557c097061ffd5ee78 --- TRYLATESTBITSINPROD.md | 7 ++++--- api/pom.xml | 2 +- api_dev/pom.xml | 2 +- api_legacy/pom.xml | 2 +- appengine-api-1.0-sdk/pom.xml | 2 +- appengine-api-stubs/pom.xml | 2 +- appengine_jsr107/pom.xml | 2 +- appengine_resources/pom.xml | 2 +- appengine_testing/pom.xml | 2 +- appengine_testing_tests/pom.xml | 2 +- applications/pom.xml | 2 +- applications/proberapp/pom.xml | 2 +- .../appengine_standard/api_compatibility_tests/pom.xml | 2 +- .../appengine/apicompat/NoSerializeImmutableTest.java | 2 +- .../apicompat/usage/ApiExhaustiveUsageTestCase.java | 2 +- lib/pom.xml | 2 +- lib/tools_api/pom.xml | 2 +- lib/xml_validator/pom.xml | 2 +- lib/xml_validator_test/pom.xml | 2 +- local_runtime_shared/pom.xml | 2 +- pom.xml | 2 +- protobuf/pom.xml | 2 +- quickstartgenerator/pom.xml | 2 +- remoteapi/pom.xml | 2 +- runtime/deployment/pom.xml | 2 +- runtime/impl/pom.xml | 2 +- runtime/local/pom.xml | 2 +- runtime/main/pom.xml | 2 +- runtime/pom.xml | 2 +- runtime/test/pom.xml | 2 +- runtime/testapps/pom.xml | 2 +- runtime/util/pom.xml | 2 +- runtime_shared/pom.xml | 2 +- sdk_assembly/pom.xml | 2 +- sessiondata/pom.xml | 2 +- shared_sdk/pom.xml | 2 +- third_party/geronimo_javamail/pom.xml | 2 +- utils/pom.xml | 2 +- 38 files changed, 41 insertions(+), 40 deletions(-) diff --git a/TRYLATESTBITSINPROD.md b/TRYLATESTBITSINPROD.md index a6dbd7609..1030f94f0 100644 --- a/TRYLATESTBITSINPROD.md +++ b/TRYLATESTBITSINPROD.md @@ -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.9.SNAPSHOT`. +Let's assume the current built version is `2.0.10.SNAPSHOT`. Add the dependency for the GAE runtime jars in your application pom.xml file: ``` - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT ${appengine.runtime.location} ... @@ -60,7 +60,8 @@ Add the dependency for the GAE runtime jars in your application pom.xml file: ``` -And in the pom.xml plugin section, copy the runtime jars at the top of the deployed web application. +And in the pom.xml plugin section, copy the runtime jars at the top of the +deployed web application. ``` diff --git a/api/pom.xml b/api/pom.xml index 966e215c0..14b13f12b 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT true diff --git a/api_dev/pom.xml b/api_dev/pom.xml index d7d057694..219285d72 100644 --- a/api_dev/pom.xml +++ b/api_dev/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/api_legacy/pom.xml b/api_legacy/pom.xml index d5884eb19..7353a474f 100644 --- a/api_legacy/pom.xml +++ b/api_legacy/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/appengine-api-1.0-sdk/pom.xml b/appengine-api-1.0-sdk/pom.xml index 3a986bcd9..4f0a07323 100644 --- a/appengine-api-1.0-sdk/pom.xml +++ b/appengine-api-1.0-sdk/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar AppEngine :: appengine-api-1.0-sdk diff --git a/appengine-api-stubs/pom.xml b/appengine-api-stubs/pom.xml index 2064f3708..cbc0fd395 100644 --- a/appengine-api-stubs/pom.xml +++ b/appengine-api-stubs/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/appengine_jsr107/pom.xml b/appengine_jsr107/pom.xml index 67fccfd07..3ecb20b73 100644 --- a/appengine_jsr107/pom.xml +++ b/appengine_jsr107/pom.xml @@ -24,7 +24,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT diff --git a/appengine_resources/pom.xml b/appengine_resources/pom.xml index f60d17f96..f45600483 100644 --- a/appengine_resources/pom.xml +++ b/appengine_resources/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar AppEngine :: appengine-resources diff --git a/appengine_testing/pom.xml b/appengine_testing/pom.xml index ce2d2ed7d..e29634e02 100644 --- a/appengine_testing/pom.xml +++ b/appengine_testing/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/appengine_testing_tests/pom.xml b/appengine_testing_tests/pom.xml index 38b05372e..52db31f05 100644 --- a/appengine_testing_tests/pom.xml +++ b/appengine_testing_tests/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/applications/pom.xml b/applications/pom.xml index 44066742d..a37ca195e 100644 --- a/applications/pom.xml +++ b/applications/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT pom diff --git a/applications/proberapp/pom.xml b/applications/proberapp/pom.xml index e0a494622..3a7698f6b 100644 --- a/applications/proberapp/pom.xml +++ b/applications/proberapp/pom.xml @@ -27,7 +27,7 @@ com.google.appengine applications - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml index f05ddddb3..2a1d8d72f 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java index 64c7c83a0..1e4697be2 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java @@ -84,7 +84,7 @@ public class NoSerializeImmutableTest { */ @Test public void serializableCollectionFieldsAreNotGuavaImmutable() throws Exception { - File appengineApiJar = new File("/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.9.SNAPSHOT.jar"); + File appengineApiJar = new File("/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.10.SNAPSHOT.jar"); assertThat(appengineApiJar.exists()).isTrue(); ClassLoader apiJarClassLoader = new URLClassLoader(new URL[] {appengineApiJar.toURI().toURL()}); Class messageLite = diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java index 77ed09570..25c3b561d 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java @@ -58,7 +58,7 @@ public abstract class ApiExhaustiveUsageTestCase { * The path to the sdk api jar. */ private static final String API_JAR_PATH - = "/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.9.SNAPSHOT.jar"; + = "/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.10.SNAPSHOT.jar"; private boolean isExhaustiveUsageClass(String clsName) { return clsName.startsWith("com.google.appengine.apicompat.usage"); diff --git a/lib/pom.xml b/lib/pom.xml index 6f2b1d32d..8462d9518 100644 --- a/lib/pom.xml +++ b/lib/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT pom diff --git a/lib/tools_api/pom.xml b/lib/tools_api/pom.xml index 7e7694f4a..931e8ed3b 100644 --- a/lib/tools_api/pom.xml +++ b/lib/tools_api/pom.xml @@ -23,7 +23,7 @@ com.google.appengine lib-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/lib/xml_validator/pom.xml b/lib/xml_validator/pom.xml index df7344581..ae9779bdd 100644 --- a/lib/xml_validator/pom.xml +++ b/lib/xml_validator/pom.xml @@ -22,7 +22,7 @@ com.google.appengine lib-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar AppEngine :: libxmlvalidator diff --git a/lib/xml_validator_test/pom.xml b/lib/xml_validator_test/pom.xml index 1009faefd..7efaf53a8 100644 --- a/lib/xml_validator_test/pom.xml +++ b/lib/xml_validator_test/pom.xml @@ -22,7 +22,7 @@ com.google.appengine lib-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar AppEngine :: libxmlvalidator_test diff --git a/local_runtime_shared/pom.xml b/local_runtime_shared/pom.xml index 7e914778e..2f2f512e7 100644 --- a/local_runtime_shared/pom.xml +++ b/local_runtime_shared/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar AppEngine :: appengine-local-runtime-shared diff --git a/pom.xml b/pom.xml index 775ee2738..176d6386e 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 4.0.0 com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT pom AppEngine :: Parent project diff --git a/protobuf/pom.xml b/protobuf/pom.xml index 58c3fe53f..0e9220df9 100644 --- a/protobuf/pom.xml +++ b/protobuf/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/quickstartgenerator/pom.xml b/quickstartgenerator/pom.xml index 813070694..f0ae60c8c 100644 --- a/quickstartgenerator/pom.xml +++ b/quickstartgenerator/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/remoteapi/pom.xml b/remoteapi/pom.xml index 44ac4cdf9..5a9546322 100644 --- a/remoteapi/pom.xml +++ b/remoteapi/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar AppEngine :: appengine-remote-api diff --git a/runtime/deployment/pom.xml b/runtime/deployment/pom.xml index ed4b9f657..db89ebd6f 100644 --- a/runtime/deployment/pom.xml +++ b/runtime/deployment/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT pom diff --git a/runtime/impl/pom.xml b/runtime/impl/pom.xml index 87aec54e3..af0d89ee1 100644 --- a/runtime/impl/pom.xml +++ b/runtime/impl/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/runtime/local/pom.xml b/runtime/local/pom.xml index c2ebe88d6..563b68f3f 100644 --- a/runtime/local/pom.xml +++ b/runtime/local/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/runtime/main/pom.xml b/runtime/main/pom.xml index 8024eda1e..58cb63a98 100644 --- a/runtime/main/pom.xml +++ b/runtime/main/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/runtime/pom.xml b/runtime/pom.xml index 48ec194a5..b73f93473 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT AppEngine :: runtime projects pom diff --git a/runtime/test/pom.xml b/runtime/test/pom.xml index 825d6ae99..a0e99c0d4 100644 --- a/runtime/test/pom.xml +++ b/runtime/test/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/runtime/testapps/pom.xml b/runtime/testapps/pom.xml index 0b99a308c..b7e3c97a9 100644 --- a/runtime/testapps/pom.xml +++ b/runtime/testapps/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/runtime/util/pom.xml b/runtime/util/pom.xml index e647ac06b..5bfbc1996 100644 --- a/runtime/util/pom.xml +++ b/runtime/util/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/runtime_shared/pom.xml b/runtime_shared/pom.xml index 6df5dbd32..5af88ba79 100644 --- a/runtime_shared/pom.xml +++ b/runtime_shared/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/sdk_assembly/pom.xml b/sdk_assembly/pom.xml index a353306a0..494527494 100644 --- a/sdk_assembly/pom.xml +++ b/sdk_assembly/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT 4.0.0 appengine-java-sdk diff --git a/sessiondata/pom.xml b/sessiondata/pom.xml index 0841d15e5..d5281899b 100644 --- a/sessiondata/pom.xml +++ b/sessiondata/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/shared_sdk/pom.xml b/shared_sdk/pom.xml index 031000882..faa9ddefd 100644 --- a/shared_sdk/pom.xml +++ b/shared_sdk/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT jar diff --git a/third_party/geronimo_javamail/pom.xml b/third_party/geronimo_javamail/pom.xml index 29c0f7022..89ae8eb8b 100644 --- a/third_party/geronimo_javamail/pom.xml +++ b/third_party/geronimo_javamail/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT ../../pom.xml diff --git a/utils/pom.xml b/utils/pom.xml index 294086b48..a017c18a5 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.9.SNAPSHOT + 2.0.10.SNAPSHOT true From 166e883d89a506b20f784979818c805a5b0106ea Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Fri, 30 Sep 2022 09:12:31 -0700 Subject: [PATCH 10/16] Fix typo (. instead of -) in the previous pr. PiperOrigin-RevId: 478008593 Change-Id: I51520b3c22cfb37a557b968100c0610567c9bbcf --- TRYLATESTBITSINPROD.md | 4 ++-- api/pom.xml | 2 +- api_dev/pom.xml | 2 +- api_legacy/pom.xml | 2 +- appengine-api-1.0-sdk/pom.xml | 2 +- appengine-api-stubs/pom.xml | 2 +- appengine_jsr107/pom.xml | 2 +- appengine_resources/pom.xml | 2 +- appengine_testing/pom.xml | 2 +- appengine_testing_tests/pom.xml | 2 +- applications/pom.xml | 2 +- applications/proberapp/pom.xml | 2 +- .../appengine_standard/api_compatibility_tests/pom.xml | 2 +- .../google/appengine/apicompat/NoSerializeImmutableTest.java | 2 +- .../appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java | 2 +- lib/pom.xml | 2 +- lib/tools_api/pom.xml | 2 +- lib/xml_validator/pom.xml | 2 +- lib/xml_validator_test/pom.xml | 2 +- local_runtime_shared/pom.xml | 2 +- pom.xml | 2 +- protobuf/pom.xml | 2 +- quickstartgenerator/pom.xml | 2 +- remoteapi/pom.xml | 2 +- runtime/deployment/pom.xml | 2 +- runtime/impl/pom.xml | 2 +- runtime/local/pom.xml | 2 +- runtime/main/pom.xml | 2 +- runtime/pom.xml | 2 +- runtime/test/pom.xml | 2 +- runtime/testapps/pom.xml | 2 +- runtime/util/pom.xml | 2 +- runtime_shared/pom.xml | 2 +- sdk_assembly/pom.xml | 2 +- sessiondata/pom.xml | 2 +- shared_sdk/pom.xml | 2 +- third_party/geronimo_javamail/pom.xml | 2 +- utils/pom.xml | 2 +- 38 files changed, 39 insertions(+), 39 deletions(-) diff --git a/TRYLATESTBITSINPROD.md b/TRYLATESTBITSINPROD.md index 1030f94f0..9bfd2b755 100644 --- a/TRYLATESTBITSINPROD.md +++ b/TRYLATESTBITSINPROD.md @@ -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.10.SNAPSHOT`. +Let's assume the current built version is `2.0.10-SNAPSHOT`. Add the dependency for the GAE runtime jars in your application pom.xml file: ``` - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT ${appengine.runtime.location} ... diff --git a/api/pom.xml b/api/pom.xml index 14b13f12b..442e203a3 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT true diff --git a/api_dev/pom.xml b/api_dev/pom.xml index 219285d72..89320cc32 100644 --- a/api_dev/pom.xml +++ b/api_dev/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/api_legacy/pom.xml b/api_legacy/pom.xml index 7353a474f..402a4d218 100644 --- a/api_legacy/pom.xml +++ b/api_legacy/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/appengine-api-1.0-sdk/pom.xml b/appengine-api-1.0-sdk/pom.xml index 4f0a07323..62dcfd901 100644 --- a/appengine-api-1.0-sdk/pom.xml +++ b/appengine-api-1.0-sdk/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar AppEngine :: appengine-api-1.0-sdk diff --git a/appengine-api-stubs/pom.xml b/appengine-api-stubs/pom.xml index cbc0fd395..06bf62328 100644 --- a/appengine-api-stubs/pom.xml +++ b/appengine-api-stubs/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/appengine_jsr107/pom.xml b/appengine_jsr107/pom.xml index 3ecb20b73..34782ef78 100644 --- a/appengine_jsr107/pom.xml +++ b/appengine_jsr107/pom.xml @@ -24,7 +24,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT diff --git a/appengine_resources/pom.xml b/appengine_resources/pom.xml index f45600483..05e7d8cb0 100644 --- a/appengine_resources/pom.xml +++ b/appengine_resources/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar AppEngine :: appengine-resources diff --git a/appengine_testing/pom.xml b/appengine_testing/pom.xml index e29634e02..f52d6e558 100644 --- a/appengine_testing/pom.xml +++ b/appengine_testing/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/appengine_testing_tests/pom.xml b/appengine_testing_tests/pom.xml index 52db31f05..f70823427 100644 --- a/appengine_testing_tests/pom.xml +++ b/appengine_testing_tests/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/applications/pom.xml b/applications/pom.xml index a37ca195e..0c2e60ceb 100644 --- a/applications/pom.xml +++ b/applications/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT pom diff --git a/applications/proberapp/pom.xml b/applications/proberapp/pom.xml index 3a7698f6b..58ecaef7d 100644 --- a/applications/proberapp/pom.xml +++ b/applications/proberapp/pom.xml @@ -27,7 +27,7 @@ com.google.appengine applications - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml index 2a1d8d72f..37b419898 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java index 1e4697be2..83b8a7d41 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/NoSerializeImmutableTest.java @@ -84,7 +84,7 @@ public class NoSerializeImmutableTest { */ @Test public void serializableCollectionFieldsAreNotGuavaImmutable() throws Exception { - File appengineApiJar = new File("/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.10.SNAPSHOT.jar"); + File appengineApiJar = new File("/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.10-SNAPSHOT.jar"); assertThat(appengineApiJar.exists()).isTrue(); ClassLoader apiJarClassLoader = new URLClassLoader(new URL[] {appengineApiJar.toURI().toURL()}); Class messageLite = diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java index 25c3b561d..77a0ab55a 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/usage/ApiExhaustiveUsageTestCase.java @@ -58,7 +58,7 @@ public abstract class ApiExhaustiveUsageTestCase { * The path to the sdk api jar. */ private static final String API_JAR_PATH - = "/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.10.SNAPSHOT.jar"; + = "/tmp/check_build/appengine-api-1.0-sdk/target/appengine-api-1.0-sdk-2.0.10-SNAPSHOT.jar"; private boolean isExhaustiveUsageClass(String clsName) { return clsName.startsWith("com.google.appengine.apicompat.usage"); diff --git a/lib/pom.xml b/lib/pom.xml index 8462d9518..2f3323690 100644 --- a/lib/pom.xml +++ b/lib/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT pom diff --git a/lib/tools_api/pom.xml b/lib/tools_api/pom.xml index 931e8ed3b..f943b96af 100644 --- a/lib/tools_api/pom.xml +++ b/lib/tools_api/pom.xml @@ -23,7 +23,7 @@ com.google.appengine lib-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/lib/xml_validator/pom.xml b/lib/xml_validator/pom.xml index ae9779bdd..740a4ef26 100644 --- a/lib/xml_validator/pom.xml +++ b/lib/xml_validator/pom.xml @@ -22,7 +22,7 @@ com.google.appengine lib-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar AppEngine :: libxmlvalidator diff --git a/lib/xml_validator_test/pom.xml b/lib/xml_validator_test/pom.xml index 7efaf53a8..4e033cb8b 100644 --- a/lib/xml_validator_test/pom.xml +++ b/lib/xml_validator_test/pom.xml @@ -22,7 +22,7 @@ com.google.appengine lib-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar AppEngine :: libxmlvalidator_test diff --git a/local_runtime_shared/pom.xml b/local_runtime_shared/pom.xml index 2f2f512e7..207517a2e 100644 --- a/local_runtime_shared/pom.xml +++ b/local_runtime_shared/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar AppEngine :: appengine-local-runtime-shared diff --git a/pom.xml b/pom.xml index 176d6386e..02ae6a0f4 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 4.0.0 com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT pom AppEngine :: Parent project diff --git a/protobuf/pom.xml b/protobuf/pom.xml index 0e9220df9..8978ee58d 100644 --- a/protobuf/pom.xml +++ b/protobuf/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/quickstartgenerator/pom.xml b/quickstartgenerator/pom.xml index f0ae60c8c..5591eda42 100644 --- a/quickstartgenerator/pom.xml +++ b/quickstartgenerator/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/remoteapi/pom.xml b/remoteapi/pom.xml index 5a9546322..7318d8f80 100644 --- a/remoteapi/pom.xml +++ b/remoteapi/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar AppEngine :: appengine-remote-api diff --git a/runtime/deployment/pom.xml b/runtime/deployment/pom.xml index db89ebd6f..81c9108f7 100644 --- a/runtime/deployment/pom.xml +++ b/runtime/deployment/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT pom diff --git a/runtime/impl/pom.xml b/runtime/impl/pom.xml index af0d89ee1..14d4a9e52 100644 --- a/runtime/impl/pom.xml +++ b/runtime/impl/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/runtime/local/pom.xml b/runtime/local/pom.xml index 563b68f3f..ad09fb0eb 100644 --- a/runtime/local/pom.xml +++ b/runtime/local/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/runtime/main/pom.xml b/runtime/main/pom.xml index 58cb63a98..b86504466 100644 --- a/runtime/main/pom.xml +++ b/runtime/main/pom.xml @@ -23,7 +23,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/runtime/pom.xml b/runtime/pom.xml index b73f93473..91f968431 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT AppEngine :: runtime projects pom diff --git a/runtime/test/pom.xml b/runtime/test/pom.xml index a0e99c0d4..ba24e2d19 100644 --- a/runtime/test/pom.xml +++ b/runtime/test/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/runtime/testapps/pom.xml b/runtime/testapps/pom.xml index b7e3c97a9..81537a20c 100644 --- a/runtime/testapps/pom.xml +++ b/runtime/testapps/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/runtime/util/pom.xml b/runtime/util/pom.xml index 5bfbc1996..ce121f3df 100644 --- a/runtime/util/pom.xml +++ b/runtime/util/pom.xml @@ -22,7 +22,7 @@ com.google.appengine runtime-parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/runtime_shared/pom.xml b/runtime_shared/pom.xml index 5af88ba79..aecc4030d 100644 --- a/runtime_shared/pom.xml +++ b/runtime_shared/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/sdk_assembly/pom.xml b/sdk_assembly/pom.xml index 494527494..1fda37130 100644 --- a/sdk_assembly/pom.xml +++ b/sdk_assembly/pom.xml @@ -20,7 +20,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT 4.0.0 appengine-java-sdk diff --git a/sessiondata/pom.xml b/sessiondata/pom.xml index d5281899b..bbae9f127 100644 --- a/sessiondata/pom.xml +++ b/sessiondata/pom.xml @@ -23,7 +23,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/shared_sdk/pom.xml b/shared_sdk/pom.xml index faa9ddefd..8a590c158 100644 --- a/shared_sdk/pom.xml +++ b/shared_sdk/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT jar diff --git a/third_party/geronimo_javamail/pom.xml b/third_party/geronimo_javamail/pom.xml index 89ae8eb8b..c5ef4662f 100644 --- a/third_party/geronimo_javamail/pom.xml +++ b/third_party/geronimo_javamail/pom.xml @@ -22,7 +22,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT ../../pom.xml diff --git a/utils/pom.xml b/utils/pom.xml index a017c18a5..af1ed9352 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -21,7 +21,7 @@ com.google.appengine parent - 2.0.10.SNAPSHOT + 2.0.10-SNAPSHOT true From fdd123d85e907a2956d74259cec10c3279cb221b Mon Sep 17 00:00:00 2001 From: GAE Java Team Date: Tue, 4 Oct 2022 19:52:59 -0700 Subject: [PATCH 11/16] Internal change PiperOrigin-RevId: 478943210 Change-Id: I389f88dec797f5b2a02993fc0fb897a64e42e870 --- protobuf/open_java_proto_library.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/protobuf/open_java_proto_library.bzl b/protobuf/open_java_proto_library.bzl index 26fff3d02..813ab4087 100644 --- a/protobuf/open_java_proto_library.bzl +++ b/protobuf/open_java_proto_library.bzl @@ -25,6 +25,7 @@ def _proto_library_name(name): def open_java_proto_library( name, srcs, + // deps = [], compatible_with = []): """Builds a Java proto library using the open-source proto compiler. @@ -44,6 +45,7 @@ def open_java_proto_library( native.proto_library( name = proto_library_name, srcs = srcs, + // deps = [_proto_library_name(dep) for dep in deps], compatible_with = compatible_with, strip_import_prefix = "/" + native.package_name(), From 8123cb0e5bc2bdca9e74a826d72eaed5946a51de Mon Sep 17 00:00:00 2001 From: GAE Java Team Date: Tue, 4 Oct 2022 21:34:44 -0700 Subject: [PATCH 12/16] Internal change PiperOrigin-RevId: 478955751 Change-Id: I660e48dd7c5938d5c4e20c60a7aa89341c81f9b0 --- .../google/apphosting/runtime/ServletEngineAdapter.java | 8 +++++++- .../google/apphosting/runtime/jetty94/JettyHttpProxy.java | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java b/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java index b409e97f8..b2a081661 100644 --- a/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java +++ b/runtime/impl/src/main/java/com/google/apphosting/runtime/ServletEngineAdapter.java @@ -106,6 +106,9 @@ abstract class Config { @Nullable public abstract EvaluationRuntimeServerInterface evaluationRuntimeServerInterface(); + /** Whether to pass through all headers to the web app, including X-AppEngine-*. */ + public abstract boolean passThroughPrivateHeaders(); + /** Returns an {@code Config.Builder}. */ public static Builder builder() { return new AutoValue_ServletEngineAdapter_Config.Builder() @@ -114,7 +117,8 @@ public static Builder builder() { .setJettyReusePort(false) .setJettyRequestHeaderSize(16384) .setJettyResponseHeaderSize(16384) - .setApplicationRoot("/base/data/home/apps"); + .setApplicationRoot("/base/data/home/apps") + .setPassThroughPrivateHeaders(false); } /** Builder for {@code Config} instances. */ @@ -137,6 +141,8 @@ public abstract static class Builder { public abstract Builder setEvaluationRuntimeServerInterface( EvaluationRuntimeServerInterface server); + public abstract Builder setPassThroughPrivateHeaders(boolean passThroughPrivateHeaders); + /** Returns a configured {@code Config} instance. */ public abstract Config build(); } diff --git a/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java b/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java index 173e67c67..0d5492147 100644 --- a/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java +++ b/runtime/impl/src/main/java/com/google/apphosting/runtime/jetty94/JettyHttpProxy.java @@ -264,6 +264,7 @@ public static class ForwardingHandler extends AbstractHandler { private final String fixedApplicationPath; private final AppInfoFactory appInfoFactory; private final EvaluationRuntimeServerInterface evaluationRuntimeServerInterface; + private final boolean passThroughPrivateHeaders; public ForwardingHandler(ServletEngineAdapter.Config runtimeOptions, Map env) throws ExecutionException, InterruptedException, IOException { @@ -271,6 +272,7 @@ public ForwardingHandler(ServletEngineAdapter.Config runtimeOptions, Map Date: Thu, 6 Oct 2022 14:34:53 -0700 Subject: [PATCH 13/16] Internal change PiperOrigin-RevId: 479414897 Change-Id: I99bcc119462efa37e7c8966d99eabbc2903520b0 --- kokoro/gcp_ubuntu/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kokoro/gcp_ubuntu/build.sh b/kokoro/gcp_ubuntu/build.sh index 425abb25b..8cb883724 100644 --- a/kokoro/gcp_ubuntu/build.sh +++ b/kokoro/gcp_ubuntu/build.sh @@ -54,4 +54,4 @@ cp -rf sdk_assembly/target/appengine-java-sdk ${KOKORO_ARTIFACTS_DIR}/maven-arti # Make binaries executable. chmod a+x ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/appengine-java-sdk/bin/* # LINT.ThenChange(//depot/google3/third_party/java_src/appengine_standard/check_build.sh) -cp sdk_assembly/target/google_appengine_java_delta*.zip ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/google_appengine_java_delta.zip +cp sdk_assembly/target/google_appengine_java_delta*.zip ${KOKORO_ARTIFACTS_DIR}/maven-artifacts/google_appengine_java_delta_from_maven.zip From 4c3f9642478db8681e9100f289801104d02efbed Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Fri, 7 Oct 2022 10:58:52 -0700 Subject: [PATCH 14/16] Internal change PiperOrigin-RevId: 479623167 Change-Id: I85e05cc9385d111d66ed89f68cf5df4b0941bae3 --- .../runtime/ClassPathUtilsTest.java | 60 ------------------- .../apphosting/runtime/ClassPathUtils.java | 38 ++---------- 2 files changed, 6 insertions(+), 92 deletions(-) diff --git a/runtime/impl/src/test/java/com/google/apphosting/runtime/ClassPathUtilsTest.java b/runtime/impl/src/test/java/com/google/apphosting/runtime/ClassPathUtilsTest.java index 4d29d695e..0b782254c 100644 --- a/runtime/impl/src/test/java/com/google/apphosting/runtime/ClassPathUtilsTest.java +++ b/runtime/impl/src/test/java/com/google/apphosting/runtime/ClassPathUtilsTest.java @@ -34,9 +34,7 @@ public final class ClassPathUtilsTest { @Before public void setUp() throws Exception { - System.clearProperty("use.java11"); System.clearProperty("classpath.runtime-impl"); - System.clearProperty("use.mavenjars"); System.clearProperty("classpath.appengine-api-legacy"); System.clearProperty("classpath.connector-j"); runtimeLocation = temporaryFolder.getRoot().getAbsolutePath(); @@ -49,34 +47,6 @@ private void createJava8Environment() throws Exception { temporaryFolder.newFile("java_runtime_launcher"); } - @Test - public void verifyDefaultPropertiesAreConfigured() throws Exception { - createJava8Environment(); - ClassPathUtils cpu = new ClassPathUtils(); - assertThat(cpu.getConnectorJUrls()).hasLength(1); - assertThat(System.getProperty("classpath.runtime-impl")) - .isEqualTo( - runtimeLocation - + "/runtime-impl.jar" - + PATH_SEPARATOR - + runtimeLocation - + "/frozen_debugger.jar" - + PATH_SEPARATOR - + runtimeLocation - + "/runtime-impl-third-party.jar" - + PATH_SEPARATOR - + runtimeLocation - + "/runtime-appengine-api.jar"); - - assertThat(System.getProperty("classpath.runtime-shared")) - .isEqualTo(runtimeLocation + "/runtime-shared.jar"); - assertThat(System.getProperty("classpath.connector-j")) - .isEqualTo(runtimeLocation + "/jdbc-mysql-connector.jar"); - - assertThat(cpu.getFrozenApiJar().getAbsolutePath()) - .isEqualTo(runtimeLocation + "/appengine-api.jar"); - } - @Test public void verifyJava11PropertiesAreConfigured() throws Exception { // we do not call createJava8Environment() so expect java11+ @@ -93,39 +63,9 @@ public void verifyJava11PropertiesAreConfigured() throws Exception { .isEqualTo(runtimeLocation + "/appengine-api-1.0-sdk.jar"); } - @Test - public void verifyJetty94PropertiesAreConfigured() throws Exception { - - createJava8Environment(); - ClassPathUtils cpu = new ClassPathUtils(); - assertThat(cpu.getConnectorJUrls()).hasLength(1); - assertThat(System.getProperty("classpath.runtime-impl")) - .isEqualTo( - runtimeLocation - + "/runtime-impl.jar" - + PATH_SEPARATOR - + runtimeLocation - + "/frozen_debugger.jar" - + PATH_SEPARATOR - + runtimeLocation - + "/runtime-impl-third-party.jar" - + PATH_SEPARATOR - + runtimeLocation - + "/runtime-appengine-api.jar"); - - assertThat(System.getProperty("classpath.runtime-shared")) - .isEqualTo(runtimeLocation + "/runtime-shared.jar"); - assertThat(System.getProperty("classpath.connector-j")) - .isEqualTo(runtimeLocation + "/jdbc-mysql-connector.jar"); - - assertThat(cpu.getFrozenApiJar().getAbsolutePath()) - .isEqualTo(runtimeLocation + "/appengine-api.jar"); - } - @Test public void verifyMavenJarsPropertiesAreConfigured() throws Exception { createJava8Environment(); - System.setProperty("use.mavenjars", "true"); ClassPathUtils cpu = new ClassPathUtils(new File("/my_app_root")); assertThat(cpu.getConnectorJUrls()).hasLength(1); diff --git a/runtime/util/src/main/java/com/google/apphosting/runtime/ClassPathUtils.java b/runtime/util/src/main/java/com/google/apphosting/runtime/ClassPathUtils.java index ec8a04d2b..da9a601bf 100644 --- a/runtime/util/src/main/java/com/google/apphosting/runtime/ClassPathUtils.java +++ b/runtime/util/src/main/java/com/google/apphosting/runtime/ClassPathUtils.java @@ -38,7 +38,6 @@ public class ClassPathUtils { private static final Logger logger = Logger.getLogger(ClassPathUtils.class.getName()); private static final String RUNTIME_BASE_PROPERTY = "classpath.runtimebase"; - private static final String USE_MAVENJARS = "use.mavenjars"; private static final String RUNTIME_IMPL_PROPERTY = "classpath.runtime-impl"; private static final String RUNTIME_SHARED_PROPERTY = "classpath.runtime-shared"; private static final String PREBUNDLED_PROPERTY = "classpath.prebundled"; @@ -69,30 +68,14 @@ public ClassPathUtils(File root) { return; } - boolean useMavenJars = Boolean.getBoolean(USE_MAVENJARS); - String runtimeImplJar = null; - String cloudDebuggerJar = null; + String cloudDebuggerJar = "frozen_debugger.jar"; String profilerJar = null; if (System.getenv("GAE_PROFILER_MODE") != null) { profilerJar = "profiler.jar"; // Close source, not in Maven.; logger.log(Level.INFO, "AppEngine profiler enabled."); } - // This is only for Java11 or later runtime: - if (Boolean.getBoolean("use.java11")) { - runtimeImplJar = "runtime-impl.jar"; - // Java11: No need for Cloud Debugger special treatement, we rely on pure open source agent. - } else { - runtimeImplJar = "runtime-impl.jar"; - cloudDebuggerJar = "frozen_debugger.jar"; - } List runtimeClasspathEntries = - useMavenJars - ? Arrays.asList("jars/runtime-impl.jar", cloudDebuggerJar, profilerJar) - : Arrays.asList( - runtimeImplJar, - cloudDebuggerJar, - "runtime-impl-third-party.jar", - "runtime-appengine-api.jar"); + Arrays.asList("jars/runtime-impl.jar", cloudDebuggerJar, profilerJar); String runtimeClasspath = runtimeClasspathEntries.stream() @@ -105,10 +88,6 @@ public ClassPathUtils(File root) { runtimeClasspath = System.getProperty(RUNTIME_IMPL_PROPERTY) + PATH_SEPARATOR + runtimeClasspath; } - // Only for Java8g, TODO(b/122040046) - if (new File(runtimeBase, "runtime-rpc-plugins.jar").exists()) { - runtimeClasspath += ":" + runtimeBase + "/runtime-rpc-plugins.jar"; - } // Keep old properties for absolute compatibility if ever some public apps depend on them: System.setProperty(RUNTIME_IMPL_PROPERTY, runtimeClasspath); logger.log(Level.INFO, "Using runtime classpath: " + runtimeClasspath); @@ -117,15 +96,10 @@ public ClassPathUtils(File root) { // that when deploying with api_version: 1.0 in generated app.yaml // we need to add our own legacy jar. frozenApiJarFile = new File(new File(root, runtimeBase), "/appengine-api.jar"); - if (useMavenJars) { - System.setProperty(RUNTIME_SHARED_PROPERTY, runtimeBase + "/jars/runtime-shared.jar"); - System.setProperty(API_PROPERTY, "1.0=" + runtimeBase + "/jars/appengine-api-1.0-sdk.jar"); - System.setProperty( - APPENGINE_API_LEGACY_PROPERTY, runtimeBase + "/jars/appengine-api-legacy.jar"); - } else { - System.setProperty(RUNTIME_SHARED_PROPERTY, runtimeBase + "/runtime-shared.jar"); - System.setProperty(API_PROPERTY, "1.0=" + runtimeBase + "/appengine-api.jar"); - } + System.setProperty(RUNTIME_SHARED_PROPERTY, runtimeBase + "/jars/runtime-shared.jar"); + System.setProperty(API_PROPERTY, "1.0=" + runtimeBase + "/jars/appengine-api-1.0-sdk.jar"); + System.setProperty( + APPENGINE_API_LEGACY_PROPERTY, runtimeBase + "/jars/appengine-api-legacy.jar"); System.setProperty(CONNECTOR_J_PROPERTY, runtimeBase + "/jdbc-mysql-connector.jar"); System.setProperty(PREBUNDLED_PROPERTY, runtimeBase + "/conscrypt.jar"); System.setProperty(LEGACY_PROPERTY, runtimeBase + "/legacy.jar"); From 2d78ac163c9d003ee06751640429f196de29ae3f Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Mon, 10 Oct 2022 08:54:27 -0700 Subject: [PATCH 15/16] Bump Java artifacts dependencies. PiperOrigin-RevId: 480095326 Change-Id: Ieba68ae256ee2f5653eb04067a173add70110329 --- pom.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index 02ae6a0f4..78eaa7892 100644 --- a/pom.xml +++ b/pom.xml @@ -386,7 +386,7 @@ com.google.cloud.datastore datastore-v1-proto-client - 2.10.1 + 2.11.1 com.google.geometry @@ -449,7 +449,7 @@ com.google.api.grpc proto-google-cloud-datastore-v1 - 0.101.1 + 0.102.1 com.google.api.grpc @@ -464,7 +464,7 @@ com.google.code.gson gson - 2.9.0 + 2.9.1 com.google.flogger @@ -506,12 +506,12 @@ com.google.protobuf protobuf-java - 3.21.5 + 3.21.7 com.google.protobuf protobuf-java-util - 3.21.5 + 3.21.7 javax.activation @@ -651,7 +651,7 @@ com.fasterxml.jackson.core jackson-core - 2.13.3 + 2.13.4 joda-time @@ -703,7 +703,7 @@ org.mockito mockito-junit-jupiter - 4.5.1 + 4.8.0 test @@ -761,7 +761,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.4.1 false none @@ -800,7 +800,7 @@ https://github.com/protocolbuffers/protobuf/blob/master/java/pom.xml#L7 Read https://github.com/os72/protoc-jar-maven-plugin/issues/107 for context. --> - 3.21.5 + 3.21.7 @@ -850,7 +850,7 @@ org.codehaus.mojo versions-maven-plugin - 2.11.0 + 2.12.0 From 930c844ea2bbc8fb4930e658807bf09588e325ec Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Wed, 12 Oct 2022 13:16:54 -0700 Subject: [PATCH 16/16] Author tags cleanup. PiperOrigin-RevId: 480700100 Change-Id: I80a801ba331f9e1bbb148be55a523e68cef56de7 --- .../testing/LocalCapabilityServiceTestConfigTest.java | 1 - .../testing/LocalDatastoreServiceTestCapabilityChangeTest.java | 1 - .../tools/development/testing/TestingApiIntegrationTest.javap | 1 - .../com/google/appengine/apicompat/AccessibleApiDetector.java | 1 - .../google/appengine/apicompat/ExhaustiveApiUsageVerifier.java | 1 - .../apicompat/testclasses/PublicSubWithAppEngineInternal.java | 1 - .../apicompat/testclasses/p1/PkgWithAppEngineInternal.java | 1 - 7 files changed, 7 deletions(-) diff --git a/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalCapabilityServiceTestConfigTest.java b/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalCapabilityServiceTestConfigTest.java index 2e33afc42..5f43041f1 100644 --- a/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalCapabilityServiceTestConfigTest.java +++ b/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalCapabilityServiceTestConfigTest.java @@ -26,7 +26,6 @@ import junit.framework.TestCase; /** - * @author ludo@google.com (ludovic Champenois) */ public class LocalCapabilityServiceTestConfigTest extends TestCase { diff --git a/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalDatastoreServiceTestCapabilityChangeTest.java b/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalDatastoreServiceTestCapabilityChangeTest.java index 1a25b3101..b7c210566 100644 --- a/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalDatastoreServiceTestCapabilityChangeTest.java +++ b/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/LocalDatastoreServiceTestCapabilityChangeTest.java @@ -33,7 +33,6 @@ /** - * @author ludo@google.com (ludovic Champenois) */ public class LocalDatastoreServiceTestCapabilityChangeTest extends TestCase { diff --git a/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/TestingApiIntegrationTest.javap b/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/TestingApiIntegrationTest.javap index 3a0ddedee..e2addfd06 100644 --- a/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/TestingApiIntegrationTest.javap +++ b/appengine_testing_tests/src/test/java/com/google/appengine/tools/development/testing/TestingApiIntegrationTest.javap @@ -33,7 +33,6 @@ import junit.framework.TestCase; * the unit tests in this classloader. The goal of this test is to verify that * the testing jar we package in the SDK is functioning correctly. * - * @author maxr@google.com (Max Ross) */ public class TestingApiIntegrationTest extends TestCase { diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/AccessibleApiDetector.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/AccessibleApiDetector.java index 21feb9ed2..aaaea45ef 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/AccessibleApiDetector.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/AccessibleApiDetector.java @@ -43,7 +43,6 @@ * that is available via inheritance. See the class-level javadoc in {@link * ExhaustiveApiUsageVerifier} for an explanation of how this is used. * - * @author maxr@google.com (Max Ross) */ class AccessibleApiDetector { diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiUsageVerifier.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiUsageVerifier.java index feae04a66..0a7dc62c6 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiUsageVerifier.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/ExhaustiveApiUsageVerifier.java @@ -37,7 +37,6 @@ * ExhaustiveApiUsage} implementations are correct, which in turn allows us to depend on them to * alert us to any backwards incompatible api changes we might introduce. * - * @author maxr@google.com (Max Ross) */ public class ExhaustiveApiUsageVerifier { diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicSubWithAppEngineInternal.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicSubWithAppEngineInternal.java index 688cdf5cc..8d737cec3 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicSubWithAppEngineInternal.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/PublicSubWithAppEngineInternal.java @@ -19,7 +19,6 @@ import com.google.apphosting.api.AppEngineInternal; /** - * @author ozarov@google.com (Arie Ozarov) */ @SuppressWarnings("unused") @AppEngineInternal diff --git a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/p1/PkgWithAppEngineInternal.java b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/p1/PkgWithAppEngineInternal.java index 3c116e709..d63439c92 100644 --- a/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/p1/PkgWithAppEngineInternal.java +++ b/google3/third_party/java_src/appengine_standard/api_compatibility_tests/src/test/java/com/google/appengine/apicompat/testclasses/p1/PkgWithAppEngineInternal.java @@ -17,6 +17,5 @@ package com.google.appengine.apicompat.testclasses.p1; /** - * @author ozarov@google.com (Arie Ozarov) */ public class PkgWithAppEngineInternal {}