From bd09cb5ac59b76a3318fd543d1dcfbaa8fb3977c Mon Sep 17 00:00:00 2001 From: Alex D Date: Mon, 2 Oct 2023 11:02:49 -0700 Subject: [PATCH 01/29] SOLR-16960 Tests should sometimes run with a Tracer (not no-op) (#1972) --- .../org/apache/solr/servlet/ServletUtils.java | 2 +- .../org/apache/solr/util/tracing/TraceUtils.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/solr/core/src/java/org/apache/solr/servlet/ServletUtils.java b/solr/core/src/java/org/apache/solr/servlet/ServletUtils.java index 5297fe44401..2de3b3f2582 100644 --- a/solr/core/src/java/org/apache/solr/servlet/ServletUtils.java +++ b/solr/core/src/java/org/apache/solr/servlet/ServletUtils.java @@ -236,7 +236,7 @@ private static void traceHttpRequestExecution2( try (var scope = context.with(span).makeCurrent()) { assert scope != null; // prevent javac warning about scope being unused TraceUtils.setSpan(request, span); - TraceUtils.ifNotNoop( + TraceUtils.ifValidTraceId( span, s -> MDCLoggingContext.setTracerId(s.getSpanContext().getTraceId())); tracedExecution.run(); } catch (ExceptionWhileTracing e) { diff --git a/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java b/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java index 7e9daa37bbc..7edfe8fc55f 100644 --- a/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java +++ b/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java @@ -21,6 +21,7 @@ import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.api.trace.TraceId; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.context.Context; import io.opentelemetry.context.propagation.TextMapPropagator; @@ -108,6 +109,20 @@ public static void ifNotNoop(Span span, Consumer consumer) { } } + /** + * Sometimes the tests will use a recoding noop span to verify the complete code path so we need + * to distinguish this case and only perform a specific operation (like updating the MDC context) + * only in case the generated trace id is valid + * + * @param span current span + * @param consumer consumer to be called + */ + public static void ifValidTraceId(Span span, Consumer consumer) { + if (TraceId.isValid(span.getSpanContext().getTraceId())) { + consumer.accept(span); + } + } + public static void setSpan(HttpServletRequest req, Span span) { req.setAttribute(REQ_ATTR_TRACING_SPAN, span); } From 62c90c92624ad3e19a22485f580507677cd7c33a Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Mon, 2 Oct 2023 21:08:12 +0200 Subject: [PATCH 02/29] Update dependency org.apache.commons:commons-compress to v1.24.0 (#1910) --- solr/licenses/commons-compress-1.23.0.jar.sha1 | 1 - solr/licenses/commons-compress-1.24.0.jar.sha1 | 1 + versions.lock | 2 +- versions.props | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 solr/licenses/commons-compress-1.23.0.jar.sha1 create mode 100644 solr/licenses/commons-compress-1.24.0.jar.sha1 diff --git a/solr/licenses/commons-compress-1.23.0.jar.sha1 b/solr/licenses/commons-compress-1.23.0.jar.sha1 deleted file mode 100644 index a5708f08bbb..00000000000 --- a/solr/licenses/commons-compress-1.23.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4af2060ea9b0c8b74f1854c6cafe4d43cfc161fc diff --git a/solr/licenses/commons-compress-1.24.0.jar.sha1 b/solr/licenses/commons-compress-1.24.0.jar.sha1 new file mode 100644 index 00000000000..f770e229028 --- /dev/null +++ b/solr/licenses/commons-compress-1.24.0.jar.sha1 @@ -0,0 +1 @@ +b4b1b5a3d9573b2970fddab236102c0a4d27d35e diff --git a/versions.lock b/versions.lock index 0b6f62a0dff..2209f50f97b 100644 --- a/versions.lock +++ b/versions.lock @@ -169,7 +169,7 @@ org.apache.calcite:calcite-linq4j:1.34.0 (2 constraints: c912b74b) org.apache.calcite.avatica:avatica-core:1.23.0 (3 constraints: fb20cdcb) org.apache.calcite.avatica:avatica-metrics:1.23.0 (1 constraints: 991049c4) org.apache.commons:commons-collections4:4.4 (3 constraints: 2a172a57) -org.apache.commons:commons-compress:1.23.0 (3 constraints: fd1bd8d1) +org.apache.commons:commons-compress:1.24.0 (3 constraints: fe1b1fd2) org.apache.commons:commons-configuration2:2.9.0 (1 constraints: 0d051036) org.apache.commons:commons-csv:1.9.0 (1 constraints: 610cfc01) org.apache.commons:commons-exec:1.3 (2 constraints: a41056b8) diff --git a/versions.props b/versions.props index 9f7185e206a..c9283262a2f 100644 --- a/versions.props +++ b/versions.props @@ -34,7 +34,7 @@ no.nav.security:mock-oauth2-server=0.4.3 org.apache.calcite.avatica:avatica-core=1.23.0 org.apache.calcite:*=1.34.0 org.apache.commons:commons-collections4=4.4 -org.apache.commons:commons-compress=1.23.0 +org.apache.commons:commons-compress=1.24.0 org.apache.commons:commons-configuration2=2.9.0 org.apache.commons:commons-exec=1.3 org.apache.commons:commons-lang3=3.13.0 From 15813586241c6bce15056a8ac715b1cb3ce76678 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Mon, 2 Oct 2023 21:09:34 +0200 Subject: [PATCH 03/29] Update dependency no.nav.security:mock-oauth2-server to v0.5.10 (#1608) --- solr/licenses/accessors-smart-2.4.7.jar.sha1 | 1 - solr/licenses/accessors-smart-2.4.9.jar.sha1 | 1 + solr/licenses/freemarker-2.3.31.jar.sha1 | 1 - solr/licenses/freemarker-2.3.32.jar.sha1 | 1 + solr/licenses/json-smart-2.4.10.jar.sha1 | 1 + solr/licenses/json-smart-2.4.7.jar.sha1 | 1 - .../kotlin-logging-jvm-2.1.21.jar.sha1 | 1 - .../kotlin-logging-jvm-3.0.5.jar.sha1 | 1 + solr/licenses/kotlin-reflect-1.6.10.jar.sha1 | 1 - solr/licenses/kotlin-reflect-1.8.22.jar.sha1 | 1 + solr/licenses/kotlin-stdlib-1.6.20.jar.sha1 | 1 - solr/licenses/kotlin-stdlib-1.8.22.jar.sha1 | 1 + .../kotlin-stdlib-common-1.6.20.jar.sha1 | 1 - .../kotlin-stdlib-common-1.8.22.jar.sha1 | 1 + .../kotlin-stdlib-jdk7-1.6.20.jar.sha1 | 1 - .../kotlin-stdlib-jdk7-1.8.0.jar.sha1 | 1 + .../kotlin-stdlib-jdk8-1.6.20.jar.sha1 | 1 - .../kotlin-stdlib-jdk8-1.8.0.jar.sha1 | 1 + solr/licenses/lang-tag-1.5.jar.sha1 | 1 - solr/licenses/lang-tag-1.7.jar.sha1 | 1 + .../mock-oauth2-server-0.4.3.jar.sha1 | 1 - .../mock-oauth2-server-0.5.10.jar.sha1 | 1 + solr/licenses/mockwebserver-4.11.0.jar.sha1 | 1 + solr/licenses/mockwebserver-4.9.3.jar.sha1 | 1 - solr/licenses/nimbus-jose-jwt-9.16.1.jar.sha1 | 1 - solr/licenses/nimbus-jose-jwt-9.30.2.jar.sha1 | 1 + .../licenses/oauth2-oidc-sdk-10.10.1.jar.sha1 | 1 + solr/licenses/oauth2-oidc-sdk-9.22.2.jar.sha1 | 1 - versions.lock | 40 +++++++++---------- versions.props | 2 +- 30 files changed, 35 insertions(+), 35 deletions(-) delete mode 100644 solr/licenses/accessors-smart-2.4.7.jar.sha1 create mode 100644 solr/licenses/accessors-smart-2.4.9.jar.sha1 delete mode 100644 solr/licenses/freemarker-2.3.31.jar.sha1 create mode 100644 solr/licenses/freemarker-2.3.32.jar.sha1 create mode 100644 solr/licenses/json-smart-2.4.10.jar.sha1 delete mode 100644 solr/licenses/json-smart-2.4.7.jar.sha1 delete mode 100644 solr/licenses/kotlin-logging-jvm-2.1.21.jar.sha1 create mode 100644 solr/licenses/kotlin-logging-jvm-3.0.5.jar.sha1 delete mode 100644 solr/licenses/kotlin-reflect-1.6.10.jar.sha1 create mode 100644 solr/licenses/kotlin-reflect-1.8.22.jar.sha1 delete mode 100644 solr/licenses/kotlin-stdlib-1.6.20.jar.sha1 create mode 100644 solr/licenses/kotlin-stdlib-1.8.22.jar.sha1 delete mode 100644 solr/licenses/kotlin-stdlib-common-1.6.20.jar.sha1 create mode 100644 solr/licenses/kotlin-stdlib-common-1.8.22.jar.sha1 delete mode 100644 solr/licenses/kotlin-stdlib-jdk7-1.6.20.jar.sha1 create mode 100644 solr/licenses/kotlin-stdlib-jdk7-1.8.0.jar.sha1 delete mode 100644 solr/licenses/kotlin-stdlib-jdk8-1.6.20.jar.sha1 create mode 100644 solr/licenses/kotlin-stdlib-jdk8-1.8.0.jar.sha1 delete mode 100644 solr/licenses/lang-tag-1.5.jar.sha1 create mode 100644 solr/licenses/lang-tag-1.7.jar.sha1 delete mode 100644 solr/licenses/mock-oauth2-server-0.4.3.jar.sha1 create mode 100644 solr/licenses/mock-oauth2-server-0.5.10.jar.sha1 create mode 100644 solr/licenses/mockwebserver-4.11.0.jar.sha1 delete mode 100644 solr/licenses/mockwebserver-4.9.3.jar.sha1 delete mode 100644 solr/licenses/nimbus-jose-jwt-9.16.1.jar.sha1 create mode 100644 solr/licenses/nimbus-jose-jwt-9.30.2.jar.sha1 create mode 100644 solr/licenses/oauth2-oidc-sdk-10.10.1.jar.sha1 delete mode 100644 solr/licenses/oauth2-oidc-sdk-9.22.2.jar.sha1 diff --git a/solr/licenses/accessors-smart-2.4.7.jar.sha1 b/solr/licenses/accessors-smart-2.4.7.jar.sha1 deleted file mode 100644 index 6d865c8b50c..00000000000 --- a/solr/licenses/accessors-smart-2.4.7.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3970cfc505e6657ca60f3aa57c849f6043000d7a diff --git a/solr/licenses/accessors-smart-2.4.9.jar.sha1 b/solr/licenses/accessors-smart-2.4.9.jar.sha1 new file mode 100644 index 00000000000..4f92fc9a8fc --- /dev/null +++ b/solr/licenses/accessors-smart-2.4.9.jar.sha1 @@ -0,0 +1 @@ +32e540749224c22c9b17de8137e916aae9057e22 diff --git a/solr/licenses/freemarker-2.3.31.jar.sha1 b/solr/licenses/freemarker-2.3.31.jar.sha1 deleted file mode 100644 index d870a1a4a2c..00000000000 --- a/solr/licenses/freemarker-2.3.31.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -cd4fc0942b4a8bdb19f3b669aa42136fb54feb55 diff --git a/solr/licenses/freemarker-2.3.32.jar.sha1 b/solr/licenses/freemarker-2.3.32.jar.sha1 new file mode 100644 index 00000000000..60149ea2b7f --- /dev/null +++ b/solr/licenses/freemarker-2.3.32.jar.sha1 @@ -0,0 +1 @@ +8607259125d4fbe982754227ea4f75dd513c6d19 diff --git a/solr/licenses/json-smart-2.4.10.jar.sha1 b/solr/licenses/json-smart-2.4.10.jar.sha1 new file mode 100644 index 00000000000..5b6f2472c45 --- /dev/null +++ b/solr/licenses/json-smart-2.4.10.jar.sha1 @@ -0,0 +1 @@ +91cb329e9424bf32131eeb1ce2d17bf31b9899bc diff --git a/solr/licenses/json-smart-2.4.7.jar.sha1 b/solr/licenses/json-smart-2.4.7.jar.sha1 deleted file mode 100644 index 92aebfdd778..00000000000 --- a/solr/licenses/json-smart-2.4.7.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8d7f4c1530c07c54930935f3da85f48b83b3c109 diff --git a/solr/licenses/kotlin-logging-jvm-2.1.21.jar.sha1 b/solr/licenses/kotlin-logging-jvm-2.1.21.jar.sha1 deleted file mode 100644 index 590ef71bee7..00000000000 --- a/solr/licenses/kotlin-logging-jvm-2.1.21.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7a65a2789a27c67c281a4fe9e78689cf5e2b36d8 diff --git a/solr/licenses/kotlin-logging-jvm-3.0.5.jar.sha1 b/solr/licenses/kotlin-logging-jvm-3.0.5.jar.sha1 new file mode 100644 index 00000000000..7ccd1527962 --- /dev/null +++ b/solr/licenses/kotlin-logging-jvm-3.0.5.jar.sha1 @@ -0,0 +1 @@ +82f2256aeedccfd9c27ea585274a50bf06517383 diff --git a/solr/licenses/kotlin-reflect-1.6.10.jar.sha1 b/solr/licenses/kotlin-reflect-1.6.10.jar.sha1 deleted file mode 100644 index c8ade6487d9..00000000000 --- a/solr/licenses/kotlin-reflect-1.6.10.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1cbe9c92c12a94eea200d23c2bbaedaf3daf5132 diff --git a/solr/licenses/kotlin-reflect-1.8.22.jar.sha1 b/solr/licenses/kotlin-reflect-1.8.22.jar.sha1 new file mode 100644 index 00000000000..02571f1cce1 --- /dev/null +++ b/solr/licenses/kotlin-reflect-1.8.22.jar.sha1 @@ -0,0 +1 @@ +b52be44bc57cb6fd2169a29aefa4507c4e49c858 diff --git a/solr/licenses/kotlin-stdlib-1.6.20.jar.sha1 b/solr/licenses/kotlin-stdlib-1.6.20.jar.sha1 deleted file mode 100644 index 35a1db0e8cd..00000000000 --- a/solr/licenses/kotlin-stdlib-1.6.20.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6cedc143badbb4f1c6b7f5a340b04edff1743208 diff --git a/solr/licenses/kotlin-stdlib-1.8.22.jar.sha1 b/solr/licenses/kotlin-stdlib-1.8.22.jar.sha1 new file mode 100644 index 00000000000..cb50d0ab7ab --- /dev/null +++ b/solr/licenses/kotlin-stdlib-1.8.22.jar.sha1 @@ -0,0 +1 @@ +636bf8b320e7627482771bbac9ed7246773c02bd diff --git a/solr/licenses/kotlin-stdlib-common-1.6.20.jar.sha1 b/solr/licenses/kotlin-stdlib-common-1.6.20.jar.sha1 deleted file mode 100644 index 7359fecd8a2..00000000000 --- a/solr/licenses/kotlin-stdlib-common-1.6.20.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -27b4562b6713d70f458c6d7ea39aadacb8e6a92b diff --git a/solr/licenses/kotlin-stdlib-common-1.8.22.jar.sha1 b/solr/licenses/kotlin-stdlib-common-1.8.22.jar.sha1 new file mode 100644 index 00000000000..7c3d697f6fa --- /dev/null +++ b/solr/licenses/kotlin-stdlib-common-1.8.22.jar.sha1 @@ -0,0 +1 @@ +1a8e3601703ae14bb58757ea6b2d8e8e5935a586 diff --git a/solr/licenses/kotlin-stdlib-jdk7-1.6.20.jar.sha1 b/solr/licenses/kotlin-stdlib-jdk7-1.6.20.jar.sha1 deleted file mode 100644 index e649f57208c..00000000000 --- a/solr/licenses/kotlin-stdlib-jdk7-1.6.20.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f8629f336bad4001c89e9cffa5ef3d4b5d0f5e22 diff --git a/solr/licenses/kotlin-stdlib-jdk7-1.8.0.jar.sha1 b/solr/licenses/kotlin-stdlib-jdk7-1.8.0.jar.sha1 new file mode 100644 index 00000000000..4309dede1fa --- /dev/null +++ b/solr/licenses/kotlin-stdlib-jdk7-1.8.0.jar.sha1 @@ -0,0 +1 @@ +3c91271347f678c239607abb676d4032a7898427 diff --git a/solr/licenses/kotlin-stdlib-jdk8-1.6.20.jar.sha1 b/solr/licenses/kotlin-stdlib-jdk8-1.6.20.jar.sha1 deleted file mode 100644 index dcea4bda07a..00000000000 --- a/solr/licenses/kotlin-stdlib-jdk8-1.6.20.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -dab8089bca6ac0e394c37281ea8cff2f99acd421 diff --git a/solr/licenses/kotlin-stdlib-jdk8-1.8.0.jar.sha1 b/solr/licenses/kotlin-stdlib-jdk8-1.8.0.jar.sha1 new file mode 100644 index 00000000000..37663cb32db --- /dev/null +++ b/solr/licenses/kotlin-stdlib-jdk8-1.8.0.jar.sha1 @@ -0,0 +1 @@ +ed04f49e186a116753ad70d34f0ac2925d1d8020 diff --git a/solr/licenses/lang-tag-1.5.jar.sha1 b/solr/licenses/lang-tag-1.5.jar.sha1 deleted file mode 100644 index 3a38e4930d3..00000000000 --- a/solr/licenses/lang-tag-1.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7e82e3c4c593f85addf4bd209abde4f8ff933a07 diff --git a/solr/licenses/lang-tag-1.7.jar.sha1 b/solr/licenses/lang-tag-1.7.jar.sha1 new file mode 100644 index 00000000000..7da7f31c5ce --- /dev/null +++ b/solr/licenses/lang-tag-1.7.jar.sha1 @@ -0,0 +1 @@ +97c73ecd70bc7e8eefb26c5eea84f251a63f1031 diff --git a/solr/licenses/mock-oauth2-server-0.4.3.jar.sha1 b/solr/licenses/mock-oauth2-server-0.4.3.jar.sha1 deleted file mode 100644 index 3347ef06d63..00000000000 --- a/solr/licenses/mock-oauth2-server-0.4.3.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -28586c0d946551b69198535c46ae55389ad39cae diff --git a/solr/licenses/mock-oauth2-server-0.5.10.jar.sha1 b/solr/licenses/mock-oauth2-server-0.5.10.jar.sha1 new file mode 100644 index 00000000000..da3d7cc1a78 --- /dev/null +++ b/solr/licenses/mock-oauth2-server-0.5.10.jar.sha1 @@ -0,0 +1 @@ +1d1b2d193db1c5646d530e87b1dd5510b8192ece diff --git a/solr/licenses/mockwebserver-4.11.0.jar.sha1 b/solr/licenses/mockwebserver-4.11.0.jar.sha1 new file mode 100644 index 00000000000..443999ff488 --- /dev/null +++ b/solr/licenses/mockwebserver-4.11.0.jar.sha1 @@ -0,0 +1 @@ +1dc21cc47456f1e564a698102e6505eff931780f diff --git a/solr/licenses/mockwebserver-4.9.3.jar.sha1 b/solr/licenses/mockwebserver-4.9.3.jar.sha1 deleted file mode 100644 index c9505428447..00000000000 --- a/solr/licenses/mockwebserver-4.9.3.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -436df81ae01a2326b72d013783a782b595f173a5 diff --git a/solr/licenses/nimbus-jose-jwt-9.16.1.jar.sha1 b/solr/licenses/nimbus-jose-jwt-9.16.1.jar.sha1 deleted file mode 100644 index c6839fccdd9..00000000000 --- a/solr/licenses/nimbus-jose-jwt-9.16.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6bd47fe347968ea624355dda6144e98596b62d12 diff --git a/solr/licenses/nimbus-jose-jwt-9.30.2.jar.sha1 b/solr/licenses/nimbus-jose-jwt-9.30.2.jar.sha1 new file mode 100644 index 00000000000..98b8f46f617 --- /dev/null +++ b/solr/licenses/nimbus-jose-jwt-9.30.2.jar.sha1 @@ -0,0 +1 @@ +3a291d6af4007fd88df384249378130102912385 diff --git a/solr/licenses/oauth2-oidc-sdk-10.10.1.jar.sha1 b/solr/licenses/oauth2-oidc-sdk-10.10.1.jar.sha1 new file mode 100644 index 00000000000..94aec1b8cf7 --- /dev/null +++ b/solr/licenses/oauth2-oidc-sdk-10.10.1.jar.sha1 @@ -0,0 +1 @@ +a9a0d131feff0f8a059c306bd5fca886bf8195cc diff --git a/solr/licenses/oauth2-oidc-sdk-9.22.2.jar.sha1 b/solr/licenses/oauth2-oidc-sdk-9.22.2.jar.sha1 deleted file mode 100644 index 21e85703982..00000000000 --- a/solr/licenses/oauth2-oidc-sdk-9.22.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2339e9e610683544bd69d7c3c839df2f0e97f7aa diff --git a/versions.lock b/versions.lock index 2209f50f97b..ad5240b1019 100644 --- a/versions.lock +++ b/versions.lock @@ -9,7 +9,7 @@ com.epam:parso:2.0.14 (1 constraints: 8e0c750e) com.fasterxml.jackson:jackson-bom:2.15.2 (12 constraints: 4ef8ad55) com.fasterxml.jackson.core:jackson-annotations:2.15.2 (10 constraints: 9bbe6617) com.fasterxml.jackson.core:jackson-core:2.15.2 (13 constraints: 42025e28) -com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 89633f8a) +com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 8c63008e) com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2 (2 constraints: 631c9af1) com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2 (1 constraints: ba0eab66) com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.15.2 (2 constraints: a624c5e0) @@ -70,7 +70,7 @@ com.mchange:mchange-commons-java:0.2.19 (1 constraints: 84075b75) com.pff:java-libpst:0.9.3 (1 constraints: 630cfa01) com.rometools:rome:1.18.0 (1 constraints: 910c870e) com.rometools:rome-utils:1.18.0 (1 constraints: 10095d96) -com.squareup.okhttp3:okhttp:4.11.0 (2 constraints: 8126a451) +com.squareup.okhttp3:okhttp:4.11.0 (2 constraints: a7264c6a) com.squareup.okio:okio:3.2.0 (1 constraints: 4f0c2cfd) com.squareup.okio:okio-jvm:3.2.0 (1 constraints: 4c0ac7b9) com.sun.activation:jakarta.activation:1.2.2 (1 constraints: ba0dac35) @@ -323,10 +323,10 @@ org.javassist:javassist:3.25.0-GA (1 constraints: 2a110ef1) org.jctools:jctools-core:4.0.1 (1 constraints: 07050036) org.jdom:jdom2:2.0.6.1 (1 constraints: be0c371b) org.jetbrains:annotations:13.0 (1 constraints: df0e795c) -org.jetbrains.kotlin:kotlin-stdlib:1.6.20 (5 constraints: d04c515f) -org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 (3 constraints: 342c6071) -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.20 (1 constraints: e010f5d2) -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 (4 constraints: d9389ae4) +org.jetbrains.kotlin:kotlin-stdlib:1.8.22 (5 constraints: 7a4c42d2) +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 (3 constraints: 3a2cc871) +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 (1 constraints: b01019c2) +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 (4 constraints: dd389ae5) org.junit:junit-bom:5.9.1 (1 constraints: c8116ede) org.locationtech.jts:jts-core:1.19.0 (2 constraints: a31de760) org.locationtech.jts.io:jts-io-common:1.19.0 (1 constraints: 930d513a) @@ -337,7 +337,7 @@ org.openjdk.jmh:jmh-core:1.37 (1 constraints: df04fc30) org.osgi:org.osgi.resource:1.0.0 (1 constraints: e60f2999) org.osgi:org.osgi.service.serviceloader:1.0.0 (1 constraints: e60f2999) org.osgi:osgi.annotation:8.1.0 (1 constraints: 0b051636) -org.ow2.asm:asm:9.3 (5 constraints: e139bef1) +org.ow2.asm:asm:9.3 (5 constraints: e339cef2) org.ow2.asm:asm-analysis:7.2 (1 constraints: e409d9a5) org.ow2.asm:asm-commons:7.2 (1 constraints: 6b0f7267) org.ow2.asm:asm-tree:7.2 (2 constraints: 2f14468c) @@ -346,7 +346,7 @@ org.reactivestreams:reactive-streams:1.0.3 (3 constraints: 3c2b02fd) org.semver4j:semver4j:5.1.0 (1 constraints: 08050736) org.slf4j:jcl-over-slf4j:2.0.9 (3 constraints: cf17cfa6) org.slf4j:jul-to-slf4j:2.0.9 (3 constraints: 29286349) -org.slf4j:slf4j-api:2.0.9 (59 constraints: 131131a0) +org.slf4j:slf4j-api:2.0.9 (59 constraints: db106466) org.tallison:isoparser:1.9.41.7 (1 constraints: fb0c5528) org.tallison:jmatio:1.5 (1 constraints: ff0b57e9) org.tallison:metadata-extractor:2.17.1.0 (1 constraints: f00c3b28) @@ -390,25 +390,25 @@ com.amazonaws:jmespath-java:1.12.488 (2 constraints: cc1a98b5) com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2 (2 constraints: aa195413) com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.2 (3 constraints: fc2e56b4) com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2 (4 constraints: 6d485635) -com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2 (2 constraints: a61d3360) +com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2 (2 constraints: a91d3a60) com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.2 (2 constraints: 0c243f82) com.google.cloud:google-cloud-nio:0.126.16 (1 constraints: cd0e267b) com.nimbusds:content-type:2.2 (1 constraints: d80b68eb) -com.nimbusds:lang-tag:1.5 (1 constraints: da0b68eb) -com.nimbusds:nimbus-jose-jwt:9.16.1 (1 constraints: 730c5410) -com.nimbusds:oauth2-oidc-sdk:9.22.2 (1 constraints: f50ebb71) -com.squareup.okhttp3:mockwebserver:4.9.3 (1 constraints: c60ebf62) -io.github.microutils:kotlin-logging:2.1.21 (1 constraints: ec0e8871) -io.github.microutils:kotlin-logging-jvm:2.1.21 (1 constraints: af0f358c) +com.nimbusds:lang-tag:1.7 (1 constraints: dc0b6aeb) +com.nimbusds:nimbus-jose-jwt:9.30.2 (1 constraints: 700c4b10) +com.nimbusds:oauth2-oidc-sdk:10.10.1 (1 constraints: 190f9b80) +com.squareup.okhttp3:mockwebserver:4.11.0 (1 constraints: ec0e9471) +io.github.microutils:kotlin-logging:3.0.5 (1 constraints: be0ea162) +io.github.microutils:kotlin-logging-jvm:3.0.5 (1 constraints: 810f8b7c) io.micrometer:micrometer-core:1.9.11 (1 constraints: fd162819) io.opentelemetry:opentelemetry-sdk-testing:1.30.1 (1 constraints: 920fe383) jakarta.servlet:jakarta.servlet-api:4.0.4 (4 constraints: 586e1f6a) jakarta.websocket:jakarta.websocket-api:1.1.2 (1 constraints: 92155ab9) javax.inject:javax.inject:1 (1 constraints: 7a0df617) net.bytebuddy:byte-buddy:1.14.6 (1 constraints: 460b44de) -net.minidev:accessors-smart:2.4.7 (1 constraints: 4e0a90b8) -net.minidev:json-smart:2.4.7 (1 constraints: 160e936e) -no.nav.security:mock-oauth2-server:0.4.3 (1 constraints: 0905fa35) +net.minidev:accessors-smart:2.4.9 (1 constraints: 500a92b8) +net.minidev:json-smart:2.4.10 (1 constraints: 400e9a7c) +no.nav.security:mock-oauth2-server:0.5.10 (1 constraints: 3805333b) org.apache.hadoop:hadoop-client-minicluster:3.3.5 (1 constraints: 0d050836) org.apache.hadoop:hadoop-hdfs:3.3.5 (1 constraints: 0d050836) org.apache.hadoop:hadoop-minikdc:3.3.5 (1 constraints: 0d050836) @@ -419,7 +419,7 @@ org.apache.kerby:kerb-identity:1.0.1 (1 constraints: 5f0cb602) org.apache.kerby:kerb-server:1.0.1 (1 constraints: d10b65f2) org.apache.kerby:kerb-simplekdc:1.0.1 (1 constraints: dc0d7e3e) org.apache.tomcat.embed:tomcat-embed-el:9.0.75 (1 constraints: d31557cf) -org.freemarker:freemarker:2.3.31 (1 constraints: ef0e9271) +org.freemarker:freemarker:2.3.32 (1 constraints: f00e9371) org.glassfish.grizzly:grizzly-framework:2.4.4 (1 constraints: 670fe271) org.glassfish.grizzly:grizzly-http:2.4.4 (1 constraints: 2b127cf5) org.glassfish.grizzly:grizzly-http-server:2.4.4 (2 constraints: bb2c391b) @@ -433,7 +433,7 @@ org.glassfish.jersey.test-framework:jersey-test-framework-core:2.35 (2 constrain org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.35 (1 constraints: de04fe30) org.hdrhistogram:HdrHistogram:2.1.12 (1 constraints: 520d2029) org.hsqldb:hsqldb:2.7.2 (1 constraints: 0d050c36) -org.jetbrains.kotlin:kotlin-reflect:1.6.10 (2 constraints: 6224e0e2) +org.jetbrains.kotlin:kotlin-reflect:1.8.22 (2 constraints: 6724ece2) org.latencyutils:LatencyUtils:2.0.3 (1 constraints: 210dcd1b) org.mockito:mockito-core:5.5.0 (2 constraints: d61174fd) org.mockito:mockito-subclass:5.5.0 (1 constraints: 0c051336) diff --git a/versions.props b/versions.props index c9283262a2f..fee3ed2976d 100644 --- a/versions.props +++ b/versions.props @@ -30,7 +30,7 @@ jakarta.ws.rs:jakarta.ws.rs-api=2.1.6 junit:junit=4.13.2 net.sourceforge.argparse4j:argparse4j=0.9.0 net.thisptr:jackson-jq=0.0.13 -no.nav.security:mock-oauth2-server=0.4.3 +no.nav.security:mock-oauth2-server=0.5.10 org.apache.calcite.avatica:avatica-core=1.23.0 org.apache.calcite:*=1.34.0 org.apache.commons:commons-collections4=4.4 From a03754c7d74cd71f1c9529b2f2e0d65aa2421297 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Mon, 2 Oct 2023 21:11:11 +0200 Subject: [PATCH 04/29] Update software.amazon.awssdk:* to v2.20.155 (#1877) --- solr/licenses/annotations-2.20.128.jar.sha1 | 1 - solr/licenses/annotations-2.20.155.jar.sha1 | 1 + solr/licenses/apache-client-2.20.128.jar.sha1 | 1 - solr/licenses/apache-client-2.20.155.jar.sha1 | 1 + solr/licenses/arns-2.20.128.jar.sha1 | 1 - solr/licenses/arns-2.20.155.jar.sha1 | 1 + solr/licenses/auth-2.20.128.jar.sha1 | 1 - solr/licenses/auth-2.20.155.jar.sha1 | 1 + solr/licenses/aws-core-2.20.128.jar.sha1 | 1 - solr/licenses/aws-core-2.20.155.jar.sha1 | 1 + .../aws-query-protocol-2.20.128.jar.sha1 | 1 - .../aws-query-protocol-2.20.155.jar.sha1 | 1 + .../aws-xml-protocol-2.20.128.jar.sha1 | 1 - .../aws-xml-protocol-2.20.155.jar.sha1 | 1 + solr/licenses/crt-core-2.20.128.jar.sha1 | 1 - solr/licenses/crt-core-2.20.155.jar.sha1 | 1 + solr/licenses/endpoints-spi-2.20.128.jar.sha1 | 1 - solr/licenses/endpoints-spi-2.20.155.jar.sha1 | 1 + .../http-client-spi-2.20.128.jar.sha1 | 1 - .../http-client-spi-2.20.155.jar.sha1 | 1 + solr/licenses/json-utils-2.20.128.jar.sha1 | 1 - solr/licenses/json-utils-2.20.155.jar.sha1 | 1 + solr/licenses/metrics-spi-2.20.128.jar.sha1 | 1 - solr/licenses/metrics-spi-2.20.155.jar.sha1 | 1 + solr/licenses/profiles-2.20.128.jar.sha1 | 1 - solr/licenses/profiles-2.20.155.jar.sha1 | 1 + solr/licenses/protocol-core-2.20.128.jar.sha1 | 1 - solr/licenses/protocol-core-2.20.155.jar.sha1 | 1 + solr/licenses/reactive-streams-1.0.3.jar.sha1 | 1 - solr/licenses/reactive-streams-1.0.4.jar.sha1 | 1 + solr/licenses/regions-2.20.128.jar.sha1 | 1 - solr/licenses/regions-2.20.155.jar.sha1 | 1 + solr/licenses/s3-2.20.128.jar.sha1 | 1 - solr/licenses/s3-2.20.155.jar.sha1 | 1 + solr/licenses/sdk-core-2.20.128.jar.sha1 | 1 - solr/licenses/sdk-core-2.20.155.jar.sha1 | 1 + solr/licenses/sts-2.20.128.jar.sha1 | 1 - solr/licenses/sts-2.20.155.jar.sha1 | 1 + ...third-party-jackson-core-2.20.128.jar.sha1 | 1 - ...third-party-jackson-core-2.20.155.jar.sha1 | 1 + .../url-connection-client-2.20.128.jar.sha1 | 1 - .../url-connection-client-2.20.155.jar.sha1 | 1 + solr/licenses/utils-2.20.128.jar.sha1 | 1 - solr/licenses/utils-2.20.155.jar.sha1 | 1 + versions.lock | 46 +++++++++---------- versions.props | 2 +- 46 files changed, 46 insertions(+), 46 deletions(-) delete mode 100644 solr/licenses/annotations-2.20.128.jar.sha1 create mode 100644 solr/licenses/annotations-2.20.155.jar.sha1 delete mode 100644 solr/licenses/apache-client-2.20.128.jar.sha1 create mode 100644 solr/licenses/apache-client-2.20.155.jar.sha1 delete mode 100644 solr/licenses/arns-2.20.128.jar.sha1 create mode 100644 solr/licenses/arns-2.20.155.jar.sha1 delete mode 100644 solr/licenses/auth-2.20.128.jar.sha1 create mode 100644 solr/licenses/auth-2.20.155.jar.sha1 delete mode 100644 solr/licenses/aws-core-2.20.128.jar.sha1 create mode 100644 solr/licenses/aws-core-2.20.155.jar.sha1 delete mode 100644 solr/licenses/aws-query-protocol-2.20.128.jar.sha1 create mode 100644 solr/licenses/aws-query-protocol-2.20.155.jar.sha1 delete mode 100644 solr/licenses/aws-xml-protocol-2.20.128.jar.sha1 create mode 100644 solr/licenses/aws-xml-protocol-2.20.155.jar.sha1 delete mode 100644 solr/licenses/crt-core-2.20.128.jar.sha1 create mode 100644 solr/licenses/crt-core-2.20.155.jar.sha1 delete mode 100644 solr/licenses/endpoints-spi-2.20.128.jar.sha1 create mode 100644 solr/licenses/endpoints-spi-2.20.155.jar.sha1 delete mode 100644 solr/licenses/http-client-spi-2.20.128.jar.sha1 create mode 100644 solr/licenses/http-client-spi-2.20.155.jar.sha1 delete mode 100644 solr/licenses/json-utils-2.20.128.jar.sha1 create mode 100644 solr/licenses/json-utils-2.20.155.jar.sha1 delete mode 100644 solr/licenses/metrics-spi-2.20.128.jar.sha1 create mode 100644 solr/licenses/metrics-spi-2.20.155.jar.sha1 delete mode 100644 solr/licenses/profiles-2.20.128.jar.sha1 create mode 100644 solr/licenses/profiles-2.20.155.jar.sha1 delete mode 100644 solr/licenses/protocol-core-2.20.128.jar.sha1 create mode 100644 solr/licenses/protocol-core-2.20.155.jar.sha1 delete mode 100644 solr/licenses/reactive-streams-1.0.3.jar.sha1 create mode 100644 solr/licenses/reactive-streams-1.0.4.jar.sha1 delete mode 100644 solr/licenses/regions-2.20.128.jar.sha1 create mode 100644 solr/licenses/regions-2.20.155.jar.sha1 delete mode 100644 solr/licenses/s3-2.20.128.jar.sha1 create mode 100644 solr/licenses/s3-2.20.155.jar.sha1 delete mode 100644 solr/licenses/sdk-core-2.20.128.jar.sha1 create mode 100644 solr/licenses/sdk-core-2.20.155.jar.sha1 delete mode 100644 solr/licenses/sts-2.20.128.jar.sha1 create mode 100644 solr/licenses/sts-2.20.155.jar.sha1 delete mode 100644 solr/licenses/third-party-jackson-core-2.20.128.jar.sha1 create mode 100644 solr/licenses/third-party-jackson-core-2.20.155.jar.sha1 delete mode 100644 solr/licenses/url-connection-client-2.20.128.jar.sha1 create mode 100644 solr/licenses/url-connection-client-2.20.155.jar.sha1 delete mode 100644 solr/licenses/utils-2.20.128.jar.sha1 create mode 100644 solr/licenses/utils-2.20.155.jar.sha1 diff --git a/solr/licenses/annotations-2.20.128.jar.sha1 b/solr/licenses/annotations-2.20.128.jar.sha1 deleted file mode 100644 index f669d174c70..00000000000 --- a/solr/licenses/annotations-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4eba3312fad5b1b621fde4cfbf1b9780591589d5 diff --git a/solr/licenses/annotations-2.20.155.jar.sha1 b/solr/licenses/annotations-2.20.155.jar.sha1 new file mode 100644 index 00000000000..1bedca3dc8f --- /dev/null +++ b/solr/licenses/annotations-2.20.155.jar.sha1 @@ -0,0 +1 @@ +23b82843c50fa97f3cfe9b432b2b10f6800f045d diff --git a/solr/licenses/apache-client-2.20.128.jar.sha1 b/solr/licenses/apache-client-2.20.128.jar.sha1 deleted file mode 100644 index 0ef9ff55ec0..00000000000 --- a/solr/licenses/apache-client-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5b82f09fd66fbd3c0b27ff88f7eb2e9a78e9a080 diff --git a/solr/licenses/apache-client-2.20.155.jar.sha1 b/solr/licenses/apache-client-2.20.155.jar.sha1 new file mode 100644 index 00000000000..9ac8f5ec5d8 --- /dev/null +++ b/solr/licenses/apache-client-2.20.155.jar.sha1 @@ -0,0 +1 @@ +7b87fc696d3eb2da22799a63a3eae86f2b323167 diff --git a/solr/licenses/arns-2.20.128.jar.sha1 b/solr/licenses/arns-2.20.128.jar.sha1 deleted file mode 100644 index 395694a27e7..00000000000 --- a/solr/licenses/arns-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5e809b3b87e6f2806e0b67a390d3fe07fcaf7c5e diff --git a/solr/licenses/arns-2.20.155.jar.sha1 b/solr/licenses/arns-2.20.155.jar.sha1 new file mode 100644 index 00000000000..3da1c11d488 --- /dev/null +++ b/solr/licenses/arns-2.20.155.jar.sha1 @@ -0,0 +1 @@ +12d2da19cbd401871fe939859d4b7c1c0e46b547 diff --git a/solr/licenses/auth-2.20.128.jar.sha1 b/solr/licenses/auth-2.20.128.jar.sha1 deleted file mode 100644 index a7481505d04..00000000000 --- a/solr/licenses/auth-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a27499eb27835bb21f0a8f6d6df9b7dcd2725529 diff --git a/solr/licenses/auth-2.20.155.jar.sha1 b/solr/licenses/auth-2.20.155.jar.sha1 new file mode 100644 index 00000000000..5f4c800595a --- /dev/null +++ b/solr/licenses/auth-2.20.155.jar.sha1 @@ -0,0 +1 @@ +7050b40fc4577ed49e9d64283bf9d1baa1cac2d8 diff --git a/solr/licenses/aws-core-2.20.128.jar.sha1 b/solr/licenses/aws-core-2.20.128.jar.sha1 deleted file mode 100644 index 7d0e6e344c4..00000000000 --- a/solr/licenses/aws-core-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ca2c9d71fe86609a6e69c7b770cb282f365ca054 diff --git a/solr/licenses/aws-core-2.20.155.jar.sha1 b/solr/licenses/aws-core-2.20.155.jar.sha1 new file mode 100644 index 00000000000..4b88c5c6d9d --- /dev/null +++ b/solr/licenses/aws-core-2.20.155.jar.sha1 @@ -0,0 +1 @@ +485b86eb7e5a3a04b5f80ed4a215d4b4813318aa diff --git a/solr/licenses/aws-query-protocol-2.20.128.jar.sha1 b/solr/licenses/aws-query-protocol-2.20.128.jar.sha1 deleted file mode 100644 index 6c657e007e0..00000000000 --- a/solr/licenses/aws-query-protocol-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ab36db110c976df57e6bf81b95a24b7736ddac43 diff --git a/solr/licenses/aws-query-protocol-2.20.155.jar.sha1 b/solr/licenses/aws-query-protocol-2.20.155.jar.sha1 new file mode 100644 index 00000000000..d0c47671302 --- /dev/null +++ b/solr/licenses/aws-query-protocol-2.20.155.jar.sha1 @@ -0,0 +1 @@ +c08373623985f9d7ab79d1012fc924280deeeeb9 diff --git a/solr/licenses/aws-xml-protocol-2.20.128.jar.sha1 b/solr/licenses/aws-xml-protocol-2.20.128.jar.sha1 deleted file mode 100644 index 4c0615d9097..00000000000 --- a/solr/licenses/aws-xml-protocol-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ca6a04c0b1d5b492612e5b8816aedfc5895733cf diff --git a/solr/licenses/aws-xml-protocol-2.20.155.jar.sha1 b/solr/licenses/aws-xml-protocol-2.20.155.jar.sha1 new file mode 100644 index 00000000000..69b91a9eea0 --- /dev/null +++ b/solr/licenses/aws-xml-protocol-2.20.155.jar.sha1 @@ -0,0 +1 @@ +6a36a0ba4a6c2e15653865a528e81972cd97d931 diff --git a/solr/licenses/crt-core-2.20.128.jar.sha1 b/solr/licenses/crt-core-2.20.128.jar.sha1 deleted file mode 100644 index 8fd66294823..00000000000 --- a/solr/licenses/crt-core-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fa7c6f4f1037479c021d90d14ec58c55c72f7c4f diff --git a/solr/licenses/crt-core-2.20.155.jar.sha1 b/solr/licenses/crt-core-2.20.155.jar.sha1 new file mode 100644 index 00000000000..1112d6cb8a9 --- /dev/null +++ b/solr/licenses/crt-core-2.20.155.jar.sha1 @@ -0,0 +1 @@ +7224f8d29a70b7a4f3deabcebd0d6656f5392f0a diff --git a/solr/licenses/endpoints-spi-2.20.128.jar.sha1 b/solr/licenses/endpoints-spi-2.20.128.jar.sha1 deleted file mode 100644 index 04050c7defd..00000000000 --- a/solr/licenses/endpoints-spi-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2761b9d660eb3db814d4078eb1e7ee53515effd0 diff --git a/solr/licenses/endpoints-spi-2.20.155.jar.sha1 b/solr/licenses/endpoints-spi-2.20.155.jar.sha1 new file mode 100644 index 00000000000..a68d9951f1e --- /dev/null +++ b/solr/licenses/endpoints-spi-2.20.155.jar.sha1 @@ -0,0 +1 @@ +e711926386d09f10fa92242062f35e4190061fcd diff --git a/solr/licenses/http-client-spi-2.20.128.jar.sha1 b/solr/licenses/http-client-spi-2.20.128.jar.sha1 deleted file mode 100644 index b7986560ff0..00000000000 --- a/solr/licenses/http-client-spi-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d614e5750362fabb312ccb4f2db440d22ed95c72 diff --git a/solr/licenses/http-client-spi-2.20.155.jar.sha1 b/solr/licenses/http-client-spi-2.20.155.jar.sha1 new file mode 100644 index 00000000000..0d7dbf46368 --- /dev/null +++ b/solr/licenses/http-client-spi-2.20.155.jar.sha1 @@ -0,0 +1 @@ +637e98fa218ae01d561f61659bb2cb996c7089aa diff --git a/solr/licenses/json-utils-2.20.128.jar.sha1 b/solr/licenses/json-utils-2.20.128.jar.sha1 deleted file mode 100644 index 3eb1f4fc2e3..00000000000 --- a/solr/licenses/json-utils-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -0f00a80b03dde32f1d7aca472516b6e45e4a8959 diff --git a/solr/licenses/json-utils-2.20.155.jar.sha1 b/solr/licenses/json-utils-2.20.155.jar.sha1 new file mode 100644 index 00000000000..2a5a51baad8 --- /dev/null +++ b/solr/licenses/json-utils-2.20.155.jar.sha1 @@ -0,0 +1 @@ +7052c4be474575352783fd923177709b0148f38a diff --git a/solr/licenses/metrics-spi-2.20.128.jar.sha1 b/solr/licenses/metrics-spi-2.20.128.jar.sha1 deleted file mode 100644 index 83880b2a032..00000000000 --- a/solr/licenses/metrics-spi-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d59e5e2264e03fe27cd1ab1843ccc2984636bc3c diff --git a/solr/licenses/metrics-spi-2.20.155.jar.sha1 b/solr/licenses/metrics-spi-2.20.155.jar.sha1 new file mode 100644 index 00000000000..17ab8dce39c --- /dev/null +++ b/solr/licenses/metrics-spi-2.20.155.jar.sha1 @@ -0,0 +1 @@ +9f0e01d7d299c9c10da744142a07126bf447fe4d diff --git a/solr/licenses/profiles-2.20.128.jar.sha1 b/solr/licenses/profiles-2.20.128.jar.sha1 deleted file mode 100644 index 1d15205ac83..00000000000 --- a/solr/licenses/profiles-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -cbc0b7b6e98b9e168b96ef92c41f3d274b3d403b diff --git a/solr/licenses/profiles-2.20.155.jar.sha1 b/solr/licenses/profiles-2.20.155.jar.sha1 new file mode 100644 index 00000000000..095a469e4a0 --- /dev/null +++ b/solr/licenses/profiles-2.20.155.jar.sha1 @@ -0,0 +1 @@ +f1ceb3c36aad301cc5155ba3a21cd85a0b1758c7 diff --git a/solr/licenses/protocol-core-2.20.128.jar.sha1 b/solr/licenses/protocol-core-2.20.128.jar.sha1 deleted file mode 100644 index 42e13ee9ab0..00000000000 --- a/solr/licenses/protocol-core-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a79cb2c8d2d4399ccbc1f432d23d2b6413c09396 diff --git a/solr/licenses/protocol-core-2.20.155.jar.sha1 b/solr/licenses/protocol-core-2.20.155.jar.sha1 new file mode 100644 index 00000000000..e59b7061c93 --- /dev/null +++ b/solr/licenses/protocol-core-2.20.155.jar.sha1 @@ -0,0 +1 @@ +7a2fdbb394288c060f9a0ddd3162335e276d4178 diff --git a/solr/licenses/reactive-streams-1.0.3.jar.sha1 b/solr/licenses/reactive-streams-1.0.3.jar.sha1 deleted file mode 100644 index b0ab77dad6b..00000000000 --- a/solr/licenses/reactive-streams-1.0.3.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d9fb7a7926ffa635b3dcaa5049fb2bfa25b3e7d0 diff --git a/solr/licenses/reactive-streams-1.0.4.jar.sha1 b/solr/licenses/reactive-streams-1.0.4.jar.sha1 new file mode 100644 index 00000000000..bdec756fb5c --- /dev/null +++ b/solr/licenses/reactive-streams-1.0.4.jar.sha1 @@ -0,0 +1 @@ +3864a1320d97d7b045f729a326e1e077661f31b7 diff --git a/solr/licenses/regions-2.20.128.jar.sha1 b/solr/licenses/regions-2.20.128.jar.sha1 deleted file mode 100644 index ea8ed851217..00000000000 --- a/solr/licenses/regions-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f9cdaff8fc49e3b3473fb741d70f6458bdd1d108 diff --git a/solr/licenses/regions-2.20.155.jar.sha1 b/solr/licenses/regions-2.20.155.jar.sha1 new file mode 100644 index 00000000000..d3b9c6f276d --- /dev/null +++ b/solr/licenses/regions-2.20.155.jar.sha1 @@ -0,0 +1 @@ +60b72f79911729c2e06b752f7719b54f40e8de01 diff --git a/solr/licenses/s3-2.20.128.jar.sha1 b/solr/licenses/s3-2.20.128.jar.sha1 deleted file mode 100644 index c233b710661..00000000000 --- a/solr/licenses/s3-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -0eae09026984386b3b657c76952f1c33980cc60b diff --git a/solr/licenses/s3-2.20.155.jar.sha1 b/solr/licenses/s3-2.20.155.jar.sha1 new file mode 100644 index 00000000000..00ae7ec21d1 --- /dev/null +++ b/solr/licenses/s3-2.20.155.jar.sha1 @@ -0,0 +1 @@ +9d62bf97dfa923b65c1c42c3531281a56dbdd677 diff --git a/solr/licenses/sdk-core-2.20.128.jar.sha1 b/solr/licenses/sdk-core-2.20.128.jar.sha1 deleted file mode 100644 index a7feb66351b..00000000000 --- a/solr/licenses/sdk-core-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4d2681298b8364b10e8e448c7cfb38a0c57ea137 diff --git a/solr/licenses/sdk-core-2.20.155.jar.sha1 b/solr/licenses/sdk-core-2.20.155.jar.sha1 new file mode 100644 index 00000000000..9357808ddc5 --- /dev/null +++ b/solr/licenses/sdk-core-2.20.155.jar.sha1 @@ -0,0 +1 @@ +9389a25abe2dc80ea04037a0fa71f272aad7f060 diff --git a/solr/licenses/sts-2.20.128.jar.sha1 b/solr/licenses/sts-2.20.128.jar.sha1 deleted file mode 100644 index e42ac3530a8..00000000000 --- a/solr/licenses/sts-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5091ddfe486a878fbca7f7068e4d781109129d47 diff --git a/solr/licenses/sts-2.20.155.jar.sha1 b/solr/licenses/sts-2.20.155.jar.sha1 new file mode 100644 index 00000000000..02dac52ee7d --- /dev/null +++ b/solr/licenses/sts-2.20.155.jar.sha1 @@ -0,0 +1 @@ +020ad26019c62c5991762a3545678c3f04be340a diff --git a/solr/licenses/third-party-jackson-core-2.20.128.jar.sha1 b/solr/licenses/third-party-jackson-core-2.20.128.jar.sha1 deleted file mode 100644 index 886d413afca..00000000000 --- a/solr/licenses/third-party-jackson-core-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9714093f164eac041f3f3af506a32ad61fc26e3f diff --git a/solr/licenses/third-party-jackson-core-2.20.155.jar.sha1 b/solr/licenses/third-party-jackson-core-2.20.155.jar.sha1 new file mode 100644 index 00000000000..fb41ab87949 --- /dev/null +++ b/solr/licenses/third-party-jackson-core-2.20.155.jar.sha1 @@ -0,0 +1 @@ +1986b118cccd01cfb6cba8a604c9a9536ce6abfb diff --git a/solr/licenses/url-connection-client-2.20.128.jar.sha1 b/solr/licenses/url-connection-client-2.20.128.jar.sha1 deleted file mode 100644 index 89ad177e745..00000000000 --- a/solr/licenses/url-connection-client-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f6fb7d2001efce42580c16b4ce4e55ebe556ab0b diff --git a/solr/licenses/url-connection-client-2.20.155.jar.sha1 b/solr/licenses/url-connection-client-2.20.155.jar.sha1 new file mode 100644 index 00000000000..3f4cd754648 --- /dev/null +++ b/solr/licenses/url-connection-client-2.20.155.jar.sha1 @@ -0,0 +1 @@ +81f132c193a7af8fea63e9d63a995d60becafa76 diff --git a/solr/licenses/utils-2.20.128.jar.sha1 b/solr/licenses/utils-2.20.128.jar.sha1 deleted file mode 100644 index 70c3f94382d..00000000000 --- a/solr/licenses/utils-2.20.128.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a63a7b5cefd69dc24fddc200d31d2f6ec613b513 diff --git a/solr/licenses/utils-2.20.155.jar.sha1 b/solr/licenses/utils-2.20.155.jar.sha1 new file mode 100644 index 00000000000..e2b6cb256e0 --- /dev/null +++ b/solr/licenses/utils-2.20.155.jar.sha1 @@ -0,0 +1 @@ +2c3bbf9f8902402d40fc9a87b64139d109290f1e diff --git a/versions.lock b/versions.lock index ad5240b1019..f91e806a80b 100644 --- a/versions.lock +++ b/versions.lock @@ -342,7 +342,7 @@ org.ow2.asm:asm-analysis:7.2 (1 constraints: e409d9a5) org.ow2.asm:asm-commons:7.2 (1 constraints: 6b0f7267) org.ow2.asm:asm-tree:7.2 (2 constraints: 2f14468c) org.quicktheories:quicktheories:0.26 (1 constraints: dc04f530) -org.reactivestreams:reactive-streams:1.0.3 (3 constraints: 3c2b02fd) +org.reactivestreams:reactive-streams:1.0.4 (3 constraints: 3f2b77fd) org.semver4j:semver4j:5.1.0 (1 constraints: 08050736) org.slf4j:jcl-over-slf4j:2.0.9 (3 constraints: cf17cfa6) org.slf4j:jul-to-slf4j:2.0.9 (3 constraints: 29286349) @@ -354,27 +354,27 @@ org.tallison.xmp:xmpcore-shaded:6.1.10 (1 constraints: 300e8d49) org.threeten:threetenbp:1.6.8 (4 constraints: 2433e267) org.tukaani:xz:1.9 (1 constraints: 030c5be9) org.xerial.snappy:snappy-java:1.1.10.4 (4 constraints: b4381fff) -software.amazon.awssdk:annotations:2.20.128 (20 constraints: 812e7fc3) -software.amazon.awssdk:apache-client:2.20.128 (4 constraints: bd2a0169) -software.amazon.awssdk:arns:2.20.128 (2 constraints: 791848ec) -software.amazon.awssdk:auth:2.20.128 (5 constraints: 28393d1f) -software.amazon.awssdk:aws-core:2.20.128 (6 constraints: 064f9593) -software.amazon.awssdk:aws-query-protocol:2.20.128 (3 constraints: df2a3b4b) -software.amazon.awssdk:aws-xml-protocol:2.20.128 (2 constraints: 791848ec) -software.amazon.awssdk:bom:2.20.128 (1 constraints: a1053e46) -software.amazon.awssdk:crt-core:2.20.128 (1 constraints: f10b8205) -software.amazon.awssdk:endpoints-spi:2.20.128 (4 constraints: 6235767a) -software.amazon.awssdk:http-client-spi:2.20.128 (11 constraints: bfa7e005) -software.amazon.awssdk:json-utils:2.20.128 (5 constraints: 5a407940) -software.amazon.awssdk:metrics-spi:2.20.128 (7 constraints: 7163ee3b) -software.amazon.awssdk:profiles:2.20.128 (8 constraints: c76252a3) -software.amazon.awssdk:protocol-core:2.20.128 (5 constraints: 66496c88) -software.amazon.awssdk:regions:2.20.128 (7 constraints: 4b518731) -software.amazon.awssdk:s3:2.20.128 (3 constraints: 1025d161) -software.amazon.awssdk:sdk-core:2.20.128 (10 constraints: 40897300) -software.amazon.awssdk:sts:2.20.128 (2 constraints: 29121c33) -software.amazon.awssdk:third-party-jackson-core:2.20.128 (2 constraints: eb1bd4d7) -software.amazon.awssdk:utils:2.20.128 (19 constraints: 961bfbe5) +software.amazon.awssdk:annotations:2.20.155 (20 constraints: 812ebbc3) +software.amazon.awssdk:apache-client:2.20.155 (4 constraints: bd2a0d69) +software.amazon.awssdk:arns:2.20.155 (2 constraints: 79184eec) +software.amazon.awssdk:auth:2.20.155 (5 constraints: 28394c1f) +software.amazon.awssdk:aws-core:2.20.155 (6 constraints: 064fa793) +software.amazon.awssdk:aws-query-protocol:2.20.155 (3 constraints: df2a444b) +software.amazon.awssdk:aws-xml-protocol:2.20.155 (2 constraints: 79184eec) +software.amazon.awssdk:bom:2.20.155 (1 constraints: a1054146) +software.amazon.awssdk:crt-core:2.20.155 (1 constraints: f10b8505) +software.amazon.awssdk:endpoints-spi:2.20.155 (4 constraints: 6235827a) +software.amazon.awssdk:http-client-spi:2.20.155 (11 constraints: bfa70106) +software.amazon.awssdk:json-utils:2.20.155 (5 constraints: 5a408840) +software.amazon.awssdk:metrics-spi:2.20.155 (7 constraints: 7163033c) +software.amazon.awssdk:profiles:2.20.155 (8 constraints: c7626aa3) +software.amazon.awssdk:protocol-core:2.20.155 (5 constraints: 66497b88) +software.amazon.awssdk:regions:2.20.155 (7 constraints: 4b519931) +software.amazon.awssdk:s3:2.20.155 (3 constraints: 1025d761) +software.amazon.awssdk:sdk-core:2.20.155 (10 constraints: 40899100) +software.amazon.awssdk:sts:2.20.155 (2 constraints: 29122233) +software.amazon.awssdk:third-party-jackson-core:2.20.155 (2 constraints: eb1bdad7) +software.amazon.awssdk:utils:2.20.155 (19 constraints: 961b31e6) software.amazon.eventstream:eventstream:1.0.1 (2 constraints: 2e1ae62b) ua.net.nlp:morfologik-ukrainian-search:4.9.1 (1 constraints: d5126e1e) xerces:xercesImpl:2.12.2 (1 constraints: 8e0c7d0e) @@ -457,5 +457,5 @@ org.springframework.boot:spring-boot-starter-json:2.7.12 (1 constraints: d814669 org.springframework.boot:spring-boot-starter-logging:2.7.12 (1 constraints: 6d138b46) org.springframework.boot:spring-boot-starter-web:2.7.12 (1 constraints: f20a38d6) org.yaml:snakeyaml:1.30 (1 constraints: 0713d91f) -software.amazon.awssdk:url-connection-client:2.20.128 (2 constraints: 701ff515) +software.amazon.awssdk:url-connection-client:2.20.155 (2 constraints: 701ff815) software.amazon.ion:ion-java:1.0.2 (1 constraints: 720db831) diff --git a/versions.props b/versions.props index fee3ed2976d..caad3851993 100644 --- a/versions.props +++ b/versions.props @@ -69,4 +69,4 @@ org.quicktheories:quicktheories=0.26 org.semver4j:semver4j=5.1.0 org.slf4j:*=2.0.9 org.xerial.snappy:snappy-java=1.1.10.4 -software.amazon.awssdk:*=2.20.128 +software.amazon.awssdk:*=2.20.155 From 69e85dcb7636d6f9555e99b4f0070280a04a8858 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Mon, 2 Oct 2023 21:11:34 +0200 Subject: [PATCH 05/29] Update dependency com.github.ben-manes.caffeine:caffeine to v3.1.8 (#1812) --- solr/licenses/caffeine-3.1.6.jar.sha1 | 1 - solr/licenses/caffeine-3.1.8.jar.sha1 | 1 + solr/licenses/checker-qual-3.33.0.jar.sha1 | 1 - solr/licenses/checker-qual-3.37.0.jar.sha1 | 1 + versions.lock | 6 +++--- versions.props | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 solr/licenses/caffeine-3.1.6.jar.sha1 create mode 100644 solr/licenses/caffeine-3.1.8.jar.sha1 delete mode 100644 solr/licenses/checker-qual-3.33.0.jar.sha1 create mode 100644 solr/licenses/checker-qual-3.37.0.jar.sha1 diff --git a/solr/licenses/caffeine-3.1.6.jar.sha1 b/solr/licenses/caffeine-3.1.6.jar.sha1 deleted file mode 100644 index cb11a82e23b..00000000000 --- a/solr/licenses/caffeine-3.1.6.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3646a0d1b1abe6a31f72f2237d9004d10a5be91d diff --git a/solr/licenses/caffeine-3.1.8.jar.sha1 b/solr/licenses/caffeine-3.1.8.jar.sha1 new file mode 100644 index 00000000000..15ff311e979 --- /dev/null +++ b/solr/licenses/caffeine-3.1.8.jar.sha1 @@ -0,0 +1 @@ +24795585df8afaf70a2cd534786904ea5889c047 diff --git a/solr/licenses/checker-qual-3.33.0.jar.sha1 b/solr/licenses/checker-qual-3.33.0.jar.sha1 deleted file mode 100644 index 602b1bd5b66..00000000000 --- a/solr/licenses/checker-qual-3.33.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -de2b60b62da487644fc11f734e73c8b0b431238f diff --git a/solr/licenses/checker-qual-3.37.0.jar.sha1 b/solr/licenses/checker-qual-3.37.0.jar.sha1 new file mode 100644 index 00000000000..4cdb4ca2f97 --- /dev/null +++ b/solr/licenses/checker-qual-3.37.0.jar.sha1 @@ -0,0 +1 @@ +ba74746d38026581c12166e164bb3c15e90cc4ea diff --git a/versions.lock b/versions.lock index f91e806a80b..8d984ed1a55 100644 --- a/versions.lock +++ b/versions.lock @@ -14,7 +14,7 @@ com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2 (2 constraints: com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2 (1 constraints: ba0eab66) com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.15.2 (2 constraints: a624c5e0) com.fasterxml.woodstox:woodstox-core:6.5.1 (2 constraints: a0239c84) -com.github.ben-manes.caffeine:caffeine:3.1.6 (1 constraints: 0c050336) +com.github.ben-manes.caffeine:caffeine:3.1.8 (1 constraints: 0e050536) com.github.jai-imageio:jai-imageio-core:1.4.0 (1 constraints: 5c0ced01) com.github.junrar:junrar:7.5.3 (1 constraints: 660c1102) com.github.openjson:openjson:1.0.12 (1 constraints: 8b0c6d0e) @@ -42,7 +42,7 @@ com.google.cloud:google-cloud-core-grpc:2.18.1 (1 constraints: 20100ea6) com.google.cloud:google-cloud-core-http:2.18.1 (1 constraints: 20100ea6) com.google.cloud:google-cloud-storage:2.22.3 (2 constraints: d31c1c27) com.google.code.gson:gson:2.10.1 (6 constraints: 0c5507c0) -com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: bb893df4) +com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: b689f8ec) com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37) com.google.guava:guava:32.1.2-jre (25 constraints: 366e017a) com.google.guava:guava-parent:32.1.2-jre (1 constraints: b80ba5eb) @@ -269,7 +269,7 @@ org.carrot2:morfologik-fsa:2.1.9 (1 constraints: db0d9c36) org.carrot2:morfologik-polish:2.1.9 (1 constraints: d312541e) org.carrot2:morfologik-stemming:2.1.9 (2 constraints: d81fb300) org.ccil.cowan.tagsoup:tagsoup:1.2.1 (1 constraints: 5b0ce801) -org.checkerframework:checker-qual:3.33.0 (5 constraints: 0e494d11) +org.checkerframework:checker-qual:3.37.0 (5 constraints: 12490114) org.codehaus.janino:commons-compiler:3.1.8 (2 constraints: 2f1983ec) org.codehaus.janino:janino:3.1.8 (1 constraints: 640dbc2c) org.codehaus.woodstox:stax2-api:4.2.1 (2 constraints: 36152eaf) diff --git a/versions.props b/versions.props index caad3851993..6b2cbedc45f 100644 --- a/versions.props +++ b/versions.props @@ -6,7 +6,7 @@ com.carrotsearch.randomizedtesting:*=2.8.1 com.carrotsearch:hppc=0.9.1 com.cybozu.labs:langdetect=1.1-20120112 com.fasterxml.jackson:jackson-bom=2.15.2 -com.github.ben-manes.caffeine:caffeine=3.1.6 +com.github.ben-manes.caffeine:caffeine=3.1.8 com.github.spotbugs:*=4.7.3 com.github.stephenc.jcip:jcip-annotations=1.0-1 com.google.cloud:google-cloud-bom=0.197.0 From f05bf8a3631c9d02475eca6efe142f9f20eaf7ee Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:18:22 +0200 Subject: [PATCH 06/29] Update dependency io.swagger.core.v3:swagger-annotations to v2.2.16 (#1953) --- solr/licenses/swagger-annotations-2.2.15.jar.sha1 | 1 - solr/licenses/swagger-annotations-2.2.16.jar.sha1 | 1 + versions.lock | 2 +- versions.props | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 solr/licenses/swagger-annotations-2.2.15.jar.sha1 create mode 100644 solr/licenses/swagger-annotations-2.2.16.jar.sha1 diff --git a/solr/licenses/swagger-annotations-2.2.15.jar.sha1 b/solr/licenses/swagger-annotations-2.2.15.jar.sha1 deleted file mode 100644 index 227c8839b8e..00000000000 --- a/solr/licenses/swagger-annotations-2.2.15.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -35779fede334507bc368392051b8a89ed42c0784 diff --git a/solr/licenses/swagger-annotations-2.2.16.jar.sha1 b/solr/licenses/swagger-annotations-2.2.16.jar.sha1 new file mode 100644 index 00000000000..e5990cfe995 --- /dev/null +++ b/solr/licenses/swagger-annotations-2.2.16.jar.sha1 @@ -0,0 +1 @@ +baff53b8f5e2c6ee186a3913b3c1a06d92c79bb9 diff --git a/versions.lock b/versions.lock index 8d984ed1a55..da859b701d2 100644 --- a/versions.lock +++ b/versions.lock @@ -148,7 +148,7 @@ io.prometheus:simpleclient:0.16.0 (3 constraints: 9d257513) io.prometheus:simpleclient_common:0.16.0 (1 constraints: 1a1139c0) io.prometheus:simpleclient_httpserver:0.16.0 (1 constraints: 3905353b) io.sgr:s2-geometry-library-java:1.0.0 (1 constraints: b0107fb9) -io.swagger.core.v3:swagger-annotations:2.2.15 (1 constraints: 3c05383b) +io.swagger.core.v3:swagger-annotations:2.2.16 (1 constraints: 3d05393b) jakarta.activation:jakarta.activation-api:1.2.2 (2 constraints: bb282bbe) jakarta.annotation:jakarta.annotation-api:1.3.5 (4 constraints: d740f9a9) jakarta.validation:jakarta.validation-api:2.0.2 (1 constraints: fd10b6c3) diff --git a/versions.props b/versions.props index 6b2cbedc45f..c8926148cf2 100644 --- a/versions.props +++ b/versions.props @@ -25,7 +25,7 @@ io.grpc:grpc-*=1.56.0 io.netty:*=4.1.97.Final io.opentelemetry:opentelemetry-bom=1.30.1 io.prometheus:*=0.16.0 -io.swagger.core.v3:*=2.2.15 +io.swagger.core.v3:*=2.2.16 jakarta.ws.rs:jakarta.ws.rs-api=2.1.6 junit:junit=4.13.2 net.sourceforge.argparse4j:argparse4j=0.9.0 From 9f7053802c57154ff1a74ecd26113946fabfdd83 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:18:34 +0200 Subject: [PATCH 07/29] Update dependency org.xerial.snappy:snappy-java to v1.1.10.5 (#1966) --- solr/licenses/snappy-java-1.1.10.4.jar.sha1 | 1 - solr/licenses/snappy-java-1.1.10.5.jar.sha1 | 1 + versions.lock | 2 +- versions.props | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 solr/licenses/snappy-java-1.1.10.4.jar.sha1 create mode 100644 solr/licenses/snappy-java-1.1.10.5.jar.sha1 diff --git a/solr/licenses/snappy-java-1.1.10.4.jar.sha1 b/solr/licenses/snappy-java-1.1.10.4.jar.sha1 deleted file mode 100644 index 3022bc5d1fd..00000000000 --- a/solr/licenses/snappy-java-1.1.10.4.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -50d0390056017158bdc75c063efd5c2a898d5f0c diff --git a/solr/licenses/snappy-java-1.1.10.5.jar.sha1 b/solr/licenses/snappy-java-1.1.10.5.jar.sha1 new file mode 100644 index 00000000000..f7332452398 --- /dev/null +++ b/solr/licenses/snappy-java-1.1.10.5.jar.sha1 @@ -0,0 +1 @@ +ac605269f3598506196e469f1fb0d7ed5c55059e diff --git a/versions.lock b/versions.lock index da859b701d2..5a12da605b9 100644 --- a/versions.lock +++ b/versions.lock @@ -353,7 +353,7 @@ org.tallison:metadata-extractor:2.17.1.0 (1 constraints: f00c3b28) org.tallison.xmp:xmpcore-shaded:6.1.10 (1 constraints: 300e8d49) org.threeten:threetenbp:1.6.8 (4 constraints: 2433e267) org.tukaani:xz:1.9 (1 constraints: 030c5be9) -org.xerial.snappy:snappy-java:1.1.10.4 (4 constraints: b4381fff) +org.xerial.snappy:snappy-java:1.1.10.5 (4 constraints: b538b6ff) software.amazon.awssdk:annotations:2.20.155 (20 constraints: 812ebbc3) software.amazon.awssdk:apache-client:2.20.155 (4 constraints: bd2a0d69) software.amazon.awssdk:arns:2.20.155 (2 constraints: 79184eec) diff --git a/versions.props b/versions.props index c8926148cf2..5e65facd843 100644 --- a/versions.props +++ b/versions.props @@ -68,5 +68,5 @@ org.osgi:osgi.annotation=8.1.0 org.quicktheories:quicktheories=0.26 org.semver4j:semver4j=5.1.0 org.slf4j:*=2.0.9 -org.xerial.snappy:snappy-java=1.1.10.4 +org.xerial.snappy:snappy-java=1.1.10.5 software.amazon.awssdk:*=2.20.155 From 8dbe6df2af902409d2741f22055118dda4f17656 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:18:44 +0200 Subject: [PATCH 08/29] Update io.dropwizard.metrics:* to v4.2.20 (#1970) --- .../metrics-annotation-4.2.19.jar.sha1 | 1 - .../metrics-annotation-4.2.20.jar.sha1 | 1 + solr/licenses/metrics-core-4.2.19.jar.sha1 | 1 - solr/licenses/metrics-core-4.2.20.jar.sha1 | 1 + .../licenses/metrics-graphite-4.2.19.jar.sha1 | 1 - .../licenses/metrics-graphite-4.2.20.jar.sha1 | 1 + solr/licenses/metrics-jetty10-4.2.19.jar.sha1 | 1 - solr/licenses/metrics-jetty10-4.2.20.jar.sha1 | 1 + solr/licenses/metrics-jmx-4.2.19.jar.sha1 | 1 - solr/licenses/metrics-jmx-4.2.20.jar.sha1 | 1 + solr/licenses/metrics-jvm-4.2.19.jar.sha1 | 1 - solr/licenses/metrics-jvm-4.2.20.jar.sha1 | 1 + versions.lock | 22 +++++++++---------- versions.props | 2 +- 14 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 solr/licenses/metrics-annotation-4.2.19.jar.sha1 create mode 100644 solr/licenses/metrics-annotation-4.2.20.jar.sha1 delete mode 100644 solr/licenses/metrics-core-4.2.19.jar.sha1 create mode 100644 solr/licenses/metrics-core-4.2.20.jar.sha1 delete mode 100644 solr/licenses/metrics-graphite-4.2.19.jar.sha1 create mode 100644 solr/licenses/metrics-graphite-4.2.20.jar.sha1 delete mode 100644 solr/licenses/metrics-jetty10-4.2.19.jar.sha1 create mode 100644 solr/licenses/metrics-jetty10-4.2.20.jar.sha1 delete mode 100644 solr/licenses/metrics-jmx-4.2.19.jar.sha1 create mode 100644 solr/licenses/metrics-jmx-4.2.20.jar.sha1 delete mode 100644 solr/licenses/metrics-jvm-4.2.19.jar.sha1 create mode 100644 solr/licenses/metrics-jvm-4.2.20.jar.sha1 diff --git a/solr/licenses/metrics-annotation-4.2.19.jar.sha1 b/solr/licenses/metrics-annotation-4.2.19.jar.sha1 deleted file mode 100644 index ffb6cdc5e33..00000000000 --- a/solr/licenses/metrics-annotation-4.2.19.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -bfbad2f37e1affa62daa4e9e33c50bf48060db91 diff --git a/solr/licenses/metrics-annotation-4.2.20.jar.sha1 b/solr/licenses/metrics-annotation-4.2.20.jar.sha1 new file mode 100644 index 00000000000..f7fee757d07 --- /dev/null +++ b/solr/licenses/metrics-annotation-4.2.20.jar.sha1 @@ -0,0 +1 @@ +356a49a3146af00df245c24d18860503a84a3b18 diff --git a/solr/licenses/metrics-core-4.2.19.jar.sha1 b/solr/licenses/metrics-core-4.2.19.jar.sha1 deleted file mode 100644 index 8d18a26cfed..00000000000 --- a/solr/licenses/metrics-core-4.2.19.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d32b4c3f3e733bf4cb239ca4204fbed8464973a5 diff --git a/solr/licenses/metrics-core-4.2.20.jar.sha1 b/solr/licenses/metrics-core-4.2.20.jar.sha1 new file mode 100644 index 00000000000..436e7cf8294 --- /dev/null +++ b/solr/licenses/metrics-core-4.2.20.jar.sha1 @@ -0,0 +1 @@ +b3eb1b408021950fab1e22b2a851a109470064a9 diff --git a/solr/licenses/metrics-graphite-4.2.19.jar.sha1 b/solr/licenses/metrics-graphite-4.2.19.jar.sha1 deleted file mode 100644 index e6518b4c772..00000000000 --- a/solr/licenses/metrics-graphite-4.2.19.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c8ed09f56bca464c136066bedbac86f451aa7f20 diff --git a/solr/licenses/metrics-graphite-4.2.20.jar.sha1 b/solr/licenses/metrics-graphite-4.2.20.jar.sha1 new file mode 100644 index 00000000000..69f94d82ce3 --- /dev/null +++ b/solr/licenses/metrics-graphite-4.2.20.jar.sha1 @@ -0,0 +1 @@ +e650d3670e1537b5ed99b8a83f7e13c95517c530 diff --git a/solr/licenses/metrics-jetty10-4.2.19.jar.sha1 b/solr/licenses/metrics-jetty10-4.2.19.jar.sha1 deleted file mode 100644 index d30edbb6217..00000000000 --- a/solr/licenses/metrics-jetty10-4.2.19.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4f935bcc4510089f216695fd6d14f14607685747 diff --git a/solr/licenses/metrics-jetty10-4.2.20.jar.sha1 b/solr/licenses/metrics-jetty10-4.2.20.jar.sha1 new file mode 100644 index 00000000000..eaed525eb99 --- /dev/null +++ b/solr/licenses/metrics-jetty10-4.2.20.jar.sha1 @@ -0,0 +1 @@ +d01cfde5cbf2231e13001f2b0c98f869246aa727 diff --git a/solr/licenses/metrics-jmx-4.2.19.jar.sha1 b/solr/licenses/metrics-jmx-4.2.19.jar.sha1 deleted file mode 100644 index 3b9015caae4..00000000000 --- a/solr/licenses/metrics-jmx-4.2.19.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -474c1c764df01a0d93fc268da1f779ab97fe99ae diff --git a/solr/licenses/metrics-jmx-4.2.20.jar.sha1 b/solr/licenses/metrics-jmx-4.2.20.jar.sha1 new file mode 100644 index 00000000000..be81afcc3ca --- /dev/null +++ b/solr/licenses/metrics-jmx-4.2.20.jar.sha1 @@ -0,0 +1 @@ +6723adff28670f900e37fea60d9a6abc7537e78f diff --git a/solr/licenses/metrics-jvm-4.2.19.jar.sha1 b/solr/licenses/metrics-jvm-4.2.19.jar.sha1 deleted file mode 100644 index 8a49e3c5de4..00000000000 --- a/solr/licenses/metrics-jvm-4.2.19.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -13bb7b51914d43a7709f7b477b98f3732aaa03e4 diff --git a/solr/licenses/metrics-jvm-4.2.20.jar.sha1 b/solr/licenses/metrics-jvm-4.2.20.jar.sha1 new file mode 100644 index 00000000000..32a1659499c --- /dev/null +++ b/solr/licenses/metrics-jvm-4.2.20.jar.sha1 @@ -0,0 +1 @@ +b6f1bdd9046a2e2c33f66a5865cf5c9187ddfc9e diff --git a/versions.lock b/versions.lock index 5a12da605b9..8b681b8fa53 100644 --- a/versions.lock +++ b/versions.lock @@ -88,12 +88,12 @@ edu.ucar:httpservices:4.5.5 (2 constraints: 8f122834) edu.ucar:netcdf4:4.5.5 (1 constraints: 650c0402) edu.ucar:udunits:4.5.5 (1 constraints: 2b06034e) edu.usc.ir:sentiment-analysis-parser:0.1 (1 constraints: fa0b50e9) -io.dropwizard.metrics:metrics-annotation:4.2.19 (1 constraints: 381074b0) -io.dropwizard.metrics:metrics-core:4.2.19 (5 constraints: 5b44b70a) -io.dropwizard.metrics:metrics-graphite:4.2.19 (1 constraints: 4205483b) -io.dropwizard.metrics:metrics-jetty10:4.2.19 (1 constraints: 4205483b) -io.dropwizard.metrics:metrics-jmx:4.2.19 (1 constraints: 4205483b) -io.dropwizard.metrics:metrics-jvm:4.2.19 (1 constraints: 4205483b) +io.dropwizard.metrics:metrics-annotation:4.2.20 (1 constraints: 30106db0) +io.dropwizard.metrics:metrics-core:4.2.20 (5 constraints: 3344adfc) +io.dropwizard.metrics:metrics-graphite:4.2.20 (1 constraints: 3a05413b) +io.dropwizard.metrics:metrics-jetty10:4.2.20 (1 constraints: 3a05413b) +io.dropwizard.metrics:metrics-jmx:4.2.20 (1 constraints: 3a05413b) +io.dropwizard.metrics:metrics-jvm:4.2.20 (1 constraints: 3a05413b) io.grpc:grpc-alts:1.56.0 (1 constraints: 20100fa6) io.grpc:grpc-api:1.56.0 (5 constraints: a43684b7) io.grpc:grpc-auth:1.56.0 (1 constraints: 20100fa6) @@ -281,15 +281,15 @@ org.eclipse.jetty:jetty-alpn-java-server:10.0.16 (1 constraints: 6a059240) org.eclipse.jetty:jetty-alpn-server:10.0.16 (2 constraints: f7164449) org.eclipse.jetty:jetty-client:10.0.16 (2 constraints: 211bd36e) org.eclipse.jetty:jetty-deploy:10.0.16 (1 constraints: 6a059240) -org.eclipse.jetty:jetty-http:10.0.16 (6 constraints: 7b4faa8e) -org.eclipse.jetty:jetty-io:10.0.16 (9 constraints: bd7d6ce8) +org.eclipse.jetty:jetty-http:10.0.16 (6 constraints: 7c4f568f) +org.eclipse.jetty:jetty-io:10.0.16 (9 constraints: be7da0e9) org.eclipse.jetty:jetty-jmx:10.0.16 (1 constraints: 6a059240) org.eclipse.jetty:jetty-rewrite:10.0.16 (1 constraints: 6a059240) org.eclipse.jetty:jetty-security:10.0.16 (2 constraints: be134779) -org.eclipse.jetty:jetty-server:10.0.16 (7 constraints: d76dba26) +org.eclipse.jetty:jetty-server:10.0.16 (7 constraints: d86dbc27) org.eclipse.jetty:jetty-servlet:10.0.16 (2 constraints: 38137261) org.eclipse.jetty:jetty-servlets:10.0.16 (1 constraints: 6a059240) -org.eclipse.jetty:jetty-util:10.0.16 (9 constraints: ac815797) +org.eclipse.jetty:jetty-util:10.0.16 (9 constraints: ad819898) org.eclipse.jetty:jetty-webapp:10.0.16 (2 constraints: 4613fa61) org.eclipse.jetty:jetty-xml:10.0.16 (3 constraints: 142134bb) org.eclipse.jetty.http2:http2-client:10.0.16 (2 constraints: 211bd36e) @@ -346,7 +346,7 @@ org.reactivestreams:reactive-streams:1.0.4 (3 constraints: 3f2b77fd) org.semver4j:semver4j:5.1.0 (1 constraints: 08050736) org.slf4j:jcl-over-slf4j:2.0.9 (3 constraints: cf17cfa6) org.slf4j:jul-to-slf4j:2.0.9 (3 constraints: 29286349) -org.slf4j:slf4j-api:2.0.9 (59 constraints: db106466) +org.slf4j:slf4j-api:2.0.9 (59 constraints: dd104075) org.tallison:isoparser:1.9.41.7 (1 constraints: fb0c5528) org.tallison:jmatio:1.5 (1 constraints: ff0b57e9) org.tallison:metadata-extractor:2.17.1.0 (1 constraints: f00c3b28) diff --git a/versions.props b/versions.props index 5e65facd843..dcb252f6ee2 100644 --- a/versions.props +++ b/versions.props @@ -20,7 +20,7 @@ commons-cli:commons-cli=1.5.0 commons-codec:commons-codec=1.16.0 commons-collections:commons-collections=3.2.2 commons-io:commons-io=2.14.0 -io.dropwizard.metrics:*=4.2.19 +io.dropwizard.metrics:*=4.2.20 io.grpc:grpc-*=1.56.0 io.netty:*=4.1.97.Final io.opentelemetry:opentelemetry-bom=1.30.1 From ff6f601822a4fd1cd87d26a6d17409f234f9f5b6 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:19:07 +0200 Subject: [PATCH 09/29] Update org.apache.calcite to v1.35.0 (#1815) --- solr/licenses/calcite-core-1.34.0.jar.sha1 | 1 - solr/licenses/calcite-core-1.35.0.jar.sha1 | 1 + solr/licenses/calcite-linq4j-1.34.0.jar.sha1 | 1 - solr/licenses/calcite-linq4j-1.35.0.jar.sha1 | 1 + solr/licenses/commons-compiler-3.1.8.jar.sha1 | 1 - solr/licenses/commons-compiler-3.1.9.jar.sha1 | 1 + solr/licenses/janino-3.1.8.jar.sha1 | 1 - solr/licenses/janino-3.1.9.jar.sha1 | 1 + versions.lock | 20 +++++++++---------- versions.props | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) delete mode 100644 solr/licenses/calcite-core-1.34.0.jar.sha1 create mode 100644 solr/licenses/calcite-core-1.35.0.jar.sha1 delete mode 100644 solr/licenses/calcite-linq4j-1.34.0.jar.sha1 create mode 100644 solr/licenses/calcite-linq4j-1.35.0.jar.sha1 delete mode 100644 solr/licenses/commons-compiler-3.1.8.jar.sha1 create mode 100644 solr/licenses/commons-compiler-3.1.9.jar.sha1 delete mode 100644 solr/licenses/janino-3.1.8.jar.sha1 create mode 100644 solr/licenses/janino-3.1.9.jar.sha1 diff --git a/solr/licenses/calcite-core-1.34.0.jar.sha1 b/solr/licenses/calcite-core-1.34.0.jar.sha1 deleted file mode 100644 index c560453cbfc..00000000000 --- a/solr/licenses/calcite-core-1.34.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d0fd918fd56baa3c6ebb34676b9aeeb05ce9d94d diff --git a/solr/licenses/calcite-core-1.35.0.jar.sha1 b/solr/licenses/calcite-core-1.35.0.jar.sha1 new file mode 100644 index 00000000000..6be3a0c88b8 --- /dev/null +++ b/solr/licenses/calcite-core-1.35.0.jar.sha1 @@ -0,0 +1 @@ +6014fcd74ebe58230becef8265d9b06f5f490a5f diff --git a/solr/licenses/calcite-linq4j-1.34.0.jar.sha1 b/solr/licenses/calcite-linq4j-1.34.0.jar.sha1 deleted file mode 100644 index 86dacd11c46..00000000000 --- a/solr/licenses/calcite-linq4j-1.34.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -505eea67a7a11e002c6c760914c369bccef0330b diff --git a/solr/licenses/calcite-linq4j-1.35.0.jar.sha1 b/solr/licenses/calcite-linq4j-1.35.0.jar.sha1 new file mode 100644 index 00000000000..8d51929b52d --- /dev/null +++ b/solr/licenses/calcite-linq4j-1.35.0.jar.sha1 @@ -0,0 +1 @@ +2484ad1caf702341023883ed500f499aadfc1519 diff --git a/solr/licenses/commons-compiler-3.1.8.jar.sha1 b/solr/licenses/commons-compiler-3.1.8.jar.sha1 deleted file mode 100644 index 4b5f44e7699..00000000000 --- a/solr/licenses/commons-compiler-3.1.8.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -93a17483c93f7a5f6ca5c2af7173c9c0841294b2 diff --git a/solr/licenses/commons-compiler-3.1.9.jar.sha1 b/solr/licenses/commons-compiler-3.1.9.jar.sha1 new file mode 100644 index 00000000000..ed7b96ad89e --- /dev/null +++ b/solr/licenses/commons-compiler-3.1.9.jar.sha1 @@ -0,0 +1 @@ +f0d70bb319e9339aea90a8665693e69848acc598 diff --git a/solr/licenses/janino-3.1.8.jar.sha1 b/solr/licenses/janino-3.1.8.jar.sha1 deleted file mode 100644 index 09e48c471f2..00000000000 --- a/solr/licenses/janino-3.1.8.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8dd648976fe0ea36918756b2257b183157d6e543 diff --git a/solr/licenses/janino-3.1.9.jar.sha1 b/solr/licenses/janino-3.1.9.jar.sha1 new file mode 100644 index 00000000000..720933abedd --- /dev/null +++ b/solr/licenses/janino-3.1.9.jar.sha1 @@ -0,0 +1 @@ +536fb0c44627faae32ca7a8a24734f4aab38c878 diff --git a/versions.lock b/versions.lock index 8b681b8fa53..e327c46bedf 100644 --- a/versions.lock +++ b/versions.lock @@ -7,9 +7,9 @@ com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.8.1 (2 constraints com.cybozu.labs:langdetect:1.1-20120112 (1 constraints: 5c066d5e) com.epam:parso:2.0.14 (1 constraints: 8e0c750e) com.fasterxml.jackson:jackson-bom:2.15.2 (12 constraints: 4ef8ad55) -com.fasterxml.jackson.core:jackson-annotations:2.15.2 (10 constraints: 9bbe6617) -com.fasterxml.jackson.core:jackson-core:2.15.2 (13 constraints: 42025e28) -com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 8c63008e) +com.fasterxml.jackson.core:jackson-annotations:2.15.2 (10 constraints: 9bbe6817) +com.fasterxml.jackson.core:jackson-core:2.15.2 (13 constraints: 42026028) +com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 8c63028e) com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2 (2 constraints: 631c9af1) com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2 (1 constraints: ba0eab66) com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.15.2 (2 constraints: a624c5e0) @@ -42,9 +42,9 @@ com.google.cloud:google-cloud-core-grpc:2.18.1 (1 constraints: 20100ea6) com.google.cloud:google-cloud-core-http:2.18.1 (1 constraints: 20100ea6) com.google.cloud:google-cloud-storage:2.22.3 (2 constraints: d31c1c27) com.google.code.gson:gson:2.10.1 (6 constraints: 0c5507c0) -com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: b689f8ec) +com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: 8a894b63) com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37) -com.google.guava:guava:32.1.2-jre (25 constraints: 366e017a) +com.google.guava:guava:32.1.2-jre (25 constraints: 646b5109) com.google.guava:guava-parent:32.1.2-jre (1 constraints: b80ba5eb) com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2 constraints: 4b35b0a0) com.google.http-client:google-http-client:1.43.1 (11 constraints: 2fbf7ea4) @@ -164,8 +164,8 @@ net.sf.jopt-simple:jopt-simple:5.0.4 (1 constraints: be0ad6cc) net.sourceforge.argparse4j:argparse4j:0.9.0 (1 constraints: 0b050636) net.thisptr:jackson-jq:0.0.13 (1 constraints: 3605223b) org.antlr:antlr4-runtime:4.11.1 (1 constraints: f70fbd96) -org.apache.calcite:calcite-core:1.34.0 (1 constraints: 3a053d3b) -org.apache.calcite:calcite-linq4j:1.34.0 (2 constraints: c912b74b) +org.apache.calcite:calcite-core:1.35.0 (1 constraints: 3b05403b) +org.apache.calcite:calcite-linq4j:1.35.0 (2 constraints: cb12e64b) org.apache.calcite.avatica:avatica-core:1.23.0 (3 constraints: fb20cdcb) org.apache.calcite.avatica:avatica-metrics:1.23.0 (1 constraints: 991049c4) org.apache.commons:commons-collections4:4.4 (3 constraints: 2a172a57) @@ -269,9 +269,9 @@ org.carrot2:morfologik-fsa:2.1.9 (1 constraints: db0d9c36) org.carrot2:morfologik-polish:2.1.9 (1 constraints: d312541e) org.carrot2:morfologik-stemming:2.1.9 (2 constraints: d81fb300) org.ccil.cowan.tagsoup:tagsoup:1.2.1 (1 constraints: 5b0ce801) -org.checkerframework:checker-qual:3.37.0 (5 constraints: 12490114) -org.codehaus.janino:commons-compiler:3.1.8 (2 constraints: 2f1983ec) -org.codehaus.janino:janino:3.1.8 (1 constraints: 640dbc2c) +org.checkerframework:checker-qual:3.37.0 (5 constraints: 0e499f13) +org.codehaus.janino:commons-compiler:3.1.9 (2 constraints: 3119a8ec) +org.codehaus.janino:janino:3.1.9 (1 constraints: 650dbd2c) org.codehaus.woodstox:stax2-api:4.2.1 (2 constraints: 36152eaf) org.codelibs:jhighlight:1.1.0 (1 constraints: 590ce401) org.conscrypt:conscrypt-openjdk-uber:2.5.2 (1 constraints: ed0fea95) diff --git a/versions.props b/versions.props index dcb252f6ee2..50389930120 100644 --- a/versions.props +++ b/versions.props @@ -32,7 +32,7 @@ net.sourceforge.argparse4j:argparse4j=0.9.0 net.thisptr:jackson-jq=0.0.13 no.nav.security:mock-oauth2-server=0.5.10 org.apache.calcite.avatica:avatica-core=1.23.0 -org.apache.calcite:*=1.34.0 +org.apache.calcite:*=1.35.0 org.apache.commons:commons-collections4=4.4 org.apache.commons:commons-compress=1.24.0 org.apache.commons:commons-configuration2=2.9.0 From de234cb9a30d28dd46f3c1eb96732a0bd0f08b8d Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:19:14 +0200 Subject: [PATCH 10/29] Update dependency org.semver4j:semver4j to v5.2.1 (#1968) --- solr/licenses/semver4j-5.1.0.jar.sha1 | 1 - solr/licenses/semver4j-5.2.1.jar.sha1 | 1 + versions.lock | 2 +- versions.props | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 solr/licenses/semver4j-5.1.0.jar.sha1 create mode 100644 solr/licenses/semver4j-5.2.1.jar.sha1 diff --git a/solr/licenses/semver4j-5.1.0.jar.sha1 b/solr/licenses/semver4j-5.1.0.jar.sha1 deleted file mode 100644 index 69c3649226d..00000000000 --- a/solr/licenses/semver4j-5.1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e4afaf5d7297c8fbb67517ba6f1150b50e034b84 diff --git a/solr/licenses/semver4j-5.2.1.jar.sha1 b/solr/licenses/semver4j-5.2.1.jar.sha1 new file mode 100644 index 00000000000..dcd8c33033f --- /dev/null +++ b/solr/licenses/semver4j-5.2.1.jar.sha1 @@ -0,0 +1 @@ +e5942160167e4f9adfa49a59de1066442b980b5a diff --git a/versions.lock b/versions.lock index e327c46bedf..88e9d364432 100644 --- a/versions.lock +++ b/versions.lock @@ -343,7 +343,7 @@ org.ow2.asm:asm-commons:7.2 (1 constraints: 6b0f7267) org.ow2.asm:asm-tree:7.2 (2 constraints: 2f14468c) org.quicktheories:quicktheories:0.26 (1 constraints: dc04f530) org.reactivestreams:reactive-streams:1.0.4 (3 constraints: 3f2b77fd) -org.semver4j:semver4j:5.1.0 (1 constraints: 08050736) +org.semver4j:semver4j:5.2.1 (1 constraints: 0a050b36) org.slf4j:jcl-over-slf4j:2.0.9 (3 constraints: cf17cfa6) org.slf4j:jul-to-slf4j:2.0.9 (3 constraints: 29286349) org.slf4j:slf4j-api:2.0.9 (59 constraints: dd104075) diff --git a/versions.props b/versions.props index 50389930120..9a8a0fa543a 100644 --- a/versions.props +++ b/versions.props @@ -66,7 +66,7 @@ org.mockito:mockito*=5.5.0 org.openjdk.jmh:*=1.37 org.osgi:osgi.annotation=8.1.0 org.quicktheories:quicktheories=0.26 -org.semver4j:semver4j=5.1.0 +org.semver4j:semver4j=5.2.1 org.slf4j:*=2.0.9 org.xerial.snappy:snappy-java=1.1.10.5 software.amazon.awssdk:*=2.20.155 From 42c64d4f672e67f87fefdf6350b75acd19011b74 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 16:00:09 +0200 Subject: [PATCH 11/29] Update io.netty:* to v4.1.99.Final (#1967) --- .../netty-buffer-4.1.97.Final.jar.sha1 | 1 - .../netty-buffer-4.1.99.Final.jar.sha1 | 1 + .../netty-codec-4.1.97.Final.jar.sha1 | 1 - .../netty-codec-4.1.99.Final.jar.sha1 | 1 + .../netty-codec-http-4.1.97.Final.jar.sha1 | 1 - .../netty-codec-http-4.1.99.Final.jar.sha1 | 1 + .../netty-codec-http2-4.1.97.Final.jar.sha1 | 1 - .../netty-codec-http2-4.1.99.Final.jar.sha1 | 1 + .../netty-codec-socks-4.1.97.Final.jar.sha1 | 1 - .../netty-codec-socks-4.1.99.Final.jar.sha1 | 1 + .../netty-common-4.1.97.Final.jar.sha1 | 1 - .../netty-common-4.1.99.Final.jar.sha1 | 1 + .../netty-handler-4.1.97.Final.jar.sha1 | 1 - .../netty-handler-4.1.99.Final.jar.sha1 | 1 + .../netty-handler-proxy-4.1.97.Final.jar.sha1 | 1 - .../netty-handler-proxy-4.1.99.Final.jar.sha1 | 1 + .../netty-resolver-4.1.97.Final.jar.sha1 | 1 - .../netty-resolver-4.1.99.Final.jar.sha1 | 1 + .../netty-transport-4.1.97.Final.jar.sha1 | 1 - .../netty-transport-4.1.99.Final.jar.sha1 | 1 + ...nsport-classes-epoll-4.1.97.Final.jar.sha1 | 1 - ...nsport-classes-epoll-4.1.99.Final.jar.sha1 | 1 + ...e-epoll-4.1.97.Final-linux-x86_64.jar.sha1 | 1 - ...e-epoll-4.1.99.Final-linux-x86_64.jar.sha1 | 1 + ...t-native-unix-common-4.1.97.Final.jar.sha1 | 1 - ...t-native-unix-common-4.1.99.Final.jar.sha1 | 1 + versions.lock | 26 +++++++++---------- versions.props | 2 +- 28 files changed, 27 insertions(+), 27 deletions(-) delete mode 100644 solr/licenses/netty-buffer-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-buffer-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-codec-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-codec-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-codec-http-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-codec-http-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-codec-http2-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-codec-http2-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-codec-socks-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-codec-socks-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-common-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-common-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-handler-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-handler-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-handler-proxy-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-handler-proxy-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-resolver-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-resolver-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-transport-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-transport-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-transport-classes-epoll-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-transport-classes-epoll-4.1.99.Final.jar.sha1 delete mode 100644 solr/licenses/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar.sha1 create mode 100644 solr/licenses/netty-transport-native-epoll-4.1.99.Final-linux-x86_64.jar.sha1 delete mode 100644 solr/licenses/netty-transport-native-unix-common-4.1.97.Final.jar.sha1 create mode 100644 solr/licenses/netty-transport-native-unix-common-4.1.99.Final.jar.sha1 diff --git a/solr/licenses/netty-buffer-4.1.97.Final.jar.sha1 b/solr/licenses/netty-buffer-4.1.97.Final.jar.sha1 deleted file mode 100644 index 31cefc05102..00000000000 --- a/solr/licenses/netty-buffer-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f diff --git a/solr/licenses/netty-buffer-4.1.99.Final.jar.sha1 b/solr/licenses/netty-buffer-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..f14bb02dd1f --- /dev/null +++ b/solr/licenses/netty-buffer-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +9f02dcb9b15a647a56af210dffdc294a57922fb0 diff --git a/solr/licenses/netty-codec-4.1.97.Final.jar.sha1 b/solr/licenses/netty-codec-4.1.97.Final.jar.sha1 deleted file mode 100644 index 25a34c88211..00000000000 --- a/solr/licenses/netty-codec-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -384ba4d75670befbedb45c4d3b497a93639c206d diff --git a/solr/licenses/netty-codec-4.1.99.Final.jar.sha1 b/solr/licenses/netty-codec-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..b170f6974ac --- /dev/null +++ b/solr/licenses/netty-codec-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +9984cbd6e5d55c768f198e975d8aaf7fd42a4602 diff --git a/solr/licenses/netty-codec-http-4.1.97.Final.jar.sha1 b/solr/licenses/netty-codec-http-4.1.97.Final.jar.sha1 deleted file mode 100644 index 03518cdaa81..00000000000 --- a/solr/licenses/netty-codec-http-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -af78acec783ffd77c63d8aeecc21041fd39ac54f diff --git a/solr/licenses/netty-codec-http-4.1.99.Final.jar.sha1 b/solr/licenses/netty-codec-http-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..752680c6c41 --- /dev/null +++ b/solr/licenses/netty-codec-http-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +7142095066eaebd5f29b88c41af7b383b6a953f6 diff --git a/solr/licenses/netty-codec-http2-4.1.97.Final.jar.sha1 b/solr/licenses/netty-codec-http2-4.1.97.Final.jar.sha1 deleted file mode 100644 index 670f254bd80..00000000000 --- a/solr/licenses/netty-codec-http2-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -893888d09a7bef0d0ba973d7471943e765d0fd08 diff --git a/solr/licenses/netty-codec-http2-4.1.99.Final.jar.sha1 b/solr/licenses/netty-codec-http2-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..a21d6a7d697 --- /dev/null +++ b/solr/licenses/netty-codec-http2-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +c5a3481c4bb9732a3a94fb63cf916141a1a14669 diff --git a/solr/licenses/netty-codec-socks-4.1.97.Final.jar.sha1 b/solr/licenses/netty-codec-socks-4.1.97.Final.jar.sha1 deleted file mode 100644 index e0fa273a8f6..00000000000 --- a/solr/licenses/netty-codec-socks-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -30e8fa29a349db5a933225d61891b8802836bb79 diff --git a/solr/licenses/netty-codec-socks-4.1.99.Final.jar.sha1 b/solr/licenses/netty-codec-socks-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..dfbc3112d39 --- /dev/null +++ b/solr/licenses/netty-codec-socks-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +259bf1c5178c3e23bb89a2fab59b6d22846e3fa6 diff --git a/solr/licenses/netty-common-4.1.97.Final.jar.sha1 b/solr/licenses/netty-common-4.1.97.Final.jar.sha1 deleted file mode 100644 index 5d1fecee719..00000000000 --- a/solr/licenses/netty-common-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7cceacaf11df8dc63f23d0fb58e9d4640fc88404 diff --git a/solr/licenses/netty-common-4.1.99.Final.jar.sha1 b/solr/licenses/netty-common-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..25f26d8d00c --- /dev/null +++ b/solr/licenses/netty-common-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +278f6dfa49d6bd75c40ae1470eb165716f87dce0 diff --git a/solr/licenses/netty-handler-4.1.97.Final.jar.sha1 b/solr/licenses/netty-handler-4.1.97.Final.jar.sha1 deleted file mode 100644 index 97d7df5d06b..00000000000 --- a/solr/licenses/netty-handler-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36 diff --git a/solr/licenses/netty-handler-4.1.99.Final.jar.sha1 b/solr/licenses/netty-handler-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..1c796882bcc --- /dev/null +++ b/solr/licenses/netty-handler-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +742693761d7ea4c038bccfda96bb38194720b80d diff --git a/solr/licenses/netty-handler-proxy-4.1.97.Final.jar.sha1 b/solr/licenses/netty-handler-proxy-4.1.97.Final.jar.sha1 deleted file mode 100644 index c64fc038ff4..00000000000 --- a/solr/licenses/netty-handler-proxy-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a99ecef0e1d86a92e40a7c89805c236d9cd7493e diff --git a/solr/licenses/netty-handler-proxy-4.1.99.Final.jar.sha1 b/solr/licenses/netty-handler-proxy-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..0abb815a06a --- /dev/null +++ b/solr/licenses/netty-handler-proxy-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +8c8a89ea89b06e120c57bdb3db14b9a47ca30bb3 diff --git a/solr/licenses/netty-resolver-4.1.97.Final.jar.sha1 b/solr/licenses/netty-resolver-4.1.97.Final.jar.sha1 deleted file mode 100644 index 2ff3f5b0501..00000000000 --- a/solr/licenses/netty-resolver-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -cec8348108dc76c47cf87c669d514be52c922144 diff --git a/solr/licenses/netty-resolver-4.1.99.Final.jar.sha1 b/solr/licenses/netty-resolver-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..28c9a8f0ca9 --- /dev/null +++ b/solr/licenses/netty-resolver-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +080e45397d9d5b134477de3ffd0f94283b908621 diff --git a/solr/licenses/netty-transport-4.1.97.Final.jar.sha1 b/solr/licenses/netty-transport-4.1.97.Final.jar.sha1 deleted file mode 100644 index 3684e33df42..00000000000 --- a/solr/licenses/netty-transport-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f37380d23c9bb079bc702910833b2fd532c9abd0 diff --git a/solr/licenses/netty-transport-4.1.99.Final.jar.sha1 b/solr/licenses/netty-transport-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..39497e8367d --- /dev/null +++ b/solr/licenses/netty-transport-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +9ca2e3ae19a6713b749df154622115f480b6716c diff --git a/solr/licenses/netty-transport-classes-epoll-4.1.97.Final.jar.sha1 b/solr/licenses/netty-transport-classes-epoll-4.1.97.Final.jar.sha1 deleted file mode 100644 index 298772c96c7..00000000000 --- a/solr/licenses/netty-transport-classes-epoll-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -795da37ded759e862457a82d9d92c4d39ce8ecee diff --git a/solr/licenses/netty-transport-classes-epoll-4.1.99.Final.jar.sha1 b/solr/licenses/netty-transport-classes-epoll-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..3e46f9468f0 --- /dev/null +++ b/solr/licenses/netty-transport-classes-epoll-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +961bd5b8d97ea6a07168176462f398089a24b5c8 diff --git a/solr/licenses/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar.sha1 b/solr/licenses/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar.sha1 deleted file mode 100644 index 8b48e808dd0..00000000000 --- a/solr/licenses/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -54188f271e388e7f313aea995e82f58ce2cdb809 diff --git a/solr/licenses/netty-transport-native-epoll-4.1.99.Final-linux-x86_64.jar.sha1 b/solr/licenses/netty-transport-native-epoll-4.1.99.Final-linux-x86_64.jar.sha1 new file mode 100644 index 00000000000..793b61695d9 --- /dev/null +++ b/solr/licenses/netty-transport-native-epoll-4.1.99.Final-linux-x86_64.jar.sha1 @@ -0,0 +1 @@ +49105fe39f6065dd3634d28fa755a708b237ce58 diff --git a/solr/licenses/netty-transport-native-unix-common-4.1.97.Final.jar.sha1 b/solr/licenses/netty-transport-native-unix-common-4.1.97.Final.jar.sha1 deleted file mode 100644 index 28b685bdafd..00000000000 --- a/solr/licenses/netty-transport-native-unix-common-4.1.97.Final.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d469d84265ab70095b01b40886cabdd433b6e664 diff --git a/solr/licenses/netty-transport-native-unix-common-4.1.99.Final.jar.sha1 b/solr/licenses/netty-transport-native-unix-common-4.1.99.Final.jar.sha1 new file mode 100644 index 00000000000..6429f60aea4 --- /dev/null +++ b/solr/licenses/netty-transport-native-unix-common-4.1.99.Final.jar.sha1 @@ -0,0 +1 @@ +cb0fc6c31c387404212949c57950b5d72ce908b9 diff --git a/versions.lock b/versions.lock index 88e9d364432..0e374c36140 100644 --- a/versions.lock +++ b/versions.lock @@ -109,21 +109,21 @@ io.grpc:grpc-rls:1.56.0 (1 constraints: 20100fa6) io.grpc:grpc-services:1.56.0 (1 constraints: 20100fa6) io.grpc:grpc-stub:1.56.0 (2 constraints: 5d159cd7) io.grpc:grpc-xds:1.56.0 (1 constraints: 20100fa6) -io.netty:netty-buffer:4.1.97.Final (10 constraints: ca99e90a) -io.netty:netty-codec:4.1.97.Final (5 constraints: 6f459f85) -io.netty:netty-codec-http:4.1.97.Final (3 constraints: 5b24cdee) -io.netty:netty-codec-http2:4.1.97.Final (1 constraints: ed0a94cb) -io.netty:netty-codec-socks:4.1.97.Final (1 constraints: 170fc06c) -io.netty:netty-common:4.1.97.Final (12 constraints: 48b3098a) -io.netty:netty-handler:4.1.97.Final (3 constraints: 742be33d) -io.netty:netty-handler-proxy:4.1.97.Final (1 constraints: ed0a94cb) -io.netty:netty-resolver:4.1.97.Final (2 constraints: 5e1ab932) +io.netty:netty-buffer:4.1.99.Final (10 constraints: de999d1c) +io.netty:netty-codec:4.1.99.Final (5 constraints: 79452589) +io.netty:netty-codec-http:4.1.99.Final (3 constraints: 6124fbef) +io.netty:netty-codec-http2:4.1.99.Final (1 constraints: ed0a94cb) +io.netty:netty-codec-socks:4.1.99.Final (1 constraints: 190fce6c) +io.netty:netty-common:4.1.99.Final (12 constraints: 60b319a3) +io.netty:netty-handler:4.1.99.Final (3 constraints: 782b0b3f) +io.netty:netty-handler-proxy:4.1.99.Final (1 constraints: ed0a94cb) +io.netty:netty-resolver:4.1.99.Final (2 constraints: 621a2533) io.netty:netty-tcnative-boringssl-static:2.0.61.Final (1 constraints: d10fc38e) io.netty:netty-tcnative-classes:2.0.61.Final (1 constraints: d113ea5d) -io.netty:netty-transport:4.1.97.Final (9 constraints: 148cac46) -io.netty:netty-transport-classes-epoll:4.1.97.Final (1 constraints: b4120d1f) -io.netty:netty-transport-native-epoll:4.1.97.Final (1 constraints: da0f128f) -io.netty:netty-transport-native-unix-common:4.1.97.Final (4 constraints: 613dce97) +io.netty:netty-transport:4.1.99.Final (9 constraints: 268c2655) +io.netty:netty-transport-classes-epoll:4.1.99.Final (1 constraints: b6121b1f) +io.netty:netty-transport-native-epoll:4.1.99.Final (1 constraints: da0f128f) +io.netty:netty-transport-native-unix-common:4.1.99.Final (4 constraints: 673d3899) io.opencensus:opencensus-api:0.31.1 (5 constraints: 924d4692) io.opencensus:opencensus-contrib-http-util:0.31.1 (3 constraints: 7232a9fc) io.opencensus:opencensus-proto:0.2.0 (1 constraints: e60fd595) diff --git a/versions.props b/versions.props index 9a8a0fa543a..767d5e526b5 100644 --- a/versions.props +++ b/versions.props @@ -22,7 +22,7 @@ commons-collections:commons-collections=3.2.2 commons-io:commons-io=2.14.0 io.dropwizard.metrics:*=4.2.20 io.grpc:grpc-*=1.56.0 -io.netty:*=4.1.97.Final +io.netty:*=4.1.99.Final io.opentelemetry:opentelemetry-bom=1.30.1 io.prometheus:*=0.16.0 io.swagger.core.v3:*=2.2.16 From bde1feda0d02a73850dc47dbe2b98b8b26cceb40 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 16:22:06 +0200 Subject: [PATCH 12/29] Update dependency com.adobe.testing:s3mock-junit4 to v2.17.0 (#1741) --- .../aws-java-sdk-core-1.12.488.jar.sha1 | 1 - .../aws-java-sdk-core-1.12.501.jar.sha1 | 1 + .../aws-java-sdk-kms-1.12.488.jar.sha1 | 1 - .../aws-java-sdk-kms-1.12.501.jar.sha1 | 1 + .../aws-java-sdk-s3-1.12.488.jar.sha1 | 1 - .../aws-java-sdk-s3-1.12.501.jar.sha1 | 1 + solr/licenses/jmespath-java-1.12.488.jar.sha1 | 1 - solr/licenses/jmespath-java-1.12.501.jar.sha1 | 1 + solr/licenses/micrometer-core-1.9.11.jar.sha1 | 1 - solr/licenses/micrometer-core-1.9.12.jar.sha1 | 1 + solr/licenses/s3mock-2.13.0.jar.sha1 | 1 - solr/licenses/s3mock-2.17.0.jar.sha1 | 1 + solr/licenses/s3mock-junit4-2.13.0.jar.sha1 | 1 - solr/licenses/s3mock-junit4-2.17.0.jar.sha1 | 1 + .../s3mock-testsupport-common-2.13.0.jar.sha1 | 1 - .../s3mock-testsupport-common-2.17.0.jar.sha1 | 1 + solr/licenses/spring-aop-5.3.27.jar.sha1 | 1 - solr/licenses/spring-aop-5.3.28.jar.sha1 | 1 + solr/licenses/spring-beans-5.3.27.jar.sha1 | 1 - solr/licenses/spring-beans-5.3.28.jar.sha1 | 1 + solr/licenses/spring-boot-2.7.12.jar.sha1 | 1 - solr/licenses/spring-boot-2.7.13.jar.sha1 | 1 + .../spring-boot-actuator-2.7.12.jar.sha1 | 1 - .../spring-boot-actuator-2.7.13.jar.sha1 | 1 + ...oot-actuator-autoconfigure-2.7.12.jar.sha1 | 1 - ...oot-actuator-autoconfigure-2.7.13.jar.sha1 | 1 + .../spring-boot-autoconfigure-2.7.12.jar.sha1 | 1 - .../spring-boot-autoconfigure-2.7.13.jar.sha1 | 1 + .../spring-boot-starter-2.7.12.jar.sha1 | 1 - .../spring-boot-starter-2.7.13.jar.sha1 | 1 + ...ring-boot-starter-actuator-2.7.12.jar.sha1 | 1 - ...ring-boot-starter-actuator-2.7.13.jar.sha1 | 1 + .../spring-boot-starter-jetty-2.7.12.jar.sha1 | 1 - .../spring-boot-starter-jetty-2.7.13.jar.sha1 | 1 + .../spring-boot-starter-json-2.7.12.jar.sha1 | 1 - .../spring-boot-starter-json-2.7.13.jar.sha1 | 1 + ...pring-boot-starter-logging-2.7.12.jar.sha1 | 1 - ...pring-boot-starter-logging-2.7.13.jar.sha1 | 1 + .../spring-boot-starter-web-2.7.12.jar.sha1 | 1 - .../spring-boot-starter-web-2.7.13.jar.sha1 | 1 + solr/licenses/spring-context-5.3.27.jar.sha1 | 1 - solr/licenses/spring-context-5.3.28.jar.sha1 | 1 + solr/licenses/spring-core-5.3.27.jar.sha1 | 1 - solr/licenses/spring-core-5.3.28.jar.sha1 | 1 + .../spring-expression-5.3.27.jar.sha1 | 1 - .../spring-expression-5.3.28.jar.sha1 | 1 + solr/licenses/spring-jcl-5.3.27.jar.sha1 | 1 - solr/licenses/spring-jcl-5.3.28.jar.sha1 | 1 + solr/licenses/spring-web-5.3.27.jar.sha1 | 1 - solr/licenses/spring-web-5.3.28.jar.sha1 | 1 + solr/licenses/spring-webmvc-5.3.27.jar.sha1 | 1 - solr/licenses/spring-webmvc-5.3.28.jar.sha1 | 1 + solr/licenses/tomcat-embed-el-9.0.75.jar.sha1 | 1 - solr/licenses/tomcat-embed-el-9.0.76.jar.sha1 | 1 + versions.lock | 62 +++++++++---------- versions.props | 2 +- 56 files changed, 59 insertions(+), 59 deletions(-) delete mode 100644 solr/licenses/aws-java-sdk-core-1.12.488.jar.sha1 create mode 100644 solr/licenses/aws-java-sdk-core-1.12.501.jar.sha1 delete mode 100644 solr/licenses/aws-java-sdk-kms-1.12.488.jar.sha1 create mode 100644 solr/licenses/aws-java-sdk-kms-1.12.501.jar.sha1 delete mode 100644 solr/licenses/aws-java-sdk-s3-1.12.488.jar.sha1 create mode 100644 solr/licenses/aws-java-sdk-s3-1.12.501.jar.sha1 delete mode 100644 solr/licenses/jmespath-java-1.12.488.jar.sha1 create mode 100644 solr/licenses/jmespath-java-1.12.501.jar.sha1 delete mode 100644 solr/licenses/micrometer-core-1.9.11.jar.sha1 create mode 100644 solr/licenses/micrometer-core-1.9.12.jar.sha1 delete mode 100644 solr/licenses/s3mock-2.13.0.jar.sha1 create mode 100644 solr/licenses/s3mock-2.17.0.jar.sha1 delete mode 100644 solr/licenses/s3mock-junit4-2.13.0.jar.sha1 create mode 100644 solr/licenses/s3mock-junit4-2.17.0.jar.sha1 delete mode 100644 solr/licenses/s3mock-testsupport-common-2.13.0.jar.sha1 create mode 100644 solr/licenses/s3mock-testsupport-common-2.17.0.jar.sha1 delete mode 100644 solr/licenses/spring-aop-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-aop-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-beans-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-beans-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-boot-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-actuator-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-actuator-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-actuator-autoconfigure-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-actuator-autoconfigure-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-autoconfigure-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-autoconfigure-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-starter-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-starter-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-starter-actuator-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-starter-actuator-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-starter-jetty-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-starter-jetty-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-starter-json-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-starter-json-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-starter-logging-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-starter-logging-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-boot-starter-web-2.7.12.jar.sha1 create mode 100644 solr/licenses/spring-boot-starter-web-2.7.13.jar.sha1 delete mode 100644 solr/licenses/spring-context-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-context-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-core-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-core-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-expression-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-expression-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-jcl-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-jcl-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-web-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-web-5.3.28.jar.sha1 delete mode 100644 solr/licenses/spring-webmvc-5.3.27.jar.sha1 create mode 100644 solr/licenses/spring-webmvc-5.3.28.jar.sha1 delete mode 100644 solr/licenses/tomcat-embed-el-9.0.75.jar.sha1 create mode 100644 solr/licenses/tomcat-embed-el-9.0.76.jar.sha1 diff --git a/solr/licenses/aws-java-sdk-core-1.12.488.jar.sha1 b/solr/licenses/aws-java-sdk-core-1.12.488.jar.sha1 deleted file mode 100644 index cb7febc35e2..00000000000 --- a/solr/licenses/aws-java-sdk-core-1.12.488.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d79bcf0286a38bd88b1db79fa369fcf453df0afa diff --git a/solr/licenses/aws-java-sdk-core-1.12.501.jar.sha1 b/solr/licenses/aws-java-sdk-core-1.12.501.jar.sha1 new file mode 100644 index 00000000000..af7f788dfc0 --- /dev/null +++ b/solr/licenses/aws-java-sdk-core-1.12.501.jar.sha1 @@ -0,0 +1 @@ +96e3be3b38003a161ee52393974a507797a50d16 diff --git a/solr/licenses/aws-java-sdk-kms-1.12.488.jar.sha1 b/solr/licenses/aws-java-sdk-kms-1.12.488.jar.sha1 deleted file mode 100644 index 5ee719c62c7..00000000000 --- a/solr/licenses/aws-java-sdk-kms-1.12.488.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c7adf0ec67903ec46ecd5de0e334b93963980ff3 diff --git a/solr/licenses/aws-java-sdk-kms-1.12.501.jar.sha1 b/solr/licenses/aws-java-sdk-kms-1.12.501.jar.sha1 new file mode 100644 index 00000000000..69086477449 --- /dev/null +++ b/solr/licenses/aws-java-sdk-kms-1.12.501.jar.sha1 @@ -0,0 +1 @@ +ad3cef50677ecead50802b0dc5830c6e2034166f diff --git a/solr/licenses/aws-java-sdk-s3-1.12.488.jar.sha1 b/solr/licenses/aws-java-sdk-s3-1.12.488.jar.sha1 deleted file mode 100644 index 48847665b64..00000000000 --- a/solr/licenses/aws-java-sdk-s3-1.12.488.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6718ba6a6f62aacd21b21707eb94511a0b9beeb3 diff --git a/solr/licenses/aws-java-sdk-s3-1.12.501.jar.sha1 b/solr/licenses/aws-java-sdk-s3-1.12.501.jar.sha1 new file mode 100644 index 00000000000..5a18ae623b1 --- /dev/null +++ b/solr/licenses/aws-java-sdk-s3-1.12.501.jar.sha1 @@ -0,0 +1 @@ +e085a735bc14c56899f2fdd1beb051505351aa25 diff --git a/solr/licenses/jmespath-java-1.12.488.jar.sha1 b/solr/licenses/jmespath-java-1.12.488.jar.sha1 deleted file mode 100644 index 2d47bac4d23..00000000000 --- a/solr/licenses/jmespath-java-1.12.488.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2c903a2416a5f90094c3c574d14ba208be346b9e diff --git a/solr/licenses/jmespath-java-1.12.501.jar.sha1 b/solr/licenses/jmespath-java-1.12.501.jar.sha1 new file mode 100644 index 00000000000..baf747d0cf3 --- /dev/null +++ b/solr/licenses/jmespath-java-1.12.501.jar.sha1 @@ -0,0 +1 @@ +941d0bade80af32bb3ac0fc77ae3691ef6515af8 diff --git a/solr/licenses/micrometer-core-1.9.11.jar.sha1 b/solr/licenses/micrometer-core-1.9.11.jar.sha1 deleted file mode 100644 index 5dd8a9d25bb..00000000000 --- a/solr/licenses/micrometer-core-1.9.11.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c9c51ffe93b55af9deb2e77ac2fa1777b9ee1c14 diff --git a/solr/licenses/micrometer-core-1.9.12.jar.sha1 b/solr/licenses/micrometer-core-1.9.12.jar.sha1 new file mode 100644 index 00000000000..9f3ee82e101 --- /dev/null +++ b/solr/licenses/micrometer-core-1.9.12.jar.sha1 @@ -0,0 +1 @@ +1077e4cce74894bbe96c79d380781820ba3dfd44 diff --git a/solr/licenses/s3mock-2.13.0.jar.sha1 b/solr/licenses/s3mock-2.13.0.jar.sha1 deleted file mode 100644 index c491c13b255..00000000000 --- a/solr/licenses/s3mock-2.13.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -66e841499e85580a23f9a1a4a1a452154f14754e diff --git a/solr/licenses/s3mock-2.17.0.jar.sha1 b/solr/licenses/s3mock-2.17.0.jar.sha1 new file mode 100644 index 00000000000..878d6fb5886 --- /dev/null +++ b/solr/licenses/s3mock-2.17.0.jar.sha1 @@ -0,0 +1 @@ +e5857753b28d06f6728f6200f94e5be299c8631c diff --git a/solr/licenses/s3mock-junit4-2.13.0.jar.sha1 b/solr/licenses/s3mock-junit4-2.13.0.jar.sha1 deleted file mode 100644 index 67bc0a08e9d..00000000000 --- a/solr/licenses/s3mock-junit4-2.13.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -96fa0a977b2fb6510c95e9e2e3fa47e516cbcbcc diff --git a/solr/licenses/s3mock-junit4-2.17.0.jar.sha1 b/solr/licenses/s3mock-junit4-2.17.0.jar.sha1 new file mode 100644 index 00000000000..7533e674ae3 --- /dev/null +++ b/solr/licenses/s3mock-junit4-2.17.0.jar.sha1 @@ -0,0 +1 @@ +e9601a823ef3648544d0c1d0ff14517c1feb0969 diff --git a/solr/licenses/s3mock-testsupport-common-2.13.0.jar.sha1 b/solr/licenses/s3mock-testsupport-common-2.13.0.jar.sha1 deleted file mode 100644 index 99ea84a688e..00000000000 --- a/solr/licenses/s3mock-testsupport-common-2.13.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -785f534d2d5e9ec962b76780334f2e36dfbb60f5 diff --git a/solr/licenses/s3mock-testsupport-common-2.17.0.jar.sha1 b/solr/licenses/s3mock-testsupport-common-2.17.0.jar.sha1 new file mode 100644 index 00000000000..792568cba32 --- /dev/null +++ b/solr/licenses/s3mock-testsupport-common-2.17.0.jar.sha1 @@ -0,0 +1 @@ +a3af9b0bf0bdb001463356c8ebc2569b9ba478f1 diff --git a/solr/licenses/spring-aop-5.3.27.jar.sha1 b/solr/licenses/spring-aop-5.3.27.jar.sha1 deleted file mode 100644 index 69f7603ae19..00000000000 --- a/solr/licenses/spring-aop-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ecae2962d53c587fd0e405cd60dc8415d1b9e12d diff --git a/solr/licenses/spring-aop-5.3.28.jar.sha1 b/solr/licenses/spring-aop-5.3.28.jar.sha1 new file mode 100644 index 00000000000..5ce207bde99 --- /dev/null +++ b/solr/licenses/spring-aop-5.3.28.jar.sha1 @@ -0,0 +1 @@ +aada0ea72a3efee5f02f264f90329f7eddedf321 diff --git a/solr/licenses/spring-beans-5.3.27.jar.sha1 b/solr/licenses/spring-beans-5.3.27.jar.sha1 deleted file mode 100644 index 7c09b141146..00000000000 --- a/solr/licenses/spring-beans-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -46e7d917551ffcc0a104fd971d1fa207b30d7761 diff --git a/solr/licenses/spring-beans-5.3.28.jar.sha1 b/solr/licenses/spring-beans-5.3.28.jar.sha1 new file mode 100644 index 00000000000..0391b770009 --- /dev/null +++ b/solr/licenses/spring-beans-5.3.28.jar.sha1 @@ -0,0 +1 @@ +4d232acbb7031963688cf28b1b34134937892c4f diff --git a/solr/licenses/spring-boot-2.7.12.jar.sha1 b/solr/licenses/spring-boot-2.7.12.jar.sha1 deleted file mode 100644 index f14f7f17d63..00000000000 --- a/solr/licenses/spring-boot-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -888c3545dc3c6ca791753c7ad621a2d03f222732 diff --git a/solr/licenses/spring-boot-2.7.13.jar.sha1 b/solr/licenses/spring-boot-2.7.13.jar.sha1 new file mode 100644 index 00000000000..9868e93593d --- /dev/null +++ b/solr/licenses/spring-boot-2.7.13.jar.sha1 @@ -0,0 +1 @@ +d009fa51c7792c9e510da7e69329baf39591707d diff --git a/solr/licenses/spring-boot-actuator-2.7.12.jar.sha1 b/solr/licenses/spring-boot-actuator-2.7.12.jar.sha1 deleted file mode 100644 index 2de5e2e1354..00000000000 --- a/solr/licenses/spring-boot-actuator-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c5b5961120028a8a7db9b2d5b4f5f926fd0b0b15 diff --git a/solr/licenses/spring-boot-actuator-2.7.13.jar.sha1 b/solr/licenses/spring-boot-actuator-2.7.13.jar.sha1 new file mode 100644 index 00000000000..e21fd0ffce2 --- /dev/null +++ b/solr/licenses/spring-boot-actuator-2.7.13.jar.sha1 @@ -0,0 +1 @@ +fff492093093c580ed528e115a01ae3158f4b674 diff --git a/solr/licenses/spring-boot-actuator-autoconfigure-2.7.12.jar.sha1 b/solr/licenses/spring-boot-actuator-autoconfigure-2.7.12.jar.sha1 deleted file mode 100644 index b06d09a061b..00000000000 --- a/solr/licenses/spring-boot-actuator-autoconfigure-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -18f55d22dc8d23f46f6dfd8dd352f3ae0bc8587c diff --git a/solr/licenses/spring-boot-actuator-autoconfigure-2.7.13.jar.sha1 b/solr/licenses/spring-boot-actuator-autoconfigure-2.7.13.jar.sha1 new file mode 100644 index 00000000000..41e04eafd02 --- /dev/null +++ b/solr/licenses/spring-boot-actuator-autoconfigure-2.7.13.jar.sha1 @@ -0,0 +1 @@ +d6d16648726ee7dafcd5435f4f66d02ff3338f5f diff --git a/solr/licenses/spring-boot-autoconfigure-2.7.12.jar.sha1 b/solr/licenses/spring-boot-autoconfigure-2.7.12.jar.sha1 deleted file mode 100644 index a9d9d59d1db..00000000000 --- a/solr/licenses/spring-boot-autoconfigure-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5bb8661bba72f7ca353ae486ccb06285f0ed84eb diff --git a/solr/licenses/spring-boot-autoconfigure-2.7.13.jar.sha1 b/solr/licenses/spring-boot-autoconfigure-2.7.13.jar.sha1 new file mode 100644 index 00000000000..63a1f63afbf --- /dev/null +++ b/solr/licenses/spring-boot-autoconfigure-2.7.13.jar.sha1 @@ -0,0 +1 @@ +1b6b9605b1b116e32c372f3b9e15abf7bb17038c diff --git a/solr/licenses/spring-boot-starter-2.7.12.jar.sha1 b/solr/licenses/spring-boot-starter-2.7.12.jar.sha1 deleted file mode 100644 index aef33915fb5..00000000000 --- a/solr/licenses/spring-boot-starter-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a5f6a95e4e4a50cfaf0f14c86240d8be49637141 diff --git a/solr/licenses/spring-boot-starter-2.7.13.jar.sha1 b/solr/licenses/spring-boot-starter-2.7.13.jar.sha1 new file mode 100644 index 00000000000..77381975a2e --- /dev/null +++ b/solr/licenses/spring-boot-starter-2.7.13.jar.sha1 @@ -0,0 +1 @@ +5617ca04b06778877fb80d146dd2d0dd6adb23a8 diff --git a/solr/licenses/spring-boot-starter-actuator-2.7.12.jar.sha1 b/solr/licenses/spring-boot-starter-actuator-2.7.12.jar.sha1 deleted file mode 100644 index b38b6a5e399..00000000000 --- a/solr/licenses/spring-boot-starter-actuator-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f3f66262d4b856db3afbb55e4c04446b24b085d6 diff --git a/solr/licenses/spring-boot-starter-actuator-2.7.13.jar.sha1 b/solr/licenses/spring-boot-starter-actuator-2.7.13.jar.sha1 new file mode 100644 index 00000000000..00cd8b33892 --- /dev/null +++ b/solr/licenses/spring-boot-starter-actuator-2.7.13.jar.sha1 @@ -0,0 +1 @@ +9e21e7d8fe52e5a2c58adf631a14b21ea6b08cbf diff --git a/solr/licenses/spring-boot-starter-jetty-2.7.12.jar.sha1 b/solr/licenses/spring-boot-starter-jetty-2.7.12.jar.sha1 deleted file mode 100644 index f7764cf0f9f..00000000000 --- a/solr/licenses/spring-boot-starter-jetty-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -12c93e9376bfb45f8eab849eb380137722f93c46 diff --git a/solr/licenses/spring-boot-starter-jetty-2.7.13.jar.sha1 b/solr/licenses/spring-boot-starter-jetty-2.7.13.jar.sha1 new file mode 100644 index 00000000000..c6d33b2af97 --- /dev/null +++ b/solr/licenses/spring-boot-starter-jetty-2.7.13.jar.sha1 @@ -0,0 +1 @@ +1bf057f189e6b511428857c853f7faf6f0591299 diff --git a/solr/licenses/spring-boot-starter-json-2.7.12.jar.sha1 b/solr/licenses/spring-boot-starter-json-2.7.12.jar.sha1 deleted file mode 100644 index d96990b6418..00000000000 --- a/solr/licenses/spring-boot-starter-json-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -863c30cf3a7858421d71762e1632d887cdb0866f diff --git a/solr/licenses/spring-boot-starter-json-2.7.13.jar.sha1 b/solr/licenses/spring-boot-starter-json-2.7.13.jar.sha1 new file mode 100644 index 00000000000..51408cd2fa1 --- /dev/null +++ b/solr/licenses/spring-boot-starter-json-2.7.13.jar.sha1 @@ -0,0 +1 @@ +2fc4c73e9b8602e57d2ffc37545cc2822e948322 diff --git a/solr/licenses/spring-boot-starter-logging-2.7.12.jar.sha1 b/solr/licenses/spring-boot-starter-logging-2.7.12.jar.sha1 deleted file mode 100644 index e9aa96cf811..00000000000 --- a/solr/licenses/spring-boot-starter-logging-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b6590492b4d92baebb4ac7c1b5db11fc3488e347 diff --git a/solr/licenses/spring-boot-starter-logging-2.7.13.jar.sha1 b/solr/licenses/spring-boot-starter-logging-2.7.13.jar.sha1 new file mode 100644 index 00000000000..7de4ef8057a --- /dev/null +++ b/solr/licenses/spring-boot-starter-logging-2.7.13.jar.sha1 @@ -0,0 +1 @@ +8a5e9bd6fa8341193a977d408b9a44faaa684c8d diff --git a/solr/licenses/spring-boot-starter-web-2.7.12.jar.sha1 b/solr/licenses/spring-boot-starter-web-2.7.12.jar.sha1 deleted file mode 100644 index 920b5538fcb..00000000000 --- a/solr/licenses/spring-boot-starter-web-2.7.12.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -aba3f96331e2cfa316d8ec7446804721120a0552 diff --git a/solr/licenses/spring-boot-starter-web-2.7.13.jar.sha1 b/solr/licenses/spring-boot-starter-web-2.7.13.jar.sha1 new file mode 100644 index 00000000000..7f8538e5c66 --- /dev/null +++ b/solr/licenses/spring-boot-starter-web-2.7.13.jar.sha1 @@ -0,0 +1 @@ +707bd743fa544ca06a78a657465c1ca0f5084ea4 diff --git a/solr/licenses/spring-context-5.3.27.jar.sha1 b/solr/licenses/spring-context-5.3.27.jar.sha1 deleted file mode 100644 index 6f6cccb3162..00000000000 --- a/solr/licenses/spring-context-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -0251162aa2fe5cb374a482ae87fa6e8e8e747d72 diff --git a/solr/licenses/spring-context-5.3.28.jar.sha1 b/solr/licenses/spring-context-5.3.28.jar.sha1 new file mode 100644 index 00000000000..7edc60f960b --- /dev/null +++ b/solr/licenses/spring-context-5.3.28.jar.sha1 @@ -0,0 +1 @@ +edf8ebfd637e3e10ec7fed697eb69f2a5229748a diff --git a/solr/licenses/spring-core-5.3.27.jar.sha1 b/solr/licenses/spring-core-5.3.27.jar.sha1 deleted file mode 100644 index 41cad273635..00000000000 --- a/solr/licenses/spring-core-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ff5e35f2d4f72d22c476ff9b7bce1de25c980ebd diff --git a/solr/licenses/spring-core-5.3.28.jar.sha1 b/solr/licenses/spring-core-5.3.28.jar.sha1 new file mode 100644 index 00000000000..b2b8b266a61 --- /dev/null +++ b/solr/licenses/spring-core-5.3.28.jar.sha1 @@ -0,0 +1 @@ +5b7ec246fef72fdfbb0b4123956715ca89cc6ddf diff --git a/solr/licenses/spring-expression-5.3.27.jar.sha1 b/solr/licenses/spring-expression-5.3.27.jar.sha1 deleted file mode 100644 index c2c59add74e..00000000000 --- a/solr/licenses/spring-expression-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6225619970e8376df5c3d777610d9d03b977063b diff --git a/solr/licenses/spring-expression-5.3.28.jar.sha1 b/solr/licenses/spring-expression-5.3.28.jar.sha1 new file mode 100644 index 00000000000..1f8325901d5 --- /dev/null +++ b/solr/licenses/spring-expression-5.3.28.jar.sha1 @@ -0,0 +1 @@ +d049216b1a73b939b36bbf5cc7ce734cace7b245 diff --git a/solr/licenses/spring-jcl-5.3.27.jar.sha1 b/solr/licenses/spring-jcl-5.3.27.jar.sha1 deleted file mode 100644 index cef4cecae97..00000000000 --- a/solr/licenses/spring-jcl-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -09698ea7d5361b5e3a27ed08beb7770279bd2397 diff --git a/solr/licenses/spring-jcl-5.3.28.jar.sha1 b/solr/licenses/spring-jcl-5.3.28.jar.sha1 new file mode 100644 index 00000000000..88be4456192 --- /dev/null +++ b/solr/licenses/spring-jcl-5.3.28.jar.sha1 @@ -0,0 +1 @@ +d67e8b213aa08a0f3d71e547fb4345372d819d36 diff --git a/solr/licenses/spring-web-5.3.27.jar.sha1 b/solr/licenses/spring-web-5.3.27.jar.sha1 deleted file mode 100644 index 6b2d692cc30..00000000000 --- a/solr/licenses/spring-web-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a51c45a8602052a2a90f7e645a47ba8df1547795 diff --git a/solr/licenses/spring-web-5.3.28.jar.sha1 b/solr/licenses/spring-web-5.3.28.jar.sha1 new file mode 100644 index 00000000000..5a49ed29aa1 --- /dev/null +++ b/solr/licenses/spring-web-5.3.28.jar.sha1 @@ -0,0 +1 @@ +e15c861a248f5ba41dd1ebc691e582bb5f3a2813 diff --git a/solr/licenses/spring-webmvc-5.3.27.jar.sha1 b/solr/licenses/spring-webmvc-5.3.27.jar.sha1 deleted file mode 100644 index 5c353cce07c..00000000000 --- a/solr/licenses/spring-webmvc-5.3.27.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8beabbb0cb64c448b39df790b62e342245ee7971 diff --git a/solr/licenses/spring-webmvc-5.3.28.jar.sha1 b/solr/licenses/spring-webmvc-5.3.28.jar.sha1 new file mode 100644 index 00000000000..2d4af9abee1 --- /dev/null +++ b/solr/licenses/spring-webmvc-5.3.28.jar.sha1 @@ -0,0 +1 @@ +688bde13678e86028062f01dbcdf301308c449e7 diff --git a/solr/licenses/tomcat-embed-el-9.0.75.jar.sha1 b/solr/licenses/tomcat-embed-el-9.0.75.jar.sha1 deleted file mode 100644 index 695d5914abc..00000000000 --- a/solr/licenses/tomcat-embed-el-9.0.75.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8b97771742cbd402ad1350190f8d08b240e1793b diff --git a/solr/licenses/tomcat-embed-el-9.0.76.jar.sha1 b/solr/licenses/tomcat-embed-el-9.0.76.jar.sha1 new file mode 100644 index 00000000000..9b324f897ba --- /dev/null +++ b/solr/licenses/tomcat-embed-el-9.0.76.jar.sha1 @@ -0,0 +1 @@ +74bf8925f713a52c2af19fff6df55d80ef87166c diff --git a/versions.lock b/versions.lock index 0e374c36140..f3b7fda9835 100644 --- a/versions.lock +++ b/versions.lock @@ -369,24 +369,24 @@ software.amazon.awssdk:json-utils:2.20.155 (5 constraints: 5a408840) software.amazon.awssdk:metrics-spi:2.20.155 (7 constraints: 7163033c) software.amazon.awssdk:profiles:2.20.155 (8 constraints: c7626aa3) software.amazon.awssdk:protocol-core:2.20.155 (5 constraints: 66497b88) -software.amazon.awssdk:regions:2.20.155 (7 constraints: 4b519931) -software.amazon.awssdk:s3:2.20.155 (3 constraints: 1025d761) +software.amazon.awssdk:regions:2.20.155 (7 constraints: 4e51e633) +software.amazon.awssdk:s3:2.20.155 (4 constraints: 3d30f50b) software.amazon.awssdk:sdk-core:2.20.155 (10 constraints: 40899100) software.amazon.awssdk:sts:2.20.155 (2 constraints: 29122233) software.amazon.awssdk:third-party-jackson-core:2.20.155 (2 constraints: eb1bdad7) -software.amazon.awssdk:utils:2.20.155 (19 constraints: 961b31e6) +software.amazon.awssdk:utils:2.20.155 (19 constraints: 991b9bef) software.amazon.eventstream:eventstream:1.0.1 (2 constraints: 2e1ae62b) ua.net.nlp:morfologik-ukrainian-search:4.9.1 (1 constraints: d5126e1e) xerces:xercesImpl:2.12.2 (1 constraints: 8e0c7d0e) [Test dependencies] -com.adobe.testing:s3mock:2.13.0 (1 constraints: ac12841d) -com.adobe.testing:s3mock-junit4:2.13.0 (1 constraints: 3805383b) -com.adobe.testing:s3mock-testsupport-common:2.13.0 (1 constraints: 770d8c39) -com.amazonaws:aws-java-sdk-core:1.12.488 (2 constraints: cc1a98b5) -com.amazonaws:aws-java-sdk-kms:1.12.488 (1 constraints: 140dd137) -com.amazonaws:aws-java-sdk-s3:1.12.488 (1 constraints: 1e138343) -com.amazonaws:jmespath-java:1.12.488 (2 constraints: cc1a98b5) +com.adobe.testing:s3mock:2.17.0 (1 constraints: b012901d) +com.adobe.testing:s3mock-junit4:2.17.0 (1 constraints: 3c05443b) +com.adobe.testing:s3mock-testsupport-common:2.17.0 (1 constraints: 7b0d9839) +com.amazonaws:aws-java-sdk-core:1.12.501 (2 constraints: b01a32b3) +com.amazonaws:aws-java-sdk-kms:1.12.501 (1 constraints: 060dbd37) +com.amazonaws:aws-java-sdk-s3:1.12.501 (1 constraints: 10136f43) +com.amazonaws:jmespath-java:1.12.501 (2 constraints: b01a32b3) com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2 (2 constraints: aa195413) com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.2 (3 constraints: fc2e56b4) com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2 (4 constraints: 6d485635) @@ -400,7 +400,7 @@ com.nimbusds:oauth2-oidc-sdk:10.10.1 (1 constraints: 190f9b80) com.squareup.okhttp3:mockwebserver:4.11.0 (1 constraints: ec0e9471) io.github.microutils:kotlin-logging:3.0.5 (1 constraints: be0ea162) io.github.microutils:kotlin-logging-jvm:3.0.5 (1 constraints: 810f8b7c) -io.micrometer:micrometer-core:1.9.11 (1 constraints: fd162819) +io.micrometer:micrometer-core:1.9.12 (1 constraints: fe162919) io.opentelemetry:opentelemetry-sdk-testing:1.30.1 (1 constraints: 920fe383) jakarta.servlet:jakarta.servlet-api:4.0.4 (4 constraints: 586e1f6a) jakarta.websocket:jakarta.websocket-api:1.1.2 (1 constraints: 92155ab9) @@ -418,7 +418,7 @@ org.apache.kerby:kerb-common:1.0.1 (2 constraints: a51841ca) org.apache.kerby:kerb-identity:1.0.1 (1 constraints: 5f0cb602) org.apache.kerby:kerb-server:1.0.1 (1 constraints: d10b65f2) org.apache.kerby:kerb-simplekdc:1.0.1 (1 constraints: dc0d7e3e) -org.apache.tomcat.embed:tomcat-embed-el:9.0.75 (1 constraints: d31557cf) +org.apache.tomcat.embed:tomcat-embed-el:9.0.76 (1 constraints: d41558cf) org.freemarker:freemarker:2.3.32 (1 constraints: f00e9371) org.glassfish.grizzly:grizzly-framework:2.4.4 (1 constraints: 670fe271) org.glassfish.grizzly:grizzly-http:2.4.4 (1 constraints: 2b127cf5) @@ -438,24 +438,24 @@ org.latencyutils:LatencyUtils:2.0.3 (1 constraints: 210dcd1b) org.mockito:mockito-core:5.5.0 (2 constraints: d61174fd) org.mockito:mockito-subclass:5.5.0 (1 constraints: 0c051336) org.objenesis:objenesis:3.3 (1 constraints: b20a14bd) -org.springframework:spring-aop:5.3.27 (2 constraints: dc1e629a) -org.springframework:spring-beans:5.3.27 (4 constraints: ac3ac2c8) -org.springframework:spring-context:5.3.27 (2 constraints: 6d1f9ed2) -org.springframework:spring-core:5.3.27 (8 constraints: 077e17c3) -org.springframework:spring-expression:5.3.27 (2 constraints: dc1e629a) -org.springframework:spring-jcl:5.3.27 (1 constraints: 530ea34f) -org.springframework:spring-web:5.3.27 (3 constraints: 6239118e) -org.springframework:spring-webmvc:5.3.27 (1 constraints: dd146f9e) -org.springframework.boot:spring-boot:2.7.12 (4 constraints: 8b566345) -org.springframework.boot:spring-boot-actuator:2.7.12 (1 constraints: 7319a2b8) -org.springframework.boot:spring-boot-actuator-autoconfigure:2.7.12 (1 constraints: fd162719) -org.springframework.boot:spring-boot-autoconfigure:2.7.12 (2 constraints: df2c935d) -org.springframework.boot:spring-boot-starter:2.7.12 (3 constraints: 274138c5) -org.springframework.boot:spring-boot-starter-actuator:2.7.12 (2 constraints: 6e188cd0) -org.springframework.boot:spring-boot-starter-jetty:2.7.12 (1 constraints: f20a38d6) -org.springframework.boot:spring-boot-starter-json:2.7.12 (1 constraints: d814669e) -org.springframework.boot:spring-boot-starter-logging:2.7.12 (1 constraints: 6d138b46) -org.springframework.boot:spring-boot-starter-web:2.7.12 (1 constraints: f20a38d6) +org.springframework:spring-aop:5.3.28 (2 constraints: de1e8f9a) +org.springframework:spring-beans:5.3.28 (4 constraints: b03ac3c9) +org.springframework:spring-context:5.3.28 (2 constraints: 6f1fced2) +org.springframework:spring-core:5.3.28 (8 constraints: 0f7e33c8) +org.springframework:spring-expression:5.3.28 (2 constraints: de1e8f9a) +org.springframework:spring-jcl:5.3.28 (1 constraints: 540ea44f) +org.springframework:spring-web:5.3.28 (3 constraints: 6539c38e) +org.springframework:spring-webmvc:5.3.28 (1 constraints: de14709e) +org.springframework.boot:spring-boot:2.7.13 (4 constraints: 8f56c646) +org.springframework.boot:spring-boot-actuator:2.7.13 (1 constraints: 7419a3b8) +org.springframework.boot:spring-boot-actuator-autoconfigure:2.7.13 (1 constraints: fe162819) +org.springframework.boot:spring-boot-autoconfigure:2.7.13 (2 constraints: e12ccb5d) +org.springframework.boot:spring-boot-starter:2.7.13 (3 constraints: 2a41eac5) +org.springframework.boot:spring-boot-starter-actuator:2.7.13 (2 constraints: 7018b7d0) +org.springframework.boot:spring-boot-starter-jetty:2.7.13 (1 constraints: f30a39d6) +org.springframework.boot:spring-boot-starter-json:2.7.13 (1 constraints: d914679e) +org.springframework.boot:spring-boot-starter-logging:2.7.13 (1 constraints: 6e138c46) +org.springframework.boot:spring-boot-starter-web:2.7.13 (1 constraints: f30a39d6) org.yaml:snakeyaml:1.30 (1 constraints: 0713d91f) -software.amazon.awssdk:url-connection-client:2.20.155 (2 constraints: 701ff815) +software.amazon.awssdk:url-connection-client:2.20.155 (2 constraints: 731f6e16) software.amazon.ion:ion-java:1.0.2 (1 constraints: 720db831) diff --git a/versions.props b/versions.props index 767d5e526b5..20fb9924ae3 100644 --- a/versions.props +++ b/versions.props @@ -1,7 +1,7 @@ # The lines in this file needs to be lexicographically sorted. # Please only add direct dependencies. Overrides of transitive versions should be called out in a comment. biz.aQute.bnd:biz.aQute.bnd.annotation=6.4.1 -com.adobe.testing:s3mock-junit4=2.13.0 +com.adobe.testing:s3mock-junit4=2.17.0 com.carrotsearch.randomizedtesting:*=2.8.1 com.carrotsearch:hppc=0.9.1 com.cybozu.labs:langdetect=1.1-20120112 From 9c70ac0de5d8365f11d921f7f89429f5b4e5b049 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 16:43:47 +0200 Subject: [PATCH 13/29] Update org.glassfish.jersey*:* to v2.39.1 (#1676) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jan Høydahl Co-authored-by: Kevin Risden --- solr/licenses/javassist-3.25.0-GA.jar.sha1 | 1 - solr/licenses/javassist-3.29.0-GA.jar.sha1 | 1 + solr/licenses/jersey-client-2.35.jar.sha1 | 1 - solr/licenses/jersey-client-2.39.1.jar.sha1 | 1 + solr/licenses/jersey-common-2.35.jar.sha1 | 1 - solr/licenses/jersey-common-2.39.1.jar.sha1 | 1 + ...rsey-container-grizzly2-http-2.35.jar.sha1 | 1 - ...ey-container-grizzly2-http-2.39.1.jar.sha1 | 1 + ...y-container-grizzly2-servlet-2.35.jar.sha1 | 1 - ...container-grizzly2-servlet-2.39.1.jar.sha1 | 1 + .../jersey-container-jetty-http-2.35.jar.sha1 | 1 - ...ersey-container-jetty-http-2.39.1.jar.sha1 | 1 + .../jersey-container-servlet-2.35.jar.sha1 | 1 - .../jersey-container-servlet-2.39.1.jar.sha1 | 1 + ...ersey-container-servlet-core-2.35.jar.sha1 | 1 - ...sey-container-servlet-core-2.39.1.jar.sha1 | 1 + .../jersey-entity-filtering-2.35.jar.sha1 | 1 - .../jersey-entity-filtering-2.39.1.jar.sha1 | 1 + solr/licenses/jersey-hk2-2.35.jar.sha1 | 1 - solr/licenses/jersey-hk2-2.39.1.jar.sha1 | 1 + solr/licenses/jersey-media-jaxb-2.35.jar.sha1 | 1 - .../jersey-media-jaxb-2.39.1.jar.sha1 | 1 + .../jersey-media-json-jackson-2.35.jar.sha1 | 1 - .../jersey-media-json-jackson-2.39.1.jar.sha1 | 1 + solr/licenses/jersey-server-2.35.jar.sha1 | 1 - solr/licenses/jersey-server-2.39.1.jar.sha1 | 1 + .../jersey-test-framework-core-2.35.jar.sha1 | 1 - ...jersey-test-framework-core-2.39.1.jar.sha1 | 1 + ...-framework-provider-grizzly2-2.35.jar.sha1 | 1 - ...ramework-provider-grizzly2-2.39.1.jar.sha1 | 1 + solr/licenses/junit-jupiter-5.9.1.jar.sha1 | 1 + .../licenses/junit-jupiter-api-5.9.1.jar.sha1 | 1 + .../junit-jupiter-engine-5.9.1.jar.sha1 | 1 + .../junit-jupiter-params-5.9.1.jar.sha1 | 1 + .../junit-platform-commons-1.9.1.jar.sha1 | 1 + .../junit-platform-engine-1.9.1.jar.sha1 | 1 + solr/licenses/opentest4j-1.2.0.jar.sha1 | 1 + solr/licenses/opentest4j-LICENSE-ASL.txt | 201 ++++++++++++++++++ solr/licenses/opentest4j-NOTICE.txt | 13 ++ versions.lock | 57 ++--- versions.props | 2 +- 41 files changed, 269 insertions(+), 41 deletions(-) delete mode 100644 solr/licenses/javassist-3.25.0-GA.jar.sha1 create mode 100644 solr/licenses/javassist-3.29.0-GA.jar.sha1 delete mode 100644 solr/licenses/jersey-client-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-client-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-common-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-common-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-container-grizzly2-http-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-container-grizzly2-servlet-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-container-jetty-http-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-container-jetty-http-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-container-servlet-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-container-servlet-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-container-servlet-core-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-entity-filtering-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-hk2-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-hk2-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-media-jaxb-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-media-json-jackson-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-server-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-server-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-test-framework-core-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1 delete mode 100644 solr/licenses/jersey-test-framework-provider-grizzly2-2.35.jar.sha1 create mode 100644 solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1 create mode 100644 solr/licenses/junit-jupiter-5.9.1.jar.sha1 create mode 100644 solr/licenses/junit-jupiter-api-5.9.1.jar.sha1 create mode 100644 solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1 create mode 100644 solr/licenses/junit-jupiter-params-5.9.1.jar.sha1 create mode 100644 solr/licenses/junit-platform-commons-1.9.1.jar.sha1 create mode 100644 solr/licenses/junit-platform-engine-1.9.1.jar.sha1 create mode 100644 solr/licenses/opentest4j-1.2.0.jar.sha1 create mode 100644 solr/licenses/opentest4j-LICENSE-ASL.txt create mode 100644 solr/licenses/opentest4j-NOTICE.txt diff --git a/solr/licenses/javassist-3.25.0-GA.jar.sha1 b/solr/licenses/javassist-3.25.0-GA.jar.sha1 deleted file mode 100644 index 26c87b892ee..00000000000 --- a/solr/licenses/javassist-3.25.0-GA.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -442dc1f9fd520130bd18da938622f4f9b2e5fba3 diff --git a/solr/licenses/javassist-3.29.0-GA.jar.sha1 b/solr/licenses/javassist-3.29.0-GA.jar.sha1 new file mode 100644 index 00000000000..fc0df45f52f --- /dev/null +++ b/solr/licenses/javassist-3.29.0-GA.jar.sha1 @@ -0,0 +1 @@ +d3959fa7e00bf04dbe519228a23213d2afb625d8 diff --git a/solr/licenses/jersey-client-2.35.jar.sha1 b/solr/licenses/jersey-client-2.35.jar.sha1 deleted file mode 100644 index 32c2fe8ba1e..00000000000 --- a/solr/licenses/jersey-client-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ea92be0dd34d0b298930a7514e715783f4eaba97 diff --git a/solr/licenses/jersey-client-2.39.1.jar.sha1 b/solr/licenses/jersey-client-2.39.1.jar.sha1 new file mode 100644 index 00000000000..00277c9f7d1 --- /dev/null +++ b/solr/licenses/jersey-client-2.39.1.jar.sha1 @@ -0,0 +1 @@ +2b1187bf77721c050bf68829918a1b3cd8be904e diff --git a/solr/licenses/jersey-common-2.35.jar.sha1 b/solr/licenses/jersey-common-2.35.jar.sha1 deleted file mode 100644 index 4209b8b2e4e..00000000000 --- a/solr/licenses/jersey-common-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2f15ec1b3a3598d6b12d4b0c6ff6f0905f5e5b4c diff --git a/solr/licenses/jersey-common-2.39.1.jar.sha1 b/solr/licenses/jersey-common-2.39.1.jar.sha1 new file mode 100644 index 00000000000..07ad665cf97 --- /dev/null +++ b/solr/licenses/jersey-common-2.39.1.jar.sha1 @@ -0,0 +1 @@ +39198bdead74896267646795a7e4b1d86c10e039 diff --git a/solr/licenses/jersey-container-grizzly2-http-2.35.jar.sha1 b/solr/licenses/jersey-container-grizzly2-http-2.35.jar.sha1 deleted file mode 100644 index 5d5c4e8dd53..00000000000 --- a/solr/licenses/jersey-container-grizzly2-http-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4d92badfba931ffd878c0101a7f7178c5dd22a9a diff --git a/solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1 b/solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1 new file mode 100644 index 00000000000..d8007f1b7e5 --- /dev/null +++ b/solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1 @@ -0,0 +1 @@ +b6575a1bd698708332765c71d0c241823ec4fee0 diff --git a/solr/licenses/jersey-container-grizzly2-servlet-2.35.jar.sha1 b/solr/licenses/jersey-container-grizzly2-servlet-2.35.jar.sha1 deleted file mode 100644 index 3493de1f8c5..00000000000 --- a/solr/licenses/jersey-container-grizzly2-servlet-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7a28778963eb317ace1858e3d76bac70b8defe45 diff --git a/solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1 b/solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1 new file mode 100644 index 00000000000..ad83808cf8a --- /dev/null +++ b/solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1 @@ -0,0 +1 @@ +a61d090ed1e7b0c93e905f0826c9eda40bab8717 diff --git a/solr/licenses/jersey-container-jetty-http-2.35.jar.sha1 b/solr/licenses/jersey-container-jetty-http-2.35.jar.sha1 deleted file mode 100644 index 056f05adfb3..00000000000 --- a/solr/licenses/jersey-container-jetty-http-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f9d90b34746e47ada8be42295e1cc51484b5f461 diff --git a/solr/licenses/jersey-container-jetty-http-2.39.1.jar.sha1 b/solr/licenses/jersey-container-jetty-http-2.39.1.jar.sha1 new file mode 100644 index 00000000000..7b88cb1acff --- /dev/null +++ b/solr/licenses/jersey-container-jetty-http-2.39.1.jar.sha1 @@ -0,0 +1 @@ +24bf9bf446f1899b35e7e70c930951f3f70453e4 diff --git a/solr/licenses/jersey-container-servlet-2.35.jar.sha1 b/solr/licenses/jersey-container-servlet-2.35.jar.sha1 deleted file mode 100644 index a8a8f6d4139..00000000000 --- a/solr/licenses/jersey-container-servlet-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -898ef84b72e75788811dd709fe7c7051f61a943e diff --git a/solr/licenses/jersey-container-servlet-2.39.1.jar.sha1 b/solr/licenses/jersey-container-servlet-2.39.1.jar.sha1 new file mode 100644 index 00000000000..228a887c300 --- /dev/null +++ b/solr/licenses/jersey-container-servlet-2.39.1.jar.sha1 @@ -0,0 +1 @@ +333caae8d3581430e6251e57182af1141a72df82 diff --git a/solr/licenses/jersey-container-servlet-core-2.35.jar.sha1 b/solr/licenses/jersey-container-servlet-core-2.35.jar.sha1 deleted file mode 100644 index 52d7651efdd..00000000000 --- a/solr/licenses/jersey-container-servlet-core-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7cc48f2529b921f25a020c821dde23753f6e60bb diff --git a/solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1 b/solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1 new file mode 100644 index 00000000000..2ea9ba15fc0 --- /dev/null +++ b/solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1 @@ -0,0 +1 @@ +2270e8c8b3553fb4b3ac132212642c58f16488f9 diff --git a/solr/licenses/jersey-entity-filtering-2.35.jar.sha1 b/solr/licenses/jersey-entity-filtering-2.35.jar.sha1 deleted file mode 100644 index 4ff86887191..00000000000 --- a/solr/licenses/jersey-entity-filtering-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2fbe9e89f6597e10976d1431dde64b282a761aeb diff --git a/solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1 b/solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1 new file mode 100644 index 00000000000..f5517b54d3a --- /dev/null +++ b/solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1 @@ -0,0 +1 @@ +d6cabcbea3885de33e1b0c96ba02752d92884ea4 diff --git a/solr/licenses/jersey-hk2-2.35.jar.sha1 b/solr/licenses/jersey-hk2-2.35.jar.sha1 deleted file mode 100644 index 979fe69fc16..00000000000 --- a/solr/licenses/jersey-hk2-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2be6d2227081028566e8e2b0fc6a1abbaecf56f7 diff --git a/solr/licenses/jersey-hk2-2.39.1.jar.sha1 b/solr/licenses/jersey-hk2-2.39.1.jar.sha1 new file mode 100644 index 00000000000..238b6ba9232 --- /dev/null +++ b/solr/licenses/jersey-hk2-2.39.1.jar.sha1 @@ -0,0 +1 @@ +992005ae2e8ec3b215b2daa788c09eb902ef814b diff --git a/solr/licenses/jersey-media-jaxb-2.35.jar.sha1 b/solr/licenses/jersey-media-jaxb-2.35.jar.sha1 deleted file mode 100644 index 6e52afe8c6d..00000000000 --- a/solr/licenses/jersey-media-jaxb-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -06580e05acec50cc2f7c300d9e59925122fc3a0c diff --git a/solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1 b/solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1 new file mode 100644 index 00000000000..6c5eac2da7c --- /dev/null +++ b/solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1 @@ -0,0 +1 @@ +8285a8c287866e22c06f42ba3ae4170ff931be18 diff --git a/solr/licenses/jersey-media-json-jackson-2.35.jar.sha1 b/solr/licenses/jersey-media-json-jackson-2.35.jar.sha1 deleted file mode 100644 index c547eb7dc09..00000000000 --- a/solr/licenses/jersey-media-json-jackson-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6383927e15ecb4baeef2cf0d3373b1ff1795c062 diff --git a/solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1 b/solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1 new file mode 100644 index 00000000000..ec34674ec6d --- /dev/null +++ b/solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1 @@ -0,0 +1 @@ +3520363b7ac30d97ece9a6ae188c0d343cbad691 diff --git a/solr/licenses/jersey-server-2.35.jar.sha1 b/solr/licenses/jersey-server-2.35.jar.sha1 deleted file mode 100644 index 8ed257c297f..00000000000 --- a/solr/licenses/jersey-server-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c6efc2ee82d2550e6385a7f7b1c08651f71afb7a diff --git a/solr/licenses/jersey-server-2.39.1.jar.sha1 b/solr/licenses/jersey-server-2.39.1.jar.sha1 new file mode 100644 index 00000000000..ab9b47e3450 --- /dev/null +++ b/solr/licenses/jersey-server-2.39.1.jar.sha1 @@ -0,0 +1 @@ +62324128215827bd646ddaac8f26cb2bdfe8e999 diff --git a/solr/licenses/jersey-test-framework-core-2.35.jar.sha1 b/solr/licenses/jersey-test-framework-core-2.35.jar.sha1 deleted file mode 100644 index 0f4e2b12651..00000000000 --- a/solr/licenses/jersey-test-framework-core-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ec314b4c0902cef2b797f8be932e80da2af90c10 diff --git a/solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1 b/solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1 new file mode 100644 index 00000000000..ef71f9a1a63 --- /dev/null +++ b/solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1 @@ -0,0 +1 @@ +f42fd388041b5afe9284fae7b368bf1ac0e30caf diff --git a/solr/licenses/jersey-test-framework-provider-grizzly2-2.35.jar.sha1 b/solr/licenses/jersey-test-framework-provider-grizzly2-2.35.jar.sha1 deleted file mode 100644 index 22efa71f64f..00000000000 --- a/solr/licenses/jersey-test-framework-provider-grizzly2-2.35.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e181f98bb40784961ce6fbcecf7529f4a452bda3 diff --git a/solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1 b/solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1 new file mode 100644 index 00000000000..968fbaf41e2 --- /dev/null +++ b/solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1 @@ -0,0 +1 @@ +fcf8d4c4be70ae6cfb5a95fe67686267f39de1de diff --git a/solr/licenses/junit-jupiter-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-5.9.1.jar.sha1 new file mode 100644 index 00000000000..08e99f5789e --- /dev/null +++ b/solr/licenses/junit-jupiter-5.9.1.jar.sha1 @@ -0,0 +1 @@ +9274d3757e224bc02eae367bd481062a263c150b diff --git a/solr/licenses/junit-jupiter-api-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-api-5.9.1.jar.sha1 new file mode 100644 index 00000000000..7735f632280 --- /dev/null +++ b/solr/licenses/junit-jupiter-api-5.9.1.jar.sha1 @@ -0,0 +1 @@ +7bb53fbc0173e9f6a9d21d58297af94b1f2f9ce1 diff --git a/solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1 new file mode 100644 index 00000000000..f4d83b9a976 --- /dev/null +++ b/solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1 @@ -0,0 +1 @@ +1bf771097bde296c3ab174861954e8aafaaf2e94 diff --git a/solr/licenses/junit-jupiter-params-5.9.1.jar.sha1 b/solr/licenses/junit-jupiter-params-5.9.1.jar.sha1 new file mode 100644 index 00000000000..c2bcc47b3c9 --- /dev/null +++ b/solr/licenses/junit-jupiter-params-5.9.1.jar.sha1 @@ -0,0 +1 @@ +ffcd1013edaeee112be11fcddeb38882d79238de diff --git a/solr/licenses/junit-platform-commons-1.9.1.jar.sha1 b/solr/licenses/junit-platform-commons-1.9.1.jar.sha1 new file mode 100644 index 00000000000..b2c2116cf63 --- /dev/null +++ b/solr/licenses/junit-platform-commons-1.9.1.jar.sha1 @@ -0,0 +1 @@ +3145f821b5cd10abcdc5f925baa5fffa6f1b628f diff --git a/solr/licenses/junit-platform-engine-1.9.1.jar.sha1 b/solr/licenses/junit-platform-engine-1.9.1.jar.sha1 new file mode 100644 index 00000000000..b927d3730e8 --- /dev/null +++ b/solr/licenses/junit-platform-engine-1.9.1.jar.sha1 @@ -0,0 +1 @@ +83591e5089d6cea5f324aa3ecca9b19d5a275803 diff --git a/solr/licenses/opentest4j-1.2.0.jar.sha1 b/solr/licenses/opentest4j-1.2.0.jar.sha1 new file mode 100644 index 00000000000..1d8cede8888 --- /dev/null +++ b/solr/licenses/opentest4j-1.2.0.jar.sha1 @@ -0,0 +1 @@ +28c11eb91f9b6d8e200631d46e20a7f407f2a046 diff --git a/solr/licenses/opentest4j-LICENSE-ASL.txt b/solr/licenses/opentest4j-LICENSE-ASL.txt new file mode 100644 index 00000000000..8dada3edaf5 --- /dev/null +++ b/solr/licenses/opentest4j-LICENSE-ASL.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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 + + http://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. diff --git a/solr/licenses/opentest4j-NOTICE.txt b/solr/licenses/opentest4j-NOTICE.txt new file mode 100644 index 00000000000..c84bc566aa3 --- /dev/null +++ b/solr/licenses/opentest4j-NOTICE.txt @@ -0,0 +1,13 @@ +Copyright 2015-2023 the original author or authors. + +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 + + http://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. \ No newline at end of file diff --git a/versions.lock b/versions.lock index f3b7fda9835..89aeb26dba5 100644 --- a/versions.lock +++ b/versions.lock @@ -7,12 +7,12 @@ com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.8.1 (2 constraints com.cybozu.labs:langdetect:1.1-20120112 (1 constraints: 5c066d5e) com.epam:parso:2.0.14 (1 constraints: 8e0c750e) com.fasterxml.jackson:jackson-bom:2.15.2 (12 constraints: 4ef8ad55) -com.fasterxml.jackson.core:jackson-annotations:2.15.2 (10 constraints: 9bbe6817) +com.fasterxml.jackson.core:jackson-annotations:2.15.2 (10 constraints: 9cbe6d17) com.fasterxml.jackson.core:jackson-core:2.15.2 (13 constraints: 42026028) -com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 8c63028e) +com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 8d63878e) com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2 (2 constraints: 631c9af1) com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2 (1 constraints: ba0eab66) -com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.15.2 (2 constraints: a624c5e0) +com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.15.2 (2 constraints: a724cae0) com.fasterxml.woodstox:woodstox-core:6.5.1 (2 constraints: a0239c84) com.github.ben-manes.caffeine:caffeine:3.1.8 (1 constraints: 0e050536) com.github.jai-imageio:jai-imageio-core:1.4.0 (1 constraints: 5c0ced01) @@ -149,14 +149,14 @@ io.prometheus:simpleclient_common:0.16.0 (1 constraints: 1a1139c0) io.prometheus:simpleclient_httpserver:0.16.0 (1 constraints: 3905353b) io.sgr:s2-geometry-library-java:1.0.0 (1 constraints: b0107fb9) io.swagger.core.v3:swagger-annotations:2.2.16 (1 constraints: 3d05393b) -jakarta.activation:jakarta.activation-api:1.2.2 (2 constraints: bb282bbe) +jakarta.activation:jakarta.activation-api:1.2.2 (1 constraints: 8e0f4791) jakarta.annotation:jakarta.annotation-api:1.3.5 (4 constraints: d740f9a9) jakarta.validation:jakarta.validation-api:2.0.2 (1 constraints: fd10b6c3) jakarta.ws.rs:jakarta.ws.rs-api:2.1.6 (10 constraints: c1cce3ec) jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 (5 constraints: c45d665e) javax.measure:unit-api:1.0 (5 constraints: 8e3e2cc5) joda-time:joda-time:2.8.1 (3 constraints: d61aef93) -junit:junit:4.13.2 (9 constraints: d5aafc9f) +junit:junit:4.13.2 (7 constraints: 136d2cb8) net.arnx:jsonic:1.2.7 (1 constraints: d00b47eb) net.java.dev.jna:jna:5.12.1 (1 constraints: 900c8e0e) net.sf.ehcache:ehcache-core:2.6.2 (1 constraints: 2706f94d) @@ -286,10 +286,10 @@ org.eclipse.jetty:jetty-io:10.0.16 (9 constraints: be7da0e9) org.eclipse.jetty:jetty-jmx:10.0.16 (1 constraints: 6a059240) org.eclipse.jetty:jetty-rewrite:10.0.16 (1 constraints: 6a059240) org.eclipse.jetty:jetty-security:10.0.16 (2 constraints: be134779) -org.eclipse.jetty:jetty-server:10.0.16 (7 constraints: d86dbc27) +org.eclipse.jetty:jetty-server:10.0.16 (7 constraints: e46d1928) org.eclipse.jetty:jetty-servlet:10.0.16 (2 constraints: 38137261) org.eclipse.jetty:jetty-servlets:10.0.16 (1 constraints: 6a059240) -org.eclipse.jetty:jetty-util:10.0.16 (9 constraints: ad819898) +org.eclipse.jetty:jetty-util:10.0.16 (9 constraints: b981f598) org.eclipse.jetty:jetty-webapp:10.0.16 (2 constraints: 4613fa61) org.eclipse.jetty:jetty-xml:10.0.16 (3 constraints: 142134bb) org.eclipse.jetty.http2:http2-client:10.0.16 (2 constraints: 211bd36e) @@ -308,18 +308,18 @@ org.glassfish.hk2.external:aopalliance-repackaged:2.6.1 (2 constraints: 21173277 org.glassfish.hk2.external:jakarta.inject:2.6.1 (11 constraints: 2cbae60f) org.glassfish.jaxb:jaxb-runtime:2.3.8 (2 constraints: 23175d5b) org.glassfish.jaxb:txw2:2.3.8 (1 constraints: c20dba35) -org.glassfish.jersey.containers:jersey-container-jetty-http:2.35 (1 constraints: de04fe30) -org.glassfish.jersey.core:jersey-client:2.35 (1 constraints: d510c6b2) -org.glassfish.jersey.core:jersey-common:2.35 (11 constraints: d3ddca6a) -org.glassfish.jersey.core:jersey-server:2.35 (7 constraints: 169eb83e) -org.glassfish.jersey.ext:jersey-entity-filtering:2.35 (1 constraints: 92156fbd) -org.glassfish.jersey.inject:jersey-hk2:2.35 (1 constraints: de04fe30) -org.glassfish.jersey.media:jersey-media-json-jackson:2.35 (1 constraints: de04fe30) -org.hamcrest:hamcrest:2.2 (3 constraints: 7620ce25) +org.glassfish.jersey.containers:jersey-container-jetty-http:2.39.1 (1 constraints: 4105533b) +org.glassfish.jersey.core:jersey-client:2.39.1 (1 constraints: 381109d5) +org.glassfish.jersey.core:jersey-common:2.39.1 (11 constraints: 14e24daa) +org.glassfish.jersey.core:jersey-server:2.39.1 (7 constraints: cba0adfa) +org.glassfish.jersey.ext:jersey-entity-filtering:2.39.1 (1 constraints: f5152ce9) +org.glassfish.jersey.inject:jersey-hk2:2.39.1 (1 constraints: 4105533b) +org.glassfish.jersey.media:jersey-media-json-jackson:2.39.1 (1 constraints: 4105533b) +org.hamcrest:hamcrest:2.2 (5 constraints: 125db3af) org.hamcrest:hamcrest-core:2.2 (1 constraints: cc05fe3f) org.immutables:value-annotations:2.9.3 (1 constraints: 10051336) org.itadaki:bzip2:0.9.1 (2 constraints: bd0c4b2c) -org.javassist:javassist:3.25.0-GA (1 constraints: 2a110ef1) +org.javassist:javassist:3.29.0-GA (1 constraints: 2e1126f1) org.jctools:jctools-core:4.0.1 (1 constraints: 07050036) org.jdom:jdom2:2.0.6.1 (1 constraints: be0c371b) org.jetbrains:annotations:13.0 (1 constraints: df0e795c) @@ -327,7 +327,7 @@ org.jetbrains.kotlin:kotlin-stdlib:1.8.22 (5 constraints: 7a4c42d2) org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 (3 constraints: 3a2cc871) org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 (1 constraints: b01019c2) org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 (4 constraints: dd389ae5) -org.junit:junit-bom:5.9.1 (1 constraints: c8116ede) +org.junit:junit-bom:5.9.1 (7 constraints: 1974131b) org.locationtech.jts:jts-core:1.19.0 (2 constraints: a31de760) org.locationtech.jts.io:jts-io-common:1.19.0 (1 constraints: 930d513a) org.locationtech.proj4j:proj4j:1.2.2 (1 constraints: 5d0daf2c) @@ -402,7 +402,7 @@ io.github.microutils:kotlin-logging:3.0.5 (1 constraints: be0ea162) io.github.microutils:kotlin-logging-jvm:3.0.5 (1 constraints: 810f8b7c) io.micrometer:micrometer-core:1.9.12 (1 constraints: fe162919) io.opentelemetry:opentelemetry-sdk-testing:1.30.1 (1 constraints: 920fe383) -jakarta.servlet:jakarta.servlet-api:4.0.4 (4 constraints: 586e1f6a) +jakarta.servlet:jakarta.servlet-api:4.0.4 (4 constraints: 5b6ed66b) jakarta.websocket:jakarta.websocket-api:1.1.2 (1 constraints: 92155ab9) javax.inject:javax.inject:1 (1 constraints: 7a0df617) net.bytebuddy:byte-buddy:1.14.6 (1 constraints: 460b44de) @@ -424,20 +424,27 @@ org.glassfish.grizzly:grizzly-framework:2.4.4 (1 constraints: 670fe271) org.glassfish.grizzly:grizzly-http:2.4.4 (1 constraints: 2b127cf5) org.glassfish.grizzly:grizzly-http-server:2.4.4 (2 constraints: bb2c391b) org.glassfish.grizzly:grizzly-http-servlet:2.4.4 (1 constraints: 681bda3f) -org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.35 (2 constraints: 623ed2c2) -org.glassfish.jersey.containers:jersey-container-grizzly2-servlet:2.35 (1 constraints: 292310ba) -org.glassfish.jersey.containers:jersey-container-servlet:2.35 (1 constraints: 3a1b7724) -org.glassfish.jersey.containers:jersey-container-servlet-core:2.35 (2 constraints: a031bd78) -org.glassfish.jersey.media:jersey-media-jaxb:2.35 (1 constraints: e11958ca) -org.glassfish.jersey.test-framework:jersey-test-framework-core:2.35 (2 constraints: 062875af) -org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.35 (1 constraints: de04fe30) +org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.39.1 (2 constraints: 283f089c) +org.glassfish.jersey.containers:jersey-container-grizzly2-servlet:2.39.1 (1 constraints: 8c230a01) +org.glassfish.jersey.containers:jersey-container-servlet:2.39.1 (1 constraints: 9d1b845b) +org.glassfish.jersey.containers:jersey-container-servlet-core:2.39.1 (2 constraints: 66329628) +org.glassfish.jersey.media:jersey-media-jaxb:2.39.1 (1 constraints: 441ab3fe) +org.glassfish.jersey.test-framework:jersey-test-framework-core:2.39.1 (2 constraints: cc283b2f) +org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.39.1 (1 constraints: 4105533b) org.hdrhistogram:HdrHistogram:2.1.12 (1 constraints: 520d2029) org.hsqldb:hsqldb:2.7.2 (1 constraints: 0d050c36) org.jetbrains.kotlin:kotlin-reflect:1.8.22 (2 constraints: 6724ece2) +org.junit.jupiter:junit-jupiter:5.9.1 (3 constraints: 844699a3) +org.junit.jupiter:junit-jupiter-api:5.9.1 (4 constraints: 8b386434) +org.junit.jupiter:junit-jupiter-engine:5.9.1 (2 constraints: 2117d63c) +org.junit.jupiter:junit-jupiter-params:5.9.1 (2 constraints: 2117d63c) +org.junit.platform:junit-platform-commons:1.9.1 (3 constraints: ee29f32b) +org.junit.platform:junit-platform-engine:1.9.1 (2 constraints: bc19e1f3) org.latencyutils:LatencyUtils:2.0.3 (1 constraints: 210dcd1b) org.mockito:mockito-core:5.5.0 (2 constraints: d61174fd) org.mockito:mockito-subclass:5.5.0 (1 constraints: 0c051336) org.objenesis:objenesis:3.3 (1 constraints: b20a14bd) +org.opentest4j:opentest4j:1.2.0 (2 constraints: cd205b49) org.springframework:spring-aop:5.3.28 (2 constraints: de1e8f9a) org.springframework:spring-beans:5.3.28 (4 constraints: b03ac3c9) org.springframework:spring-context:5.3.28 (2 constraints: 6f1fced2) diff --git a/versions.props b/versions.props index 20fb9924ae3..4ced9981429 100644 --- a/versions.props +++ b/versions.props @@ -57,7 +57,7 @@ org.codehaus.woodstox:stax2-api=4.2.1 org.eclipse.jetty*:*=10.0.16 org.eclipse.jetty.toolchain:jetty-servlet-api=4.0.6 org.glassfish.hk2*:*=2.6.1 -org.glassfish.jersey*:*=2.35 +org.glassfish.jersey*:*=2.39.1 org.hamcrest:*=2.2 org.hsqldb:hsqldb=2.7.2 org.immutables:value-annotations=2.9.3 From 90bf56c1d69bedb25569d733318fd1987f5b1403 Mon Sep 17 00:00:00 2001 From: Alex Deparvu Date: Tue, 3 Oct 2023 10:54:34 -0700 Subject: [PATCH 14/29] Add next minor version 9.5.0 --- solr/CHANGES.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index d9e18452386..bc1564fc028 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -65,6 +65,31 @@ Other Changes * SOLR-16911: Establish /solr as the only host context supported by Solr, removing legacy ability to change this. Solr paths will only be either /solr or /api now. (Eric Pugh) +================== 9.5.0 ================== +New Features +--------------------- +(No changes) + +Improvements +--------------------- +(No changes) + +Optimizations +--------------------- +(No changes) + +Bug Fixes +--------------------- +(No changes) + +Dependency Upgrades +--------------------- +(No changes) + +Other Changes +--------------------- +(No changes) + ================== 9.4.0 ================== New Features --------------------- From fe55f7cd2465176105146b0ad5b9e39269c60bde Mon Sep 17 00:00:00 2001 From: Jason Gerlowski Date: Tue, 3 Oct 2023 14:38:47 -0400 Subject: [PATCH 15/29] SOLR-16825: Migrate v2 definitions to 'api' module, pt 4 (#1960) This commit covers the create APIs for collections, shards and replicas. It also covers the collection and core level "install-shard-data" APIs. Extracting annotated interfaces for these APIs includes them in the SolrRequest- generation we now do in SolrJ --- .../api/endpoint/CreateCollectionApi.java | 34 ++ .../client/api/endpoint/CreateReplicaApi.java | 44 +++ .../client/api/endpoint/CreateShardApi.java | 37 +++ .../api/endpoint/InstallCoreDataApi.java | 42 +++ .../api/endpoint/InstallShardDataApi.java | 38 +++ .../model/CreateCollectionRequestBody.java | 63 ++++ .../CreateCollectionRouterProperties.java | 25 ++ .../api/model/CreateReplicaRequestBody.java | 48 +++ .../api/model/CreateShardRequestBody.java | 50 +++ .../api/model/InstallCoreDataRequestBody.java | 30 ++ .../model/InstallShardDataRequestBody.java | 28 ++ .../solr/cloud/api/collections/AliasCmd.java | 9 +- .../handler/admin/CollectionsHandler.java | 37 ++- .../solr/handler/admin/CoreAdminHandler.java | 4 +- .../solr/handler/admin/InstallCoreDataOp.java | 12 +- .../handler/admin/api/CreateAliasAPI.java | 12 +- ...llectionAPI.java => CreateCollection.java} | 303 +++++++----------- ...eateReplicaAPI.java => CreateReplica.java} | 108 ++----- .../{CreateShardAPI.java => CreateShard.java} | 113 ++----- ...lCoreDataAPI.java => InstallCoreData.java} | 41 +-- ...hardDataAPI.java => InstallShardData.java} | 45 +-- .../admin/api/RestoreCollectionAPI.java | 11 +- .../solr/jersey/PostRequestLoggingFilter.java | 27 +- .../handler/admin/api/CreateAliasAPITest.java | 15 +- .../admin/api/CreateCollectionAPITest.java | 34 +- .../admin/api/CreateReplicaAPITest.java | 23 +- .../handler/admin/api/CreateShardAPITest.java | 27 +- .../admin/api/RestoreCollectionAPITest.java | 3 +- .../jersey/PostRequestLoggingFilterTest.java | 6 +- .../apache/solr/gcs/GCSInstallShardTest.java | 3 +- .../apache/solr/s3/S3InstallShardTest.java | 3 +- .../src/resources/java-template/api.mustache | 19 +- .../collections/AbstractInstallShardTest.java | 3 +- 33 files changed, 778 insertions(+), 519 deletions(-) create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRouterProperties.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/CreateReplicaRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/CreateShardRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/InstallCoreDataRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/InstallShardDataRequestBody.java rename solr/core/src/java/org/apache/solr/handler/admin/api/{CreateCollectionAPI.java => CreateCollection.java} (62%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{CreateReplicaAPI.java => CreateReplica.java} (65%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{CreateShardAPI.java => CreateShard.java} (69%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{InstallCoreDataAPI.java => InstallCoreData.java} (73%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{InstallShardDataAPI.java => InstallShardData.java} (78%) diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java new file mode 100644 index 00000000000..748b27972e6 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateCollectionApi.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; +import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; + +/** V2 API definition for creating a SolrCloud collection */ +@Path("/collections") +public interface CreateCollectionApi { + @POST + @Operation( + summary = "Creates a new SolrCloud collection.", + tags = {"collections"}) + SubResponseAccumulatingJerseyResponse createCollection(CreateCollectionRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java new file mode 100644 index 00000000000..21c26ea8f49 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateReplicaApi.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.CreateReplicaRequestBody; +import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; + +/** + * V2 API definition for adding a new replica to an existing shard. + * + *

This API (POST /v2/collections/cName/shards/sName/replicas {...}) is analogous to the v1 + * /admin/collections?action=ADDREPLICA command. + */ +@Path("/collections/{collectionName}/shards/{shardName}/replicas") +public interface CreateReplicaApi { + + @POST + @Operation( + summary = "Creates a new replica of an existing shard.", + tags = {"replicas"}) + SubResponseAccumulatingJerseyResponse createReplica( + @PathParam("collectionName") String collectionName, + @PathParam("shardName") String shardName, + CreateReplicaRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java new file mode 100644 index 00000000000..0bd30763811 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CreateShardApi.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.CreateShardRequestBody; +import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; + +/** V2 API definition for creating a new shard in a collection. */ +@Path("/collections/{collectionName}/shards") +public interface CreateShardApi { + + @POST + @Operation( + summary = "Create a new shard in an existing collection", + tags = {"shards"}) + SubResponseAccumulatingJerseyResponse createShard( + @PathParam("collectionName") String collectionName, CreateShardRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java new file mode 100644 index 00000000000..4ee95539571 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallCoreDataApi.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.InstallCoreDataRequestBody; +import org.apache.solr.client.api.model.SolrJerseyResponse; + +/** + * V2 API definition for installing an offline index to a single core of a shard. + * + *

This is an internal API intended for use only by the Collection Admin "Install Shard Data" + * API. + */ +@Path("/cores/{coreName}/install") +public interface InstallCoreDataApi { + + @POST + @Operation( + summary = "Install an offline index to a specified core", + tags = {"cores"}) + SolrJerseyResponse installCoreData( + @PathParam("coreName") String coreName, InstallCoreDataRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java new file mode 100644 index 00000000000..65648ad9117 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/InstallShardDataApi.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.InstallShardDataRequestBody; +import org.apache.solr.client.api.model.SolrJerseyResponse; + +/** V2 API definition allowing users to import offline-constructed index into a shard. */ +@Path("/collections/{collName}/shards/{shardName}/install") +public interface InstallShardDataApi { + @POST + @Operation( + summary = "Install offline index into an existing shard", + tags = {"shards"}) + SolrJerseyResponse installShardData( + @PathParam("collName") String collName, + @PathParam("shardName") String shardName, + InstallShardDataRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRequestBody.java new file mode 100644 index 00000000000..5881708ee34 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRequestBody.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Map; + +/** Request body for v2 "create collection" requests */ +public class CreateCollectionRequestBody { + @JsonProperty public String name; + + @JsonProperty public Integer replicationFactor; + + @JsonProperty public String config; + + @JsonProperty public Integer numShards; + + @JsonProperty public List shardNames; + + @JsonProperty public Integer pullReplicas; + + @JsonProperty public Integer tlogReplicas; + + @JsonProperty public Integer nrtReplicas; + + @JsonProperty public Boolean waitForFinalState; + + @JsonProperty public Boolean perReplicaState; + + @JsonProperty public String alias; + + @JsonProperty public Map properties; + + @JsonProperty public String async; + + @JsonProperty public CreateCollectionRouterProperties router; + + // Parameters below differ from v1 API + // V1 API uses createNodeSet + @JsonProperty("nodeSet") + public List nodeSet; + // v1 API uses createNodeSet=EMPTY + @JsonProperty("createReplicas") + public Boolean createReplicas; + // V1 API uses 'createNodeSet.shuffle' + @JsonProperty("shuffleNodes") + public Boolean shuffleNodes; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRouterProperties.java b/solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRouterProperties.java new file mode 100644 index 00000000000..382091ee60c --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/CreateCollectionRouterProperties.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class CreateCollectionRouterProperties { + @JsonProperty public String name; + + @JsonProperty public String field; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/CreateReplicaRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/CreateReplicaRequestBody.java new file mode 100644 index 00000000000..a669cdaf414 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/CreateReplicaRequestBody.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Map; + +public class CreateReplicaRequestBody { + @JsonProperty public String name; + @JsonProperty public String type; // TODO Make this an enum - see SOLR-15796 + @JsonProperty public String instanceDir; + @JsonProperty public String dataDir; + @JsonProperty public String ulogDir; + @JsonProperty public String route; + @JsonProperty public Integer nrtReplicas; + @JsonProperty public Integer tlogReplicas; + @JsonProperty public Integer pullReplicas; + @JsonProperty public Boolean waitForFinalState; + @JsonProperty public Boolean followAliases; + + @JsonProperty public String async; + + // TODO This cluster of properties could probably be simplified down to just "nodeSet". See + // SOLR-15542 + @JsonProperty public String node; + + @JsonProperty("nodeSet") + public List nodeSet; + + @JsonProperty public Boolean skipNodeAssignment; + + @JsonProperty public Map properties; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/CreateShardRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/CreateShardRequestBody.java new file mode 100644 index 00000000000..ea871998cca --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/CreateShardRequestBody.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; +import java.util.Map; + +public class CreateShardRequestBody { + @Schema(name = "shardName") + @JsonProperty("name") + public String shardName; + + @JsonProperty public Integer replicationFactor; + + @JsonProperty public Integer nrtReplicas; + + @JsonProperty public Integer tlogReplicas; + + @JsonProperty public Integer pullReplicas; + + @JsonProperty("createReplicas") + public Boolean createReplicas; + + @JsonProperty("nodeSet") + public List nodeSet; + + @JsonProperty public Boolean waitForFinalState; + + @JsonProperty public Boolean followAliases; + + @JsonProperty public String async; + + @JsonProperty public Map properties; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/InstallCoreDataRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/InstallCoreDataRequestBody.java new file mode 100644 index 00000000000..2ba9d09c1f6 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/InstallCoreDataRequestBody.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class InstallCoreDataRequestBody { + // Expected to point to an index directory (e.g. data/techproducts_shard1_replica_n1/data/index) + // for a single core that has previously been uploaded to the backup repository previously + // uploaded to the backup repository. + @JsonProperty public String location; + + @JsonProperty public String repository; + + @JsonProperty public String asyncId; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/InstallShardDataRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/InstallShardDataRequestBody.java new file mode 100644 index 00000000000..31bec8eb434 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/InstallShardDataRequestBody.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class InstallShardDataRequestBody { + @JsonProperty(value = "location", required = true) + public String location; + + @JsonProperty public String repository; + + @JsonProperty public String async; +} diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/AliasCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/AliasCmd.java index 92b18b53a74..4815a76b807 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/AliasCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/AliasCmd.java @@ -31,7 +31,7 @@ import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.util.NamedList; import org.apache.solr.handler.admin.CollectionsHandler; -import org.apache.solr.handler.admin.api.CreateCollectionAPI; +import org.apache.solr.handler.admin.api.CreateCollection; /** * Common superclass for commands that maintain or manipulate aliases. In the routed alias parlance, @@ -73,10 +73,9 @@ static NamedList createCollectionAndWait( // a CollectionOperation reads params and produces a message (Map) that is supposed to be sent // to the Overseer. Although we could create the Map without it, there are a fair amount of // rules we don't want to reproduce. - final var createReqBody = - CreateCollectionAPI.CreateCollectionRequestBody.fromV1Params(createReqParams, true); - CreateCollectionAPI.populateDefaultsIfNecessary(ccc.getCoreContainer(), createReqBody); - final ZkNodeProps createMessage = CreateCollectionAPI.createRemoteMessage(createReqBody); + final var createReqBody = CreateCollection.createRequestBodyFromV1Params(createReqParams, true); + CreateCollection.populateDefaultsIfNecessary(ccc.getCoreContainer(), createReqBody); + final ZkNodeProps createMessage = CreateCollection.createRemoteMessage(createReqBody); NamedList results = new NamedList<>(); try { diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java index 97de7a36bb3..d91f4e1914b 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java @@ -123,6 +123,7 @@ import org.apache.solr.api.Api; import org.apache.solr.api.JerseyResource; import org.apache.solr.client.api.model.AddReplicaPropertyRequestBody; +import org.apache.solr.client.api.model.InstallShardDataRequestBody; import org.apache.solr.client.api.model.ReplaceNodeRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.api.model.UpdateAliasPropertiesRequestBody; @@ -172,11 +173,11 @@ import org.apache.solr.handler.admin.api.CollectionPropertyAPI; import org.apache.solr.handler.admin.api.CollectionStatusAPI; import org.apache.solr.handler.admin.api.CreateAliasAPI; -import org.apache.solr.handler.admin.api.CreateCollectionAPI; +import org.apache.solr.handler.admin.api.CreateCollection; import org.apache.solr.handler.admin.api.CreateCollectionBackupAPI; import org.apache.solr.handler.admin.api.CreateCollectionSnapshotAPI; -import org.apache.solr.handler.admin.api.CreateReplicaAPI; -import org.apache.solr.handler.admin.api.CreateShardAPI; +import org.apache.solr.handler.admin.api.CreateReplica; +import org.apache.solr.handler.admin.api.CreateShard; import org.apache.solr.handler.admin.api.DeleteAlias; import org.apache.solr.handler.admin.api.DeleteCollection; import org.apache.solr.handler.admin.api.DeleteCollectionBackup; @@ -186,7 +187,7 @@ import org.apache.solr.handler.admin.api.DeleteReplicaProperty; import org.apache.solr.handler.admin.api.DeleteShardAPI; import org.apache.solr.handler.admin.api.ForceLeader; -import org.apache.solr.handler.admin.api.InstallShardDataAPI; +import org.apache.solr.handler.admin.api.InstallShardData; import org.apache.solr.handler.admin.api.ListAliases; import org.apache.solr.handler.admin.api.ListCollectionBackups; import org.apache.solr.handler.admin.api.ListCollectionSnapshotsAPI; @@ -507,9 +508,9 @@ public enum CollectionOperation implements CollectionOp { CREATE_OP( CREATE, (req, rsp, h) -> { - final CreateCollectionAPI.CreateCollectionRequestBody requestBody = - CreateCollectionAPI.CreateCollectionRequestBody.fromV1Params(req.getParams(), true); - final CreateCollectionAPI createApi = new CreateCollectionAPI(h.coreContainer, req, rsp); + final var requestBody = + CreateCollection.createRequestBodyFromV1Params(req.getParams(), true); + final CreateCollection createApi = new CreateCollection(h.coreContainer, req, rsp); final SolrJerseyResponse response = createApi.createCollection(requestBody); // 'rsp' may be null, as when overseer commands execute CollectionAction impl's directly. @@ -729,7 +730,7 @@ public enum CollectionOperation implements CollectionOp { CREATESHARD_OP( CREATESHARD, (req, rsp, h) -> { - CreateShardAPI.invokeFromV1Params(h.coreContainer, req, rsp); + CreateShard.invokeFromV1Params(h.coreContainer, req, rsp); return null; }), DELETEREPLICA_OP( @@ -942,9 +943,8 @@ public Map execute( final var params = req.getParams(); params.required().check(COLLECTION_PROP, SHARD_ID_PROP); - final var api = new CreateReplicaAPI(h.coreContainer, req, rsp); - final var requestBody = - CreateReplicaAPI.AddReplicaRequestBody.fromV1Params(req.getParams()); + final var api = new CreateReplica(h.coreContainer, req, rsp); + final var requestBody = CreateReplica.createRequestBodyFromV1Params(req.getParams()); final var response = api.createReplica( params.get(COLLECTION_PROP), params.get(SHARD_ID_PROP), requestBody); @@ -1081,13 +1081,12 @@ public Map execute( req.getParams().required().check(COLLECTION, SHARD); final String collectionName = req.getParams().get(COLLECTION); final String shardName = req.getParams().get(SHARD); - final InstallShardDataAPI.InstallShardRequestBody reqBody = - new InstallShardDataAPI.InstallShardRequestBody(); - reqBody.asyncId = req.getParams().get(ASYNC); + final InstallShardDataRequestBody reqBody = new InstallShardDataRequestBody(); + reqBody.async = req.getParams().get(ASYNC); reqBody.repository = req.getParams().get(BACKUP_REPOSITORY); reqBody.location = req.getParams().get(BACKUP_LOCATION); - final InstallShardDataAPI installApi = new InstallShardDataAPI(h.coreContainer, req, rsp); + final InstallShardData installApi = new InstallShardData(h.coreContainer, req, rsp); final SolrJerseyResponse installResponse = installApi.installShardData(collectionName, shardName, reqBody); V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp, installResponse); @@ -1362,13 +1361,13 @@ public Boolean registerV2() { @Override public Collection> getJerseyResources() { return List.of( - CreateReplicaAPI.class, + CreateReplica.class, AddReplicaProperty.class, BalanceShardUniqueAPI.class, CreateAliasAPI.class, - CreateCollectionAPI.class, + CreateCollection.class, CreateCollectionBackupAPI.class, - CreateShardAPI.class, + CreateShard.class, DeleteAlias.class, DeleteCollectionBackup.class, DeleteCollection.class, @@ -1376,7 +1375,7 @@ public Collection> getJerseyResources() { DeleteReplicaProperty.class, DeleteShardAPI.class, ForceLeader.class, - InstallShardDataAPI.class, + InstallShardData.class, ListCollections.class, ListCollectionBackups.class, ReloadCollectionAPI.class, diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java index d928282df5c..d9ece272f75 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java @@ -58,7 +58,7 @@ import org.apache.solr.handler.admin.api.BackupCoreAPI; import org.apache.solr.handler.admin.api.CoreSnapshotAPI; import org.apache.solr.handler.admin.api.CreateCoreAPI; -import org.apache.solr.handler.admin.api.InstallCoreDataAPI; +import org.apache.solr.handler.admin.api.InstallCoreData; import org.apache.solr.handler.admin.api.MergeIndexesAPI; import org.apache.solr.handler.admin.api.OverseerOperationAPI; import org.apache.solr.handler.admin.api.PrepareCoreRecoveryAPI; @@ -403,7 +403,7 @@ public Collection getApis() { public Collection> getJerseyResources() { return List.of( CoreSnapshotAPI.class, - InstallCoreDataAPI.class, + InstallCoreData.class, BackupCoreAPI.class, RestoreCoreAPI.class, ReloadCoreAPI.class); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/InstallCoreDataOp.java b/solr/core/src/java/org/apache/solr/handler/admin/InstallCoreDataOp.java index c115739f6a8..7d7ada266a3 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/InstallCoreDataOp.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/InstallCoreDataOp.java @@ -21,9 +21,10 @@ import static org.apache.solr.common.params.CoreAdminParams.BACKUP_LOCATION; import static org.apache.solr.common.params.CoreAdminParams.BACKUP_REPOSITORY; +import org.apache.solr.client.api.model.InstallCoreDataRequestBody; import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.common.params.SolrParams; -import org.apache.solr.handler.admin.api.InstallCoreDataAPI; +import org.apache.solr.handler.admin.api.InstallCoreData; import org.apache.solr.handler.api.V2ApiUtils; /** @@ -31,7 +32,7 @@ * "Install Shard Data" Collection-Admin functionality * *

Converts v1-style query parameters into a v2-style request body and delegating to {@link - * InstallCoreDataAPI}. + * InstallCoreData}. */ public class InstallCoreDataOp implements CoreAdminHandler.CoreAdminOp { @Override @@ -39,11 +40,10 @@ public void execute(CoreAdminHandler.CallInfo it) throws Exception { final SolrParams params = it.req.getParams(); final String coreName = params.required().get(CoreAdminParams.CORE); - final InstallCoreDataAPI api = - new InstallCoreDataAPI( + final InstallCoreData api = + new InstallCoreData( it.handler.getCoreContainer(), it.handler.getCoreAdminAsyncTracker(), it.req, it.rsp); - final InstallCoreDataAPI.InstallCoreDataRequestBody requestBody = - new InstallCoreDataAPI.InstallCoreDataRequestBody(); + final InstallCoreDataRequestBody requestBody = new InstallCoreDataRequestBody(); requestBody.repository = params.get(BACKUP_REPOSITORY); requestBody.location = params.get(BACKUP_LOCATION); requestBody.asyncId = params.get(ASYNC); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java index ad3f300b7c9..dfc09e917c1 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateAliasAPI.java @@ -47,6 +47,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; import org.apache.solr.client.solrj.RoutedAliasTypes; @@ -159,8 +160,8 @@ public static ZkNodeProps createRemoteMessageForRoutedAlias(CreateAliasRequestBo } if (requestBody.collCreationParameters != null) { - requestBody.collCreationParameters.addToRemoteMessageWithPrefix( - remoteMessage, "create-collection."); + CreateCollection.addToRemoteMessageWithPrefix( + requestBody.collCreationParameters, remoteMessage, "create-collection."); } return new ZkNodeProps(remoteMessage); } @@ -203,7 +204,7 @@ public static CreateAliasRequestBody createFromSolrParams(SolrParams params) { final SolrParams createCollectionParams = getHierarchicalParametersByPrefix(params, CREATE_COLLECTION_PREFIX); createBody.collCreationParameters = - CreateCollectionAPI.CreateCollectionRequestBody.fromV1Params(createCollectionParams, false); + CreateCollection.createRequestBodyFromV1Params(createCollectionParams, false); return createBody; } @@ -239,7 +240,7 @@ public static class CreateAliasRequestBody implements JacksonReflectMapWriter { public List routers; @JsonProperty("create-collection") - public CreateCollectionAPI.CreateCollectionRequestBody collCreationParameters; + public CreateCollectionRequestBody collCreationParameters; public void validate() { SolrIdentifierValidator.validateAliasName(name); @@ -257,8 +258,7 @@ public void validate() { BAD_REQUEST, "Collections cannot be specified when creating a routed alias."); } - final CreateCollectionAPI.CreateCollectionRequestBody createCollReqBody = - collCreationParameters; + final var createCollReqBody = collCreationParameters; if (createCollReqBody != null) { if (createCollReqBody.name != null) { throw new SolrException( diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java similarity index 62% rename from solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java index b8ae2dca46f..8ce1eca623e 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollection.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.client.solrj.request.beans.V2ApiConstants.ROUTER_KEY; import static org.apache.solr.client.solrj.request.beans.V2ApiConstants.SHARD_NAMES; import static org.apache.solr.cloud.Overseer.QUEUE_OPERATION; @@ -36,15 +35,12 @@ import static org.apache.solr.common.params.CollectionAdminParams.TLOG_REPLICAS; import static org.apache.solr.common.params.CommonAdminParams.ASYNC; import static org.apache.solr.common.params.CommonAdminParams.WAIT_FOR_FINAL_STATE; -import static org.apache.solr.common.params.CoreAdminParams.CONFIG; import static org.apache.solr.common.params.CoreAdminParams.NAME; import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT; import static org.apache.solr.handler.admin.CollectionsHandler.waitForActiveCollection; import static org.apache.solr.handler.api.V2ApiUtils.flattenMapWithPrefix; -import static org.apache.solr.schema.IndexSchema.FIELD; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -57,10 +53,9 @@ import java.util.Set; import java.util.stream.Collectors; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import org.apache.solr.client.api.endpoint.CreateCollectionApi; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; +import org.apache.solr.client.api.model.CreateCollectionRouterProperties; import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.request.beans.V2ApiConstants; @@ -76,9 +71,9 @@ import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.util.CollectionUtil; +import org.apache.solr.common.util.Utils; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.admin.CollectionsHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; @@ -90,19 +85,17 @@ * *

This API is analogous to the v1 /admin/collections?action=CREATE command. */ -@Path("/collections") -public class CreateCollectionAPI extends AdminAPIBase { +public class CreateCollection extends AdminAPIBase implements CreateCollectionApi { @Inject - public CreateCollectionAPI( + public CreateCollection( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) { super(coreContainer, solrQueryRequest, solrQueryResponse); } - @POST - @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(COLL_EDIT_PERM) public SubResponseAccumulatingJerseyResponse createCollection( CreateCollectionRequestBody requestBody) throws Exception { @@ -123,7 +116,7 @@ public SubResponseAccumulatingJerseyResponse createCollection( createSysConfigSet(coreContainer); } - requestBody.validate(); + validateRequestBody(requestBody); // Populate any 'null' creation parameters that support COLLECTIONPROP defaults. populateDefaultsIfNecessary(coreContainer, requestBody); @@ -224,7 +217,7 @@ public static ZkNodeProps createRemoteMessage(CreateCollectionRequestBody reqBod } if (reqBody.router != null) { - final RouterProperties routerProps = reqBody.router; + final var routerProps = reqBody.router; rawProperties.put("router.name", routerProps.name); rawProperties.put("router.field", routerProps.field); } @@ -297,185 +290,127 @@ private static void createSysConfigSet(CoreContainer coreContainer) } } - /** Request body for v2 "create collection" requests */ - public static class CreateCollectionRequestBody implements JacksonReflectMapWriter { - @JsonProperty(NAME) - public String name; - - @JsonProperty(REPLICATION_FACTOR) - public Integer replicationFactor; - - @JsonProperty(CONFIG) - public String config; - - @JsonProperty(NUM_SLICES) - public Integer numShards; - - @JsonProperty(SHARD_NAMES) - public List shardNames; - - @JsonProperty(PULL_REPLICAS) - public Integer pullReplicas; - - @JsonProperty(TLOG_REPLICAS) - public Integer tlogReplicas; - - @JsonProperty(NRT_REPLICAS) - public Integer nrtReplicas; - - @JsonProperty(WAIT_FOR_FINAL_STATE) - public Boolean waitForFinalState; - - @JsonProperty(PER_REPLICA_STATE) - public Boolean perReplicaState; - - @JsonProperty(ALIAS) - public String alias; - - @JsonProperty("properties") - public Map properties; - - @JsonProperty(ASYNC) - public String async; - - @JsonProperty("router") - public RouterProperties router; - - // Parameters below differ from v1 API - // V1 API uses createNodeSet - @JsonProperty("nodeSet") - public List nodeSet; - // v1 API uses createNodeSet=EMPTY - @JsonProperty("createReplicas") - public Boolean createReplicas; - // V1 API uses 'createNodeSet.shuffle' - @JsonProperty("shuffleNodes") - public Boolean shuffleNodes; - - public static CreateCollectionRequestBody fromV1Params( - SolrParams params, boolean nameRequired) { - final var requestBody = new CreateCollectionRequestBody(); - requestBody.name = - nameRequired ? params.required().get(CommonParams.NAME) : params.get(CommonParams.NAME); - requestBody.replicationFactor = params.getInt(ZkStateReader.REPLICATION_FACTOR); - requestBody.config = params.get(COLL_CONF); - requestBody.numShards = params.getInt(NUM_SLICES); - if (params.get(CREATE_NODE_SET) != null) { - final String commaDelimNodeSet = params.get(CREATE_NODE_SET); - if ("EMPTY".equals(commaDelimNodeSet)) { - requestBody.createReplicas = false; - } else { - requestBody.nodeSet = Arrays.asList(params.get(CREATE_NODE_SET).split(",")); - } - } - requestBody.shuffleNodes = params.getBool(CREATE_NODE_SET_SHUFFLE); - requestBody.shardNames = - params.get(SHARDS_PROP) != null - ? Arrays.stream(params.get(SHARDS_PROP).split(",")).collect(Collectors.toList()) - : new ArrayList<>(); - requestBody.tlogReplicas = params.getInt(ZkStateReader.TLOG_REPLICAS); - requestBody.pullReplicas = params.getInt(ZkStateReader.PULL_REPLICAS); - requestBody.nrtReplicas = params.getInt(ZkStateReader.NRT_REPLICAS); - requestBody.waitForFinalState = params.getBool(WAIT_FOR_FINAL_STATE); - requestBody.perReplicaState = params.getBool(PER_REPLICA_STATE); - requestBody.alias = params.get(ALIAS); - requestBody.async = params.get(ASYNC); - requestBody.properties = - copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); - if (params.get("router.name") != null || params.get("router.field") != null) { - final RouterProperties routerProperties = new RouterProperties(); - routerProperties.name = params.get("router.name"); - routerProperties.field = params.get("router.field"); - requestBody.router = routerProperties; + public static CreateCollectionRequestBody createRequestBodyFromV1Params( + SolrParams params, boolean nameRequired) { + final var requestBody = new CreateCollectionRequestBody(); + requestBody.name = + nameRequired ? params.required().get(CommonParams.NAME) : params.get(CommonParams.NAME); + requestBody.replicationFactor = params.getInt(ZkStateReader.REPLICATION_FACTOR); + requestBody.config = params.get(COLL_CONF); + requestBody.numShards = params.getInt(NUM_SLICES); + if (params.get(CREATE_NODE_SET) != null) { + final String commaDelimNodeSet = params.get(CREATE_NODE_SET); + if ("EMPTY".equals(commaDelimNodeSet)) { + requestBody.createReplicas = false; + } else { + requestBody.nodeSet = Arrays.asList(params.get(CREATE_NODE_SET).split(",")); } - - return requestBody; + } + requestBody.shuffleNodes = params.getBool(CREATE_NODE_SET_SHUFFLE); + requestBody.shardNames = + params.get(SHARDS_PROP) != null + ? Arrays.stream(params.get(SHARDS_PROP).split(",")).collect(Collectors.toList()) + : new ArrayList<>(); + requestBody.tlogReplicas = params.getInt(ZkStateReader.TLOG_REPLICAS); + requestBody.pullReplicas = params.getInt(ZkStateReader.PULL_REPLICAS); + requestBody.nrtReplicas = params.getInt(ZkStateReader.NRT_REPLICAS); + requestBody.waitForFinalState = params.getBool(WAIT_FOR_FINAL_STATE); + requestBody.perReplicaState = params.getBool(PER_REPLICA_STATE); + requestBody.alias = params.get(ALIAS); + requestBody.async = params.get(ASYNC); + requestBody.properties = + copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); + if (params.get("router.name") != null || params.get("router.field") != null) { + final var routerProperties = new CreateCollectionRouterProperties(); + routerProperties.name = params.get("router.name"); + routerProperties.field = params.get("router.field"); + requestBody.router = routerProperties; } - public void validate() { - if (replicationFactor != null - && nrtReplicas != null - && (!replicationFactor.equals(nrtReplicas))) { - throw new SolrException( - SolrException.ErrorCode.BAD_REQUEST, - "Cannot specify both replicationFactor and nrtReplicas as they mean the same thing"); - } - - SolrIdentifierValidator.validateCollectionName(name); + return requestBody; + } - if (shardNames != null && !shardNames.isEmpty()) { - verifyShardsParam(shardNames); - } + public static void validateRequestBody(CreateCollectionRequestBody requestBody) { + if (requestBody.replicationFactor != null + && requestBody.nrtReplicas != null + && (!requestBody.replicationFactor.equals(requestBody.nrtReplicas))) { + throw new SolrException( + SolrException.ErrorCode.BAD_REQUEST, + "Cannot specify both replicationFactor and nrtReplicas as they mean the same thing"); } - public void addToRemoteMessageWithPrefix(Map remoteMessage, String prefix) { - final Map v1Params = toMap(new HashMap<>()); - convertV2CreateCollectionMapToV1ParamMap(v1Params); - for (Map.Entry v1Param : v1Params.entrySet()) { - remoteMessage.put(prefix + v1Param.getKey(), v1Param.getValue()); - } + SolrIdentifierValidator.validateCollectionName(requestBody.name); + + if (requestBody.shardNames != null && !requestBody.shardNames.isEmpty()) { + verifyShardsParam(requestBody.shardNames); } + } - /** - * Convert a map representing the v2 request body into v1-appropriate query-parameters. - * - *

Most v2 APIs using the legacy (i.e. non-JAX-RS) framework implement the v2 API by - * restructuring the provided parameters so that the v1 codepath can be called. This utility - * method is provided in pursuit of that usecase. It's not used directly CreateCollectionAPI, - * which uses the JAX-RS framework, but it's kept here so that logic surrounding - * collection-creation parameters can be kept in a single place. - */ - @SuppressWarnings("unchecked") - public static void convertV2CreateCollectionMapToV1ParamMap(Map v2MapVals) { - // Keys are copied so that map can be modified as keys are looped through. - final Set v2Keys = v2MapVals.keySet().stream().collect(Collectors.toSet()); - for (String key : v2Keys) { - switch (key) { - case V2ApiConstants.PROPERTIES_KEY: - final Map propertiesMap = - (Map) v2MapVals.remove(V2ApiConstants.PROPERTIES_KEY); - flattenMapWithPrefix(propertiesMap, v2MapVals, CollectionAdminParams.PROPERTY_PREFIX); - break; - case ROUTER_KEY: - final Map routerProperties = - (Map) v2MapVals.remove(V2ApiConstants.ROUTER_KEY); - flattenMapWithPrefix(routerProperties, v2MapVals, CollectionAdminParams.ROUTER_PREFIX); - break; - case V2ApiConstants.CONFIG: - v2MapVals.put(CollectionAdminParams.COLL_CONF, v2MapVals.remove(V2ApiConstants.CONFIG)); - break; - case SHARD_NAMES: - final String shardsValue = - String.join(",", (Collection) v2MapVals.remove(SHARD_NAMES)); - v2MapVals.put(SHARDS_PROP, shardsValue); - break; - case V2ApiConstants.SHUFFLE_NODES: - v2MapVals.put( - CollectionAdminParams.CREATE_NODE_SET_SHUFFLE_PARAM, - v2MapVals.remove(V2ApiConstants.SHUFFLE_NODES)); - break; - case V2ApiConstants.NODE_SET: - final Object nodeSetValUncast = v2MapVals.remove(V2ApiConstants.NODE_SET); - if (nodeSetValUncast instanceof String) { - v2MapVals.put(CollectionAdminParams.CREATE_NODE_SET_PARAM, nodeSetValUncast); - } else { - final List nodeSetList = (List) nodeSetValUncast; - final String nodeSetStr = String.join(",", nodeSetList); - v2MapVals.put(CollectionAdminParams.CREATE_NODE_SET_PARAM, nodeSetStr); - } - break; - default: - break; - } + /** + * Convert a map representing the v2 request body into v1-appropriate query-parameters. + * + *

Most v2 APIs using the legacy (i.e. non-JAX-RS) framework implement the v2 API by + * restructuring the provided parameters so that the v1 codepath can be called. This utility + * method is provided in pursuit of that usecase. It's not used directly CreateCollectionAPI, + * which uses the JAX-RS framework, but it's kept here so that logic surrounding + * collection-creation parameters can be kept in a single place. + */ + @SuppressWarnings("unchecked") + public static void convertV2CreateCollectionMapToV1ParamMap(Map v2MapVals) { + // Keys are copied so that map can be modified as keys are looped through. + final Set v2Keys = v2MapVals.keySet().stream().collect(Collectors.toSet()); + for (String key : v2Keys) { + switch (key) { + case V2ApiConstants.PROPERTIES_KEY: + final Map propertiesMap = + (Map) v2MapVals.remove(V2ApiConstants.PROPERTIES_KEY); + flattenMapWithPrefix(propertiesMap, v2MapVals, CollectionAdminParams.PROPERTY_PREFIX); + break; + case ROUTER_KEY: + final var routerProperties = + (CreateCollectionRouterProperties) v2MapVals.remove(ROUTER_KEY); + final Map routerPropertiesAsMap = + ((Utils.DelegateReflectWriter) Utils.getReflectWriter(routerProperties)) + .toMap(new HashMap<>()); + flattenMapWithPrefix( + routerPropertiesAsMap, v2MapVals, CollectionAdminParams.ROUTER_PREFIX); + break; + case V2ApiConstants.CONFIG: + v2MapVals.put(CollectionAdminParams.COLL_CONF, v2MapVals.remove(V2ApiConstants.CONFIG)); + break; + case SHARD_NAMES: + final String shardsValue = + String.join(",", (Collection) v2MapVals.remove(SHARD_NAMES)); + v2MapVals.put(SHARDS_PROP, shardsValue); + break; + case V2ApiConstants.SHUFFLE_NODES: + v2MapVals.put( + CollectionAdminParams.CREATE_NODE_SET_SHUFFLE_PARAM, + v2MapVals.remove(V2ApiConstants.SHUFFLE_NODES)); + break; + case V2ApiConstants.NODE_SET: + final Object nodeSetValUncast = v2MapVals.remove(V2ApiConstants.NODE_SET); + if (nodeSetValUncast instanceof String) { + v2MapVals.put(CollectionAdminParams.CREATE_NODE_SET_PARAM, nodeSetValUncast); + } else { + final List nodeSetList = (List) nodeSetValUncast; + final String nodeSetStr = String.join(",", nodeSetList); + v2MapVals.put(CollectionAdminParams.CREATE_NODE_SET_PARAM, nodeSetStr); + } + break; + default: + break; } } } - public static class RouterProperties implements JacksonReflectMapWriter { - @JsonProperty(NAME) - public String name; - - @JsonProperty(FIELD) - public String field; + public static void addToRemoteMessageWithPrefix( + CreateCollectionRequestBody requestBody, Map remoteMessage, String prefix) { + final Map v1Params = + ((Utils.DelegateReflectWriter) Utils.getReflectWriter(requestBody)).toMap(new HashMap<>()); + convertV2CreateCollectionMapToV1ParamMap(v1Params); + for (Map.Entry v1Param : v1Params.entrySet()) { + remoteMessage.put(prefix + v1Param.getKey(), v1Param.getValue()); + } } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplicaAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java similarity index 65% rename from solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplicaAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java index c119f27db60..180a0a335d4 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplicaAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateReplica.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.cloud.Overseer.QUEUE_OPERATION; import static org.apache.solr.cloud.api.collections.CollectionHandlingUtils.CREATE_NODE_SET; import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP; @@ -38,19 +37,15 @@ import static org.apache.solr.common.params.CoreAdminParams.NODE; import static org.apache.solr.common.params.CoreAdminParams.ULOG_DIR; import static org.apache.solr.common.params.ShardParams._ROUTE_; -import static org.apache.solr.handler.admin.api.CreateCollectionAPI.copyPrefixedPropertiesWithoutPrefix; +import static org.apache.solr.handler.admin.api.CreateCollection.copyPrefixedPropertiesWithoutPrefix; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Arrays; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.CreateReplicaApi; +import org.apache.solr.client.api.model.CreateReplicaRequestBody; import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.ZkNodeProps; @@ -59,35 +54,30 @@ import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.util.CollectionUtil; import org.apache.solr.core.CoreContainer; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; /** - * V2 API for adding a new replica to an existing shard. + * V2 API implementation for adding a new replica to an existing shard. * *

This API (POST /v2/collections/cName/shards/sName/replicas {...}) is analogous to the v1 * /admin/collections?action=ADDREPLICA command. */ -@Path("/collections/{collectionName}/shards/{shardName}/replicas") -public class CreateReplicaAPI extends AdminAPIBase { +public class CreateReplica extends AdminAPIBase implements CreateReplicaApi { @Inject - public CreateReplicaAPI( + public CreateReplica( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) { super(coreContainer, solrQueryRequest, solrQueryResponse); } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(COLL_EDIT_PERM) public SubResponseAccumulatingJerseyResponse createReplica( - @PathParam("collectionName") String collectionName, - @PathParam("shardName") String shardName, - AddReplicaRequestBody requestBody) + String collectionName, String shardName, CreateReplicaRequestBody requestBody) throws Exception { final var response = instantiateJerseyResponse(SubResponseAccumulatingJerseyResponse.class); if (requestBody == null) { @@ -103,12 +93,12 @@ public SubResponseAccumulatingJerseyResponse createReplica( final ZkNodeProps remoteMessage = createRemoteMessage(resolvedCollectionName, shardName, requestBody); submitRemoteMessageAndHandleResponse( - response, CollectionParams.CollectionAction.ADDREPLICA, remoteMessage, requestBody.asyncId); + response, CollectionParams.CollectionAction.ADDREPLICA, remoteMessage, requestBody.async); return response; } public static ZkNodeProps createRemoteMessage( - String collectionName, String shardName, AddReplicaRequestBody requestBody) { + String collectionName, String shardName, CreateReplicaRequestBody requestBody) { final Map remoteMessage = new HashMap<>(); remoteMessage.put(QUEUE_OPERATION, CollectionParams.CollectionAction.ADDREPLICA.toLower()); remoteMessage.put(COLLECTION_PROP, collectionName); @@ -129,7 +119,7 @@ public static ZkNodeProps createRemoteMessage( insertIfNotNull(remoteMessage, TLOG_REPLICAS, requestBody.tlogReplicas); insertIfNotNull(remoteMessage, PULL_REPLICAS, requestBody.pullReplicas); insertIfNotNull(remoteMessage, FOLLOW_ALIASES, requestBody.followAliases); - insertIfNotNull(remoteMessage, ASYNC, requestBody.asyncId); + insertIfNotNull(remoteMessage, ASYNC, requestBody.async); if (requestBody.properties != null) { requestBody @@ -144,59 +134,31 @@ public static ZkNodeProps createRemoteMessage( return new ZkNodeProps(remoteMessage); } - public static class AddReplicaRequestBody implements JacksonReflectMapWriter { - @JsonProperty public String name; - @JsonProperty public String type; // TODO Make this an enum - see SOLR-15796 - @JsonProperty public String instanceDir; - @JsonProperty public String dataDir; - @JsonProperty public String ulogDir; - @JsonProperty public String route; - @JsonProperty public Integer nrtReplicas; - @JsonProperty public Integer tlogReplicas; - @JsonProperty public Integer pullReplicas; - @JsonProperty public Boolean waitForFinalState; - @JsonProperty public Boolean followAliases; - - @JsonProperty(ASYNC) - public String asyncId; - - // TODO This cluster of properties could probably be simplified down to just "nodeSet". See - // SOLR-15542 - @JsonProperty public String node; - - @JsonProperty("nodeSet") - public List nodeSet; - - @JsonProperty public Boolean skipNodeAssignment; - - @JsonProperty public Map properties; - - public static AddReplicaRequestBody fromV1Params(SolrParams params) { - final var requestBody = new AddReplicaRequestBody(); - - requestBody.name = params.get(NAME); - requestBody.type = params.get(REPLICA_TYPE); - requestBody.instanceDir = params.get(INSTANCE_DIR); - requestBody.dataDir = params.get(DATA_DIR); - requestBody.ulogDir = params.get(ULOG_DIR); - requestBody.route = params.get(_ROUTE_); - requestBody.nrtReplicas = params.getInt(NRT_REPLICAS); - requestBody.tlogReplicas = params.getInt(TLOG_REPLICAS); - requestBody.pullReplicas = params.getInt(PULL_REPLICAS); - requestBody.waitForFinalState = params.getBool(WAIT_FOR_FINAL_STATE); - requestBody.followAliases = params.getBool(FOLLOW_ALIASES); - requestBody.asyncId = params.get(ASYNC); - - requestBody.node = params.get(NODE); - if (params.get(CREATE_NODE_SET_PARAM) != null) { - requestBody.nodeSet = Arrays.asList(params.get(CREATE_NODE_SET).split(",")); - } - requestBody.skipNodeAssignment = params.getBool(SKIP_NODE_ASSIGNMENT); + public static CreateReplicaRequestBody createRequestBodyFromV1Params(SolrParams params) { + final var requestBody = new CreateReplicaRequestBody(); + + requestBody.name = params.get(NAME); + requestBody.type = params.get(REPLICA_TYPE); + requestBody.instanceDir = params.get(INSTANCE_DIR); + requestBody.dataDir = params.get(DATA_DIR); + requestBody.ulogDir = params.get(ULOG_DIR); + requestBody.route = params.get(_ROUTE_); + requestBody.nrtReplicas = params.getInt(NRT_REPLICAS); + requestBody.tlogReplicas = params.getInt(TLOG_REPLICAS); + requestBody.pullReplicas = params.getInt(PULL_REPLICAS); + requestBody.waitForFinalState = params.getBool(WAIT_FOR_FINAL_STATE); + requestBody.followAliases = params.getBool(FOLLOW_ALIASES); + requestBody.async = params.get(ASYNC); + + requestBody.node = params.get(NODE); + if (params.get(CREATE_NODE_SET_PARAM) != null) { + requestBody.nodeSet = Arrays.asList(params.get(CREATE_NODE_SET).split(",")); + } + requestBody.skipNodeAssignment = params.getBool(SKIP_NODE_ASSIGNMENT); - requestBody.properties = - copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); + requestBody.properties = + copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); - return requestBody; - } + return requestBody; } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShardAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java similarity index 69% rename from solr/core/src/java/org/apache/solr/handler/admin/api/CreateShardAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java index 41be6e672d7..ffa2f55ef25 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShardAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateShard.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.cloud.Overseer.QUEUE_OPERATION; import static org.apache.solr.cloud.api.collections.CollectionHandlingUtils.CREATE_NODE_SET; import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP; @@ -34,19 +33,15 @@ import static org.apache.solr.common.params.CommonAdminParams.ASYNC; import static org.apache.solr.common.params.CommonAdminParams.WAIT_FOR_FINAL_STATE; import static org.apache.solr.common.params.CommonParams.NAME; -import static org.apache.solr.handler.admin.api.CreateCollectionAPI.copyPrefixedPropertiesWithoutPrefix; +import static org.apache.solr.handler.admin.api.CreateCollection.copyPrefixedPropertiesWithoutPrefix; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Arrays; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.CreateShardApi; +import org.apache.solr.client.api.model.CreateShardRequestBody; import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; import org.apache.solr.client.solrj.util.SolrIdentifierValidator; import org.apache.solr.common.SolrException; @@ -58,7 +53,6 @@ import org.apache.solr.common.params.SolrParams; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.api.V2ApiUtils; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; @@ -69,23 +63,20 @@ *

This API (POST /v2/collections/collectionName/shards {...}) is analogous to the v1 * /admin/collections?action=CREATESHARD command. */ -@Path("/collections/{collectionName}/shards") -public class CreateShardAPI extends AdminAPIBase { +public class CreateShard extends AdminAPIBase implements CreateShardApi { @Inject - public CreateShardAPI( + public CreateShard( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) { super(coreContainer, solrQueryRequest, solrQueryResponse); } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(COLL_EDIT_PERM) public SubResponseAccumulatingJerseyResponse createShard( - @PathParam("collectionName") String collectionName, CreateShardRequestBody requestBody) - throws Exception { + String collectionName, CreateShardRequestBody requestBody) throws Exception { final var response = instantiateJerseyResponse(SubResponseAccumulatingJerseyResponse.class); if (requestBody == null) { throw new SolrException( @@ -101,71 +92,34 @@ public SubResponseAccumulatingJerseyResponse createShard( final ZkNodeProps remoteMessage = createRemoteMessage(resolvedCollectionName, requestBody); submitRemoteMessageAndHandleResponse( - response, - CollectionParams.CollectionAction.CREATESHARD, - remoteMessage, - requestBody.asyncId); + response, CollectionParams.CollectionAction.CREATESHARD, remoteMessage, requestBody.async); return response; } - public static class CreateShardRequestBody implements JacksonReflectMapWriter { - @JsonProperty(NAME) - public String shardName; - - @JsonProperty(REPLICATION_FACTOR) - public Integer replicationFactor; - - @JsonProperty(NRT_REPLICAS) - public Integer nrtReplicas; - - @JsonProperty(TLOG_REPLICAS) - public Integer tlogReplicas; - - @JsonProperty(PULL_REPLICAS) - public Integer pullReplicas; - - @JsonProperty("createReplicas") - public Boolean createReplicas; - - @JsonProperty("nodeSet") - public List nodeSet; - - @JsonProperty(WAIT_FOR_FINAL_STATE) - public Boolean waitForFinalState; - - @JsonProperty(FOLLOW_ALIASES) - public Boolean followAliases; - - @JsonProperty(ASYNC) - public String asyncId; - - @JsonProperty public Map properties; - - public static CreateShardRequestBody fromV1Params(SolrParams params) { - params.required().check(COLLECTION, SHARD); - - final var requestBody = new CreateShardRequestBody(); - requestBody.shardName = params.get(SHARD); - requestBody.replicationFactor = params.getInt(REPLICATION_FACTOR); - requestBody.nrtReplicas = params.getInt(NRT_REPLICAS); - requestBody.tlogReplicas = params.getInt(TLOG_REPLICAS); - requestBody.pullReplicas = params.getInt(PULL_REPLICAS); - if (params.get(CREATE_NODE_SET_PARAM) != null) { - final String nodeSetStr = params.get(CREATE_NODE_SET_PARAM); - if ("EMPTY".equals(nodeSetStr)) { - requestBody.createReplicas = false; - } else { - requestBody.nodeSet = Arrays.asList(nodeSetStr.split(",")); - } + public static CreateShardRequestBody createRequestBodyFromV1Params(SolrParams params) { + params.required().check(COLLECTION, SHARD); + + final var requestBody = new CreateShardRequestBody(); + requestBody.shardName = params.get(SHARD); + requestBody.replicationFactor = params.getInt(REPLICATION_FACTOR); + requestBody.nrtReplicas = params.getInt(NRT_REPLICAS); + requestBody.tlogReplicas = params.getInt(TLOG_REPLICAS); + requestBody.pullReplicas = params.getInt(PULL_REPLICAS); + if (params.get(CREATE_NODE_SET_PARAM) != null) { + final String nodeSetStr = params.get(CREATE_NODE_SET_PARAM); + if ("EMPTY".equals(nodeSetStr)) { + requestBody.createReplicas = false; + } else { + requestBody.nodeSet = Arrays.asList(nodeSetStr.split(",")); } - requestBody.waitForFinalState = params.getBool(WAIT_FOR_FINAL_STATE); - requestBody.followAliases = params.getBool(FOLLOW_ALIASES); - requestBody.asyncId = params.get(ASYNC); - requestBody.properties = - copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); - - return requestBody; } + requestBody.waitForFinalState = params.getBool(WAIT_FOR_FINAL_STATE); + requestBody.followAliases = params.getBool(FOLLOW_ALIASES); + requestBody.async = params.get(ASYNC); + requestBody.properties = + copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); + + return requestBody; } public static void invokeFromV1Params( @@ -173,9 +127,8 @@ public static void invokeFromV1Params( SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) throws Exception { - final var requestBody = CreateShardRequestBody.fromV1Params(solrQueryRequest.getParams()); - final var createShardApi = - new CreateShardAPI(coreContainer, solrQueryRequest, solrQueryResponse); + final var requestBody = CreateShard.createRequestBodyFromV1Params(solrQueryRequest.getParams()); + final var createShardApi = new CreateShard(coreContainer, solrQueryRequest, solrQueryResponse); final var response = createShardApi.createShard(solrQueryRequest.getParams().get(COLLECTION), requestBody); V2ApiUtils.squashIntoSolrResponseWithoutHeader(solrQueryResponse, response); @@ -201,7 +154,7 @@ public static ZkNodeProps createRemoteMessage( insertIfNotNull(remoteMessage, PULL_REPLICAS, requestBody.pullReplicas); insertIfNotNull(remoteMessage, WAIT_FOR_FINAL_STATE, requestBody.waitForFinalState); insertIfNotNull(remoteMessage, FOLLOW_ALIASES, requestBody.followAliases); - insertIfNotNull(remoteMessage, ASYNC, requestBody.asyncId); + insertIfNotNull(remoteMessage, ASYNC, requestBody.async); if (requestBody.properties != null) { requestBody diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/InstallCoreDataAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/InstallCoreData.java similarity index 73% rename from solr/core/src/java/org/apache/solr/handler/admin/api/InstallCoreDataAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/InstallCoreData.java index c0cd11b3451..a91a0688e0a 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/InstallCoreDataAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/InstallCoreData.java @@ -17,16 +17,11 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.lang.invoke.MethodHandles; import java.net.URI; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.InstallCoreDataApi; +import org.apache.solr.client.api.model.InstallCoreDataRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.cloud.CloudDescriptor; import org.apache.solr.cloud.ZkController; @@ -36,25 +31,19 @@ import org.apache.solr.core.backup.repository.BackupRepository; import org.apache.solr.handler.RestoreCore; import org.apache.solr.handler.admin.CoreAdminHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** - * v2 implementation of the "Install Core Data" Core-Admin API + * V2 API implementation of the "Install Core Data" Core-Admin API * *

This is an internal API intended for use only by the Collection Admin "Install Shard Data" * API. */ -@Path("/cores/{coreName}/install") -public class InstallCoreDataAPI extends CoreAdminAPIBase { +public class InstallCoreData extends CoreAdminAPIBase implements InstallCoreDataApi { - private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - public InstallCoreDataAPI( + public InstallCoreData( CoreContainer coreContainer, CoreAdminHandler.CoreAdminAsyncTracker coreAdminAsyncTracker, SolrQueryRequest req, @@ -62,11 +51,9 @@ public InstallCoreDataAPI( super(coreContainer, coreAdminAsyncTracker, req, rsp); } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(CORE_EDIT_PERM) - public SolrJerseyResponse installCoreData( - @PathParam("coreName") String coreName, InstallCoreDataRequestBody requestBody) + public SolrJerseyResponse installCoreData(String coreName, InstallCoreDataRequestBody requestBody) throws Exception { final SolrJerseyResponse response = instantiateJerseyResponse(SolrJerseyResponse.class); @@ -118,18 +105,4 @@ public SolrJerseyResponse installCoreData( return response; } - - public static class InstallCoreDataRequestBody implements JacksonReflectMapWriter { - // Expected to point to an index directory (e.g. data/techproducts_shard1_replica_n1/data/index) - // for a single core that has previously been uploaded to the backup repository previously - // uploaded to the backup repository. - @JsonProperty("location") - public String location; - - @JsonProperty("repository") - public String repository; - - @JsonProperty("async") - public String asyncId; - } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardDataAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java similarity index 78% rename from solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardDataAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java index fa400835a4f..33844b28608 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardDataAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/InstallShardData.java @@ -17,18 +17,13 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.lang.invoke.MethodHandles; import java.util.HashMap; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.InstallShardDataApi; +import org.apache.solr.client.api.model.InstallShardDataRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.cloud.api.collections.InstallShardDataCmd; @@ -41,42 +36,31 @@ import org.apache.solr.common.util.StrUtils; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.admin.CollectionsHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** - * A V2 API that allows users to import an index constructed offline into a shard of their - * collection + * V2 API implementation allowing users to import offline-constructed index into a shard. * *

Particularly useful for installing (per-shard) indices constructed offline into a SolrCloud * deployment. Callers are required to put the collection into read-only mode prior to installing * data into any shards of that collection, and should exit read only mode when completed. */ -@Path("/collections/{collName}/shards/{shardName}/install") -public class InstallShardDataAPI extends AdminAPIBase { - - private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); +public class InstallShardData extends AdminAPIBase implements InstallShardDataApi { @Inject - public InstallShardDataAPI( + public InstallShardData( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) { super(coreContainer, solrQueryRequest, solrQueryResponse); } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(COLL_EDIT_PERM) public SolrJerseyResponse installShardData( - @PathParam("collName") String collName, - @PathParam("shardName") String shardName, - InstallShardRequestBody requestBody) - throws Exception { + String collName, String shardName, InstallShardDataRequestBody requestBody) throws Exception { final SolrJerseyResponse response = instantiateJerseyResponse(SolrJerseyResponse.class); final CoreContainer coreContainer = fetchAndValidateZooKeeperAwareCoreContainer(); recordCollectionForLogAndTracing(collName, solrQueryRequest); @@ -130,28 +114,17 @@ public static void ensureCollectionAndShardExist( } public static ZkNodeProps createRemoteMessage( - String collectionName, String shardName, InstallShardRequestBody requestBody) { + String collectionName, String shardName, InstallShardDataRequestBody requestBody) { final InstallShardDataCmd.RemoteMessage messageTyped = new InstallShardDataCmd.RemoteMessage(); messageTyped.collection = collectionName; messageTyped.shard = shardName; if (requestBody != null) { messageTyped.location = requestBody.location; messageTyped.repository = requestBody.repository; - messageTyped.asyncId = requestBody.asyncId; + messageTyped.asyncId = requestBody.async; } messageTyped.validate(); return new ZkNodeProps(messageTyped.toMap(new HashMap<>())); } - - public static class InstallShardRequestBody implements JacksonReflectMapWriter { - @JsonProperty(defaultValue = "location", required = true) - public String location; - - @JsonProperty("repository") - public String repository; - - @JsonProperty("async") - public String asyncId; - } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java index 1809d83f6b9..b950abf44ec 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollectionAPI.java @@ -46,6 +46,7 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse; import org.apache.solr.client.solrj.SolrResponse; @@ -121,8 +122,8 @@ public SubResponseAccumulatingJerseyResponse restoreCollection( final var createRequestBody = requestBody.createCollectionParams; if (createRequestBody != null) { - CreateCollectionAPI.populateDefaultsIfNecessary(coreContainer, createRequestBody); - createRequestBody.validate(); + CreateCollection.populateDefaultsIfNecessary(coreContainer, createRequestBody); + CreateCollection.validateRequestBody(createRequestBody); if (Boolean.FALSE.equals(createRequestBody.createReplicas)) { throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, @@ -160,7 +161,7 @@ public static ZkNodeProps createRemoteMessage( // RESTORE only supports a subset of collection-creation params, so filter by those when // constructing the remote message remoteMessage.remove("create-collection"); - CreateCollectionAPI.createRemoteMessage(createReqBody).getProperties().entrySet().stream() + CreateCollection.createRemoteMessage(createReqBody).getProperties().entrySet().stream() .filter( e -> CREATE_PARAM_ALLOWLIST.contains(e.getKey()) @@ -204,7 +205,7 @@ public static class RestoreCollectionRequestBody implements JacksonReflectMapWri @JsonProperty public Integer backupId; @JsonProperty(CREATE_COLLECTION_KEY) - public CreateCollectionAPI.CreateCollectionRequestBody createCollectionParams; + public CreateCollectionRequestBody createCollectionParams; @JsonProperty public String async; @@ -217,7 +218,7 @@ public static RestoreCollectionRequestBody fromV1Params(SolrParams solrParams) { restoreBody.async = solrParams.get(ASYNC); restoreBody.createCollectionParams = - CreateCollectionAPI.CreateCollectionRequestBody.fromV1Params(solrParams, false); + CreateCollection.createRequestBodyFromV1Params(solrParams, false); return restoreBody; } diff --git a/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java b/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java index 3925b297d6a..a7a6632fa65 100644 --- a/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java +++ b/solr/core/src/java/org/apache/solr/jersey/PostRequestLoggingFilter.java @@ -41,6 +41,7 @@ import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.common.util.CollectionUtil; import org.apache.solr.common.util.StrUtils; +import org.apache.solr.common.util.Utils; import org.apache.solr.core.SolrCore; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.servlet.HttpSolrCall; @@ -141,19 +142,23 @@ public static String buildRequestBodyString(ContainerRequestContext requestConte return "{}"; } - if (!(requestContext.getProperty(DESERIALIZED_REQUEST_BODY_KEY) - instanceof JacksonReflectMapWriter)) { - log.warn( - "Encountered unexpected request-body type {} for request {}; only {} expected.", - requestContext.getProperty(DESERIALIZED_REQUEST_BODY_KEY).getClass().getName(), - requestContext.getUriInfo().getPath(), - JacksonReflectMapWriter.class.getName()); - return "{}"; + final Object deserializedBody = requestContext.getProperty(DESERIALIZED_REQUEST_BODY_KEY); + if (deserializedBody instanceof JacksonReflectMapWriter) { + return ((JacksonReflectMapWriter) requestContext.getProperty(DESERIALIZED_REQUEST_BODY_KEY)) + .jsonStr() + .replace("\n", ""); + } + + final Object reflectWritable = Utils.getReflectWriter(deserializedBody); + if (reflectWritable instanceof Utils.DelegateReflectWriter) { + return Utils.toJSONString(reflectWritable).replaceAll("\n", ""); } - return ((JacksonReflectMapWriter) requestContext.getProperty(DESERIALIZED_REQUEST_BODY_KEY)) - .jsonStr() - .replace("\n", ""); + log.warn( + "No reflection data found for request-body type {} for request {}; omitting request-body details from logging", + deserializedBody.getClass().getName(), + requestContext.getUriInfo().getPath()); + return "{}"; } public static String filterAndStringifyQueryParameters( diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateAliasAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateAliasAPITest.java index ce4b5b51544..1e97d61a543 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateAliasAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateAliasAPITest.java @@ -24,6 +24,7 @@ import java.util.List; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.ModifiableSolrParams; import org.hamcrest.MatcherAssert; @@ -95,7 +96,7 @@ public void testRoutedAliasesMustProvideAConfigsetToUseOnCreatedCollections() { final var categoryRouter = new CreateAliasAPI.CategoryRoutedAliasProperties(); categoryRouter.field = "someField"; requestBody.routers = List.of(categoryRouter); - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; requestBody.collCreationParameters = createParams; @@ -112,7 +113,7 @@ public void testRoutedAliasesMustNotSpecifyANameInCollectionCreationParams() { final var categoryRouter = new CreateAliasAPI.CategoryRoutedAliasProperties(); categoryRouter.field = "someField"; requestBody.routers = List.of(categoryRouter); - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; createParams.config = "someConfig"; // Not allowed since routed-aliases-created collections have semantically meaningful names @@ -130,7 +131,7 @@ public void testRoutedAliasesMustNotSpecifyANameInCollectionCreationParams() { public void testReportsErrorIfCategoryRoutedAliasDoesntSpecifyAllRequiredParameters() { final var requestBody = new CreateAliasAPI.CreateAliasRequestBody(); requestBody.name = "validName"; - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; createParams.config = "someConfig"; requestBody.collCreationParameters = createParams; @@ -212,7 +213,7 @@ public void testRemoteMessageCreationForCategoryRoutedAlias() { final var categoryRouter = new CreateAliasAPI.CategoryRoutedAliasProperties(); categoryRouter.field = "someField"; requestBody.routers = List.of(categoryRouter); - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; createParams.config = "someConfig"; requestBody.collCreationParameters = createParams; @@ -239,7 +240,7 @@ public void testRemoteMessageCreationForTimeRoutedAlias() { timeRouter.interval = "+1MONTH"; timeRouter.maxFutureMs = 123456L; requestBody.routers = List.of(timeRouter); - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; createParams.config = "someConfig"; requestBody.collCreationParameters = createParams; @@ -271,7 +272,7 @@ public void testRemoteMessageCreationForMultiDimensionalRoutedAlias() { final var categoryRouter = new CreateAliasAPI.CategoryRoutedAliasProperties(); categoryRouter.field = "someField"; requestBody.routers = List.of(timeRouter, categoryRouter); - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; createParams.config = "someConfig"; requestBody.collCreationParameters = createParams; @@ -297,7 +298,7 @@ private CreateAliasAPI.CreateAliasRequestBody requestBodyWithProvidedRouter( CreateAliasAPI.RoutedAliasProperties router) { final var requestBody = new CreateAliasAPI.CreateAliasRequestBody(); requestBody.name = "validName"; - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); createParams.numShards = 3; createParams.config = "someConfig"; requestBody.collCreationParameters = createParams; diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateCollectionAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateCollectionAPITest.java index c5eb27f0835..80a2200131a 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateCollectionAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateCollectionAPITest.java @@ -37,11 +37,13 @@ import java.util.List; import java.util.Map; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; +import org.apache.solr.client.api.model.CreateCollectionRouterProperties; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.ModifiableSolrParams; import org.junit.Test; -/** Unit tests for {@link CreateCollectionAPI}. */ +/** Unit tests for {@link CreateCollection}. */ public class CreateCollectionAPITest extends SolrTestCaseJ4 { @Test @@ -50,7 +52,7 @@ public void testReportsErrorIfRequestBodyMissing() { expectThrows( SolrException.class, () -> { - final var api = new CreateCollectionAPI(null, null, null); + final var api = new CreateCollection(null, null, null); api.createCollection(null); }); @@ -61,7 +63,7 @@ public void testReportsErrorIfRequestBodyMissing() { @Test public void testReportsErrorIfReplicationFactorAndNrtReplicasConflict() { // Valid request body... - final var requestBody = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var requestBody = new CreateCollectionRequestBody(); requestBody.name = "someName"; requestBody.config = "someConfig"; // ...except for a replicationFactor and nrtReplicas conflicting @@ -72,7 +74,7 @@ public void testReportsErrorIfReplicationFactorAndNrtReplicasConflict() { expectThrows( SolrException.class, () -> { - requestBody.validate(); + CreateCollection.validateRequestBody(requestBody); }); assertEquals(400, thrown.code()); @@ -83,7 +85,7 @@ public void testReportsErrorIfReplicationFactorAndNrtReplicasConflict() { @Test public void testReportsErrorIfCollectionNameInvalid() { - final var requestBody = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var requestBody = new CreateCollectionRequestBody(); requestBody.name = "$invalid@collection+name"; requestBody.config = "someConfig"; @@ -91,7 +93,7 @@ public void testReportsErrorIfCollectionNameInvalid() { expectThrows( SolrException.class, () -> { - requestBody.validate(); + CreateCollection.validateRequestBody(requestBody); }); assertEquals(400, thrown.code()); @@ -103,7 +105,7 @@ public void testReportsErrorIfCollectionNameInvalid() { @Test public void testReportsErrorIfShardNamesInvalid() { // Valid request body... - final var requestBody = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var requestBody = new CreateCollectionRequestBody(); requestBody.name = "someName"; requestBody.config = "someConfig"; // ...except for a bad shard name @@ -113,7 +115,7 @@ public void testReportsErrorIfShardNamesInvalid() { expectThrows( SolrException.class, () -> { - requestBody.validate(); + CreateCollection.validateRequestBody(requestBody); }); assertEquals(400, thrown.code()); @@ -124,7 +126,7 @@ public void testReportsErrorIfShardNamesInvalid() { @Test public void testCreateRemoteMessageAllProperties() { - final var requestBody = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var requestBody = new CreateCollectionRequestBody(); requestBody.name = "someName"; requestBody.replicationFactor = 123; requestBody.config = "someConfig"; @@ -137,13 +139,13 @@ public void testCreateRemoteMessageAllProperties() { requestBody.alias = "someAliasName"; requestBody.properties = Map.of("propName", "propValue"); requestBody.async = "someAsyncId"; - requestBody.router = new CreateCollectionAPI.RouterProperties(); + requestBody.router = new CreateCollectionRouterProperties(); requestBody.router.name = "someRouterName"; requestBody.router.field = "someField"; requestBody.nodeSet = List.of("node1", "node2"); requestBody.shuffleNodes = false; - final var remoteMessage = CreateCollectionAPI.createRemoteMessage(requestBody).getProperties(); + final var remoteMessage = CreateCollection.createRemoteMessage(requestBody).getProperties(); assertEquals("create", remoteMessage.get(QUEUE_OPERATION)); assertEquals("true", remoteMessage.get("fromApi")); @@ -168,11 +170,11 @@ public void testCreateRemoteMessageAllProperties() { @Test public void testNoReplicaCreationMessage() { - final var requestBody = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var requestBody = new CreateCollectionRequestBody(); requestBody.name = "someName"; requestBody.createReplicas = false; - final var remoteMessage = CreateCollectionAPI.createRemoteMessage(requestBody).getProperties(); + final var remoteMessage = CreateCollection.createRemoteMessage(requestBody).getProperties(); assertEquals("create", remoteMessage.get(QUEUE_OPERATION)); assertEquals("someName", remoteMessage.get(NAME)); @@ -196,8 +198,7 @@ public void testV1ParamsCanBeConvertedIntoV2RequestBody() { solrParams.set("router.field", "someField"); solrParams.set("property.somePropName", "somePropValue"); - final var v2RequestBody = - CreateCollectionAPI.CreateCollectionRequestBody.fromV1Params(solrParams, true); + final var v2RequestBody = CreateCollection.createRequestBodyFromV1Params(solrParams, true); assertEquals("someName", v2RequestBody.name); assertEquals(Integer.valueOf(123), v2RequestBody.numShards); @@ -223,8 +224,7 @@ public void testV1ParamsWithEmptyNodeSetCanBeConvertedIntoV2RequestBody() { solrParams.set(NAME, "someName"); solrParams.set(CREATE_NODE_SET, "EMPTY"); - final var v2RequestBody = - CreateCollectionAPI.CreateCollectionRequestBody.fromV1Params(solrParams, true); + final var v2RequestBody = CreateCollection.createRequestBodyFromV1Params(solrParams, true); assertEquals("someName", v2RequestBody.name); assertEquals(Boolean.FALSE, v2RequestBody.createReplicas); diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateReplicaAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateReplicaAPITest.java index d4e9772e866..2abe5d13397 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateReplicaAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateReplicaAPITest.java @@ -39,11 +39,12 @@ import java.util.List; import java.util.Map; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.CreateReplicaRequestBody; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.ModifiableSolrParams; import org.junit.Test; -/** Unit tests for {@link CreateReplicaAPI} */ +/** Unit tests for {@link CreateReplica} */ public class CreateReplicaAPITest extends SolrTestCaseJ4 { @Test public void testReportsErrorIfRequestBodyMissing() { @@ -51,7 +52,7 @@ public void testReportsErrorIfRequestBodyMissing() { expectThrows( SolrException.class, () -> { - final var api = new CreateReplicaAPI(null, null, null); + final var api = new CreateReplica(null, null, null); api.createReplica("someCollName", "someShardName", null); }); @@ -61,12 +62,12 @@ public void testReportsErrorIfRequestBodyMissing() { @Test public void testReportsErrorIfCollectionNameMissing() { - final var requestBody = new CreateReplicaAPI.AddReplicaRequestBody(); + final var requestBody = new CreateReplicaRequestBody(); final SolrException thrown = expectThrows( SolrException.class, () -> { - final var api = new CreateReplicaAPI(null, null, null); + final var api = new CreateReplica(null, null, null); api.createReplica(null, "shardName", requestBody); }); @@ -76,12 +77,12 @@ public void testReportsErrorIfCollectionNameMissing() { @Test public void testReportsErrorIfShardNameMissing() { - final var requestBody = new CreateReplicaAPI.AddReplicaRequestBody(); + final var requestBody = new CreateReplicaRequestBody(); final SolrException thrown = expectThrows( SolrException.class, () -> { - final var api = new CreateReplicaAPI(null, null, null); + final var api = new CreateReplica(null, null, null); api.createReplica("someCollectionName", null, requestBody); }); @@ -91,7 +92,7 @@ public void testReportsErrorIfShardNameMissing() { @Test public void testCreateRemoteMessageAllProperties() { - final var requestBody = new CreateReplicaAPI.AddReplicaRequestBody(); + final var requestBody = new CreateReplicaRequestBody(); requestBody.name = "someName"; requestBody.type = "NRT"; requestBody.instanceDir = "/some/dir1"; @@ -106,11 +107,11 @@ public void testCreateRemoteMessageAllProperties() { requestBody.skipNodeAssignment = Boolean.TRUE; requestBody.waitForFinalState = true; requestBody.followAliases = true; - requestBody.asyncId = "someAsyncId"; + requestBody.async = "someAsyncId"; requestBody.properties = Map.of("propName1", "propVal1", "propName2", "propVal2"); final var remoteMessage = - CreateReplicaAPI.createRemoteMessage("someCollectionName", "someShardName", requestBody) + CreateReplica.createRemoteMessage("someCollectionName", "someShardName", requestBody) .getProperties(); assertEquals(20, remoteMessage.size()); @@ -159,7 +160,7 @@ public void testCanConvertV1ParamsToV2RequestBody() { v1Params.add("property.propName1", "propVal1"); v1Params.add("property.propName2", "propVal2"); - final var requestBody = CreateReplicaAPI.AddReplicaRequestBody.fromV1Params(v1Params); + final var requestBody = CreateReplica.createRequestBodyFromV1Params(v1Params); assertEquals("someName", requestBody.name); assertEquals("NRT", requestBody.type); @@ -175,7 +176,7 @@ public void testCanConvertV1ParamsToV2RequestBody() { assertEquals(Boolean.TRUE, requestBody.skipNodeAssignment); assertEquals(Boolean.TRUE, requestBody.waitForFinalState); assertEquals(Boolean.TRUE, requestBody.followAliases); - assertEquals("someAsyncId", requestBody.asyncId); + assertEquals("someAsyncId", requestBody.async); assertEquals("propVal1", requestBody.properties.get("propName1")); assertEquals("propVal2", requestBody.properties.get("propName2")); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateShardAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateShardAPITest.java index 07b71d8a805..bb89fd326b5 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/CreateShardAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/CreateShardAPITest.java @@ -33,12 +33,13 @@ import java.util.List; import java.util.Map; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.CreateShardRequestBody; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.ModifiableSolrParams; import org.hamcrest.MatcherAssert; import org.junit.Test; -/** Unit tests for {@link CreateShardAPI} */ +/** Unit tests for {@link CreateShard} */ public class CreateShardAPITest extends SolrTestCaseJ4 { @Test @@ -47,7 +48,7 @@ public void testReportsErrorIfRequestBodyMissing() { expectThrows( SolrException.class, () -> { - final var api = new CreateShardAPI(null, null, null); + final var api = new CreateShard(null, null, null); api.createShard("someCollName", null); }); @@ -57,13 +58,13 @@ public void testReportsErrorIfRequestBodyMissing() { @Test public void testReportsErrorIfCollectionNameMissing() { - final var requestBody = new CreateShardAPI.CreateShardRequestBody(); + final var requestBody = new CreateShardRequestBody(); requestBody.shardName = "someShardName"; final SolrException thrown = expectThrows( SolrException.class, () -> { - final var api = new CreateShardAPI(null, null, null); + final var api = new CreateShard(null, null, null); api.createShard(null, requestBody); }); @@ -73,13 +74,13 @@ public void testReportsErrorIfCollectionNameMissing() { @Test public void testReportsErrorIfShardNameMissing() { - final var requestBody = new CreateShardAPI.CreateShardRequestBody(); + final var requestBody = new CreateShardRequestBody(); requestBody.shardName = null; final SolrException thrown = expectThrows( SolrException.class, () -> { - final var api = new CreateShardAPI(null, null, null); + final var api = new CreateShard(null, null, null); api.createShard("someCollectionName", requestBody); }); @@ -89,13 +90,13 @@ public void testReportsErrorIfShardNameMissing() { @Test public void testReportsErrorIfShardNameIsInvalid() { - final var requestBody = new CreateShardAPI.CreateShardRequestBody(); + final var requestBody = new CreateShardRequestBody(); requestBody.shardName = "invalid$shard@name"; final SolrException thrown = expectThrows( SolrException.class, () -> { - final var api = new CreateShardAPI(null, null, null); + final var api = new CreateShard(null, null, null); api.createShard("someCollectionName", requestBody); }); @@ -106,7 +107,7 @@ public void testReportsErrorIfShardNameIsInvalid() { @Test public void testCreateRemoteMessageAllProperties() { - final var requestBody = new CreateShardAPI.CreateShardRequestBody(); + final var requestBody = new CreateShardRequestBody(); requestBody.shardName = "someShardName"; requestBody.replicationFactor = 123; requestBody.nrtReplicas = 123; @@ -116,11 +117,11 @@ public void testCreateRemoteMessageAllProperties() { requestBody.nodeSet = List.of("node1", "node2"); requestBody.waitForFinalState = true; requestBody.followAliases = true; - requestBody.asyncId = "someAsyncId"; + requestBody.async = "someAsyncId"; requestBody.properties = Map.of("propName1", "propVal1", "propName2", "propVal2"); final var remoteMessage = - CreateShardAPI.createRemoteMessage("someCollectionName", requestBody).getProperties(); + CreateShard.createRemoteMessage("someCollectionName", requestBody).getProperties(); assertEquals(13, remoteMessage.size()); assertEquals("createshard", remoteMessage.get(QUEUE_OPERATION)); @@ -154,7 +155,7 @@ public void testCanConvertV1ParamsToV2RequestBody() { v1Params.add("property.propName1", "propVal1"); v1Params.add("property.propName2", "propVal2"); - final var requestBody = CreateShardAPI.CreateShardRequestBody.fromV1Params(v1Params); + final var requestBody = CreateShard.createRequestBodyFromV1Params(v1Params); assertEquals("someShardName", requestBody.shardName); assertEquals(Integer.valueOf(123), requestBody.replicationFactor); @@ -165,7 +166,7 @@ public void testCanConvertV1ParamsToV2RequestBody() { assertEquals(List.of("node1", "node2"), requestBody.nodeSet); assertEquals(Boolean.TRUE, requestBody.waitForFinalState); assertEquals(Boolean.TRUE, requestBody.followAliases); - assertEquals("someAsyncId", requestBody.asyncId); + assertEquals("someAsyncId", requestBody.async); assertEquals("propVal1", requestBody.properties.get("propName1")); assertEquals("propVal2", requestBody.properties.get("propName2")); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java index 52321b3f3c8..d4a303f2599 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.CreateCollectionRequestBody; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.ModifiableSolrParams; import org.hamcrest.MatcherAssert; @@ -136,7 +137,7 @@ public void testCreatesValidRemoteMessageForNewCollectionRestore() { requestBody.backupId = 123; requestBody.repository = "someRepositoryName"; requestBody.async = "someAsyncId"; - final var createParams = new CreateCollectionAPI.CreateCollectionRequestBody(); + final var createParams = new CreateCollectionRequestBody(); requestBody.createCollectionParams = createParams; createParams.config = "someConfig"; createParams.nrtReplicas = 123; diff --git a/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java b/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java index c0770c4912e..985085b7829 100644 --- a/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java +++ b/solr/core/src/test/org/apache/solr/jersey/PostRequestLoggingFilterTest.java @@ -26,7 +26,7 @@ import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.UriInfo; import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.handler.admin.api.CreateReplicaAPI; +import org.apache.solr.client.api.model.CreateReplicaRequestBody; import org.junit.BeforeClass; import org.junit.Test; @@ -122,10 +122,10 @@ public void testRequestBodyStringIsEmptyIfRequestBodyWasUnexpectedType() { @Test public void testRequestBodyRepresentedAsJsonWhenFound() { - final var requestBody = new CreateReplicaAPI.AddReplicaRequestBody(); + final var requestBody = new CreateReplicaRequestBody(); requestBody.name = "someReplicaName"; requestBody.type = "NRT"; - requestBody.asyncId = "someAsyncId"; + requestBody.async = "someAsyncId"; final var mockContext = mock(ContainerRequestContext.class); when(mockContext.getProperty(DESERIALIZED_REQUEST_BODY_KEY)).thenReturn(requestBody); diff --git a/solr/modules/gcs-repository/src/test/org/apache/solr/gcs/GCSInstallShardTest.java b/solr/modules/gcs-repository/src/test/org/apache/solr/gcs/GCSInstallShardTest.java index 51dc59d2ea0..3d0d30262ed 100644 --- a/solr/modules/gcs-repository/src/test/org/apache/solr/gcs/GCSInstallShardTest.java +++ b/solr/modules/gcs-repository/src/test/org/apache/solr/gcs/GCSInstallShardTest.java @@ -20,6 +20,7 @@ import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering; import org.apache.lucene.tests.util.LuceneTestCase; import org.apache.solr.cloud.api.collections.AbstractInstallShardTest; +import org.apache.solr.handler.admin.api.InstallShardData; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -27,7 +28,7 @@ * Tests validating that the 'Install Shard API' works when used with {@link GCSBackupRepository} * * @see org.apache.solr.cloud.api.collections.AbstractInstallShardTest - * @see org.apache.solr.handler.admin.api.InstallShardDataAPI + * @see InstallShardData */ // Backups do checksum validation against a footer value not present in 'SimpleText' @LuceneTestCase.SuppressCodecs({"SimpleText"}) diff --git a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3InstallShardTest.java b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3InstallShardTest.java index 189928f3dbb..ea21cb58877 100644 --- a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3InstallShardTest.java +++ b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3InstallShardTest.java @@ -21,6 +21,7 @@ import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering; import org.apache.lucene.tests.util.LuceneTestCase; import org.apache.solr.cloud.api.collections.AbstractInstallShardTest; +import org.apache.solr.handler.admin.api.InstallShardData; import org.junit.BeforeClass; import org.junit.ClassRule; import software.amazon.awssdk.regions.Region; @@ -29,7 +30,7 @@ * Tests validating that the 'Install Shard API' works when used with {@link S3BackupRepository} * * @see org.apache.solr.cloud.api.collections.AbstractInstallShardTest - * @see org.apache.solr.handler.admin.api.InstallShardDataAPI + * @see InstallShardData */ // Backups do checksum validation against a footer value not present in 'SimpleText' @LuceneTestCase.SuppressCodecs({"SimpleText"}) diff --git a/solr/solrj/src/resources/java-template/api.mustache b/solr/solrj/src/resources/java-template/api.mustache index 93108eae513..7f40f2332d7 100644 --- a/solr/solrj/src/resources/java-template/api.mustache +++ b/solr/solrj/src/resources/java-template/api.mustache @@ -34,13 +34,26 @@ import org.apache.solr.client.solrj.JacksonContentWriter; import org.apache.solr.client.solrj.request.RequestWriter.ContentWriter; import org.apache.solr.client.solrj.impl.InputStreamResponseParser; import org.apache.solr.client.solrj.ResponseParser; -{{#operations}} -{{#operation}} + +{{! Covers all top-level request/response model classes, but not necessarily any types nested in those classes }} {{#imports}} -import {{modelPackage}}.{{.}}; +import {{import}}; {{/imports}} + +{{! Imports any model types nested in request body POJOs }} +{{#operations}} +{{#operation}} +{{#bodyParam}} +{{#vars}} +{{#isModel}} +import {{modelPackage}}.{{dataType}}; +{{/isModel}} +{{/vars}} +{{/bodyParam}} {{/operation}} +{{/operations}} +{{#operations}} // WARNING: This class is generated from a Mustache template; any intended // changes should be made to the underlying template and not this file directly. diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractInstallShardTest.java b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractInstallShardTest.java index 70f1a38e18e..cc9d655f04c 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractInstallShardTest.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractInstallShardTest.java @@ -48,6 +48,7 @@ import org.apache.solr.core.DirectoryFactory; import org.apache.solr.core.SolrCore; import org.apache.solr.core.backup.repository.BackupRepository; +import org.apache.solr.handler.admin.api.InstallShardData; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -62,7 +63,7 @@ * repository. This base-class will populate that backup repository all data necessary for these * tests. * - * @see org.apache.solr.handler.admin.api.InstallShardDataAPI + * @see InstallShardData */ public abstract class AbstractInstallShardTest extends SolrCloudTestCase { From 3d120f586d079f3bb354ab5ed92ec4acad212c2b Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 20:46:47 +0200 Subject: [PATCH 16/29] Update io.grpc:grpc-* to v1.58.0 (#1769) Co-authored-by: Kevin Risden --- gradle/validation/jar-checks.gradle | 9 +++- solr/licenses/grpc-alts-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-alts-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-api-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-api-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-auth-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-auth-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-context-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-context-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-core-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-core-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-googleapis-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-googleapis-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-grpclb-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-grpclb-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-netty-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-netty-1.58.0.jar.sha1 | 1 + .../grpc-netty-shaded-1.56.0.jar.sha1 | 1 - .../grpc-netty-shaded-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-protobuf-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-protobuf-1.58.0.jar.sha1 | 1 + .../grpc-protobuf-lite-1.56.0.jar.sha1 | 1 - .../grpc-protobuf-lite-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-rls-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-rls-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-services-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-services-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-stub-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-stub-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-util-1.58.0.jar.sha1 | 1 + solr/licenses/grpc-xds-1.56.0.jar.sha1 | 1 - solr/licenses/grpc-xds-1.58.0.jar.sha1 | 1 + ...proto-google-common-protos-2.19.1.jar.sha1 | 1 - ...proto-google-common-protos-2.22.0.jar.sha1 | 1 + solr/licenses/protobuf-java-3.23.1.jar.sha1 | 1 - solr/licenses/protobuf-java-3.24.0.jar.sha1 | 1 + versions.lock | 49 ++++++++++--------- versions.props | 2 +- 38 files changed, 52 insertions(+), 43 deletions(-) delete mode 100644 solr/licenses/grpc-alts-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-alts-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-api-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-api-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-auth-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-auth-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-context-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-context-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-core-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-core-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-googleapis-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-googleapis-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-grpclb-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-grpclb-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-netty-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-netty-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-netty-shaded-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-netty-shaded-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-protobuf-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-protobuf-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-protobuf-lite-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-protobuf-lite-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-rls-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-rls-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-services-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-services-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-stub-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-stub-1.58.0.jar.sha1 create mode 100644 solr/licenses/grpc-util-1.58.0.jar.sha1 delete mode 100644 solr/licenses/grpc-xds-1.56.0.jar.sha1 create mode 100644 solr/licenses/grpc-xds-1.58.0.jar.sha1 delete mode 100644 solr/licenses/proto-google-common-protos-2.19.1.jar.sha1 create mode 100644 solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 delete mode 100644 solr/licenses/protobuf-java-3.23.1.jar.sha1 create mode 100644 solr/licenses/protobuf-java-3.24.0.jar.sha1 diff --git a/gradle/validation/jar-checks.gradle b/gradle/validation/jar-checks.gradle index da555ce9165..c3372b45c06 100644 --- a/gradle/validation/jar-checks.gradle +++ b/gradle/validation/jar-checks.gradle @@ -122,17 +122,24 @@ subprojects { } def visited = new HashSet<>() + def seenDeps = new HashSet<>() def infos = [] while (!queue.isEmpty()) { def dep = queue.removeFirst() + seenDeps.add(dep) // Skip any artifacts from other Solr Modules (they will be resolved there). if (dep.moduleGroup == "org.apache.solr") { continue } - queue.addAll(dep.children) + // Make sure we don't keep visiting the same children over and over again + dep.children.each { child -> + if (!seenDeps.contains(child)) { + queue.add(child) + } + } dep.moduleArtifacts.each { resolvedArtifact -> def file = resolvedArtifact.file if (visited.add(file)) { diff --git a/solr/licenses/grpc-alts-1.56.0.jar.sha1 b/solr/licenses/grpc-alts-1.56.0.jar.sha1 deleted file mode 100644 index f0bd97feeda..00000000000 --- a/solr/licenses/grpc-alts-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -33ad69068719833876c4dee260ff1a07c6305a40 diff --git a/solr/licenses/grpc-alts-1.58.0.jar.sha1 b/solr/licenses/grpc-alts-1.58.0.jar.sha1 new file mode 100644 index 00000000000..6019d9701e6 --- /dev/null +++ b/solr/licenses/grpc-alts-1.58.0.jar.sha1 @@ -0,0 +1 @@ +7e5ae496f9d7ae266abe30aa2848cbb3426b244e diff --git a/solr/licenses/grpc-api-1.56.0.jar.sha1 b/solr/licenses/grpc-api-1.56.0.jar.sha1 deleted file mode 100644 index b31f565d65e..00000000000 --- a/solr/licenses/grpc-api-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2149f665531882aa758dab24ba2556197c2c1fa6 diff --git a/solr/licenses/grpc-api-1.58.0.jar.sha1 b/solr/licenses/grpc-api-1.58.0.jar.sha1 new file mode 100644 index 00000000000..e3782a67a1c --- /dev/null +++ b/solr/licenses/grpc-api-1.58.0.jar.sha1 @@ -0,0 +1 @@ +1f761949cdfd418a5f662e0d22d2c95f60099c0b diff --git a/solr/licenses/grpc-auth-1.56.0.jar.sha1 b/solr/licenses/grpc-auth-1.56.0.jar.sha1 deleted file mode 100644 index 39dead62065..00000000000 --- a/solr/licenses/grpc-auth-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6b9e8782b4ec666e684f7480cd3a9e1602e5cb41 diff --git a/solr/licenses/grpc-auth-1.58.0.jar.sha1 b/solr/licenses/grpc-auth-1.58.0.jar.sha1 new file mode 100644 index 00000000000..15e05883800 --- /dev/null +++ b/solr/licenses/grpc-auth-1.58.0.jar.sha1 @@ -0,0 +1 @@ +d7489cc1fc90658d43bf18307972db6b5305bb45 diff --git a/solr/licenses/grpc-context-1.56.0.jar.sha1 b/solr/licenses/grpc-context-1.56.0.jar.sha1 deleted file mode 100644 index a91833df30d..00000000000 --- a/solr/licenses/grpc-context-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9f690e203247b54cb120fbd6885e829c23385872 diff --git a/solr/licenses/grpc-context-1.58.0.jar.sha1 b/solr/licenses/grpc-context-1.58.0.jar.sha1 new file mode 100644 index 00000000000..1a6b8003aa9 --- /dev/null +++ b/solr/licenses/grpc-context-1.58.0.jar.sha1 @@ -0,0 +1 @@ +eae1e3ed15e40e3bd5c080a9bbb9a8eb1770afb7 diff --git a/solr/licenses/grpc-core-1.56.0.jar.sha1 b/solr/licenses/grpc-core-1.56.0.jar.sha1 deleted file mode 100644 index f98291cb245..00000000000 --- a/solr/licenses/grpc-core-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f9515b43a4f7a2d09c712cb6bce2659f036b2aa6 diff --git a/solr/licenses/grpc-core-1.58.0.jar.sha1 b/solr/licenses/grpc-core-1.58.0.jar.sha1 new file mode 100644 index 00000000000..2c7016d5ee4 --- /dev/null +++ b/solr/licenses/grpc-core-1.58.0.jar.sha1 @@ -0,0 +1 @@ +5a0fa4249397504443f7609754bf0acb50e0a0c5 diff --git a/solr/licenses/grpc-googleapis-1.56.0.jar.sha1 b/solr/licenses/grpc-googleapis-1.56.0.jar.sha1 deleted file mode 100644 index 535c95c2076..00000000000 --- a/solr/licenses/grpc-googleapis-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3e0bfd8c00c14a7eb49914af818222f0fce900ec diff --git a/solr/licenses/grpc-googleapis-1.58.0.jar.sha1 b/solr/licenses/grpc-googleapis-1.58.0.jar.sha1 new file mode 100644 index 00000000000..60cd4edc0cd --- /dev/null +++ b/solr/licenses/grpc-googleapis-1.58.0.jar.sha1 @@ -0,0 +1 @@ +2327b1875165d99a9b0fe2b52e257dfe0af29d6a diff --git a/solr/licenses/grpc-grpclb-1.56.0.jar.sha1 b/solr/licenses/grpc-grpclb-1.56.0.jar.sha1 deleted file mode 100644 index c60f086ea29..00000000000 --- a/solr/licenses/grpc-grpclb-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a035c18bf9f9bb7b44a829f3079379deb95f8a47 diff --git a/solr/licenses/grpc-grpclb-1.58.0.jar.sha1 b/solr/licenses/grpc-grpclb-1.58.0.jar.sha1 new file mode 100644 index 00000000000..1760630283e --- /dev/null +++ b/solr/licenses/grpc-grpclb-1.58.0.jar.sha1 @@ -0,0 +1 @@ +1d4e60a8053e583fd23b002c468df715ce7ffdab diff --git a/solr/licenses/grpc-netty-1.56.0.jar.sha1 b/solr/licenses/grpc-netty-1.56.0.jar.sha1 deleted file mode 100644 index fdf976d6acb..00000000000 --- a/solr/licenses/grpc-netty-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7c3dfd5fe8d47a45fb9bcb3e35d8af38c415c773 diff --git a/solr/licenses/grpc-netty-1.58.0.jar.sha1 b/solr/licenses/grpc-netty-1.58.0.jar.sha1 new file mode 100644 index 00000000000..6f2a083cf72 --- /dev/null +++ b/solr/licenses/grpc-netty-1.58.0.jar.sha1 @@ -0,0 +1 @@ +96ae48464ce0496e08c6a1c27a75e2135214fc7a diff --git a/solr/licenses/grpc-netty-shaded-1.56.0.jar.sha1 b/solr/licenses/grpc-netty-shaded-1.56.0.jar.sha1 deleted file mode 100644 index fca54546cd5..00000000000 --- a/solr/licenses/grpc-netty-shaded-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c58703fd48769bc0e1629369c59c5a8a195fd8a8 diff --git a/solr/licenses/grpc-netty-shaded-1.58.0.jar.sha1 b/solr/licenses/grpc-netty-shaded-1.58.0.jar.sha1 new file mode 100644 index 00000000000..f37324555bc --- /dev/null +++ b/solr/licenses/grpc-netty-shaded-1.58.0.jar.sha1 @@ -0,0 +1 @@ +942622d5b4d908f9474ce5dbbdaa587e606cd9ed diff --git a/solr/licenses/grpc-protobuf-1.56.0.jar.sha1 b/solr/licenses/grpc-protobuf-1.56.0.jar.sha1 deleted file mode 100644 index 95c72e81fcc..00000000000 --- a/solr/licenses/grpc-protobuf-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -de43cf4ba0773cb1d6a32444ca487e3f35e6c6ac diff --git a/solr/licenses/grpc-protobuf-1.58.0.jar.sha1 b/solr/licenses/grpc-protobuf-1.58.0.jar.sha1 new file mode 100644 index 00000000000..a9934c4200b --- /dev/null +++ b/solr/licenses/grpc-protobuf-1.58.0.jar.sha1 @@ -0,0 +1 @@ +2e16536d0b9c27e7b28bf916a528aa92e9ea872d diff --git a/solr/licenses/grpc-protobuf-lite-1.56.0.jar.sha1 b/solr/licenses/grpc-protobuf-lite-1.56.0.jar.sha1 deleted file mode 100644 index 656ee7e8096..00000000000 --- a/solr/licenses/grpc-protobuf-lite-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -58e5b214be5422d5c217389617e5e760451e8abb diff --git a/solr/licenses/grpc-protobuf-lite-1.58.0.jar.sha1 b/solr/licenses/grpc-protobuf-lite-1.58.0.jar.sha1 new file mode 100644 index 00000000000..2f6c58b87af --- /dev/null +++ b/solr/licenses/grpc-protobuf-lite-1.58.0.jar.sha1 @@ -0,0 +1 @@ +60498c6688075a698ea3285587ed318aaf18d9db diff --git a/solr/licenses/grpc-rls-1.56.0.jar.sha1 b/solr/licenses/grpc-rls-1.56.0.jar.sha1 deleted file mode 100644 index 8769d38f5b8..00000000000 --- a/solr/licenses/grpc-rls-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c7752ad0fab7ca0e88eb2b00d4c1f49c3168a46a diff --git a/solr/licenses/grpc-rls-1.58.0.jar.sha1 b/solr/licenses/grpc-rls-1.58.0.jar.sha1 new file mode 100644 index 00000000000..dd79cc96487 --- /dev/null +++ b/solr/licenses/grpc-rls-1.58.0.jar.sha1 @@ -0,0 +1 @@ +705efa0a05acc2df20e369817f091bba59235d9f diff --git a/solr/licenses/grpc-services-1.56.0.jar.sha1 b/solr/licenses/grpc-services-1.56.0.jar.sha1 deleted file mode 100644 index bcdd9e8af99..00000000000 --- a/solr/licenses/grpc-services-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4c9b37b8228796c302a11b91d29775001082ab3f diff --git a/solr/licenses/grpc-services-1.58.0.jar.sha1 b/solr/licenses/grpc-services-1.58.0.jar.sha1 new file mode 100644 index 00000000000..593048c5127 --- /dev/null +++ b/solr/licenses/grpc-services-1.58.0.jar.sha1 @@ -0,0 +1 @@ +2dbe016ee80160b4dbb283ef8fc46a00294d952a diff --git a/solr/licenses/grpc-stub-1.56.0.jar.sha1 b/solr/licenses/grpc-stub-1.56.0.jar.sha1 deleted file mode 100644 index 9cd1024d906..00000000000 --- a/solr/licenses/grpc-stub-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -46e5bc1caa5fc3ea50aaf386658a1c2bb57d84c8 diff --git a/solr/licenses/grpc-stub-1.58.0.jar.sha1 b/solr/licenses/grpc-stub-1.58.0.jar.sha1 new file mode 100644 index 00000000000..b40e8a44d5a --- /dev/null +++ b/solr/licenses/grpc-stub-1.58.0.jar.sha1 @@ -0,0 +1 @@ +6bba82c4e3298ffbc2faa182821c98f6e3903d77 diff --git a/solr/licenses/grpc-util-1.58.0.jar.sha1 b/solr/licenses/grpc-util-1.58.0.jar.sha1 new file mode 100644 index 00000000000..4b3ffa0ade4 --- /dev/null +++ b/solr/licenses/grpc-util-1.58.0.jar.sha1 @@ -0,0 +1 @@ +1e95f31fe99adb642ec9d800ed950b438dfd0e50 diff --git a/solr/licenses/grpc-xds-1.56.0.jar.sha1 b/solr/licenses/grpc-xds-1.56.0.jar.sha1 deleted file mode 100644 index 76138252a99..00000000000 --- a/solr/licenses/grpc-xds-1.56.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2898653c90c8202ee1038d28d81f5cbedf2af545 diff --git a/solr/licenses/grpc-xds-1.58.0.jar.sha1 b/solr/licenses/grpc-xds-1.58.0.jar.sha1 new file mode 100644 index 00000000000..3effe9ca8af --- /dev/null +++ b/solr/licenses/grpc-xds-1.58.0.jar.sha1 @@ -0,0 +1 @@ +2d60586187fb19850ee49e28b1664f7a539a6f66 diff --git a/solr/licenses/proto-google-common-protos-2.19.1.jar.sha1 b/solr/licenses/proto-google-common-protos-2.19.1.jar.sha1 deleted file mode 100644 index e8153102f9a..00000000000 --- a/solr/licenses/proto-google-common-protos-2.19.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -77e361812583ea07ee248054ac5bd9f41dfa7532 diff --git a/solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 b/solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 new file mode 100644 index 00000000000..190d72d40b2 --- /dev/null +++ b/solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 @@ -0,0 +1 @@ +627126f6a05085dab0caba68dcdad118512975ef diff --git a/solr/licenses/protobuf-java-3.23.1.jar.sha1 b/solr/licenses/protobuf-java-3.23.1.jar.sha1 deleted file mode 100644 index be0b48e1975..00000000000 --- a/solr/licenses/protobuf-java-3.23.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -06a138d6bb6b7554b0999300ef8340d134d5575d diff --git a/solr/licenses/protobuf-java-3.24.0.jar.sha1 b/solr/licenses/protobuf-java-3.24.0.jar.sha1 new file mode 100644 index 00000000000..b1ebca307bd --- /dev/null +++ b/solr/licenses/protobuf-java-3.24.0.jar.sha1 @@ -0,0 +1 @@ +850a0efbee73911b2c30fa2238a549244524d31e diff --git a/versions.lock b/versions.lock index 89aeb26dba5..b85e90cd52d 100644 --- a/versions.lock +++ b/versions.lock @@ -30,7 +30,7 @@ com.google.api-client:google-api-client:2.2.0 (3 constraints: a132abfa) com.google.api.grpc:gapic-google-cloud-storage-v2:2.22.3-alpha (2 constraints: e822e638) com.google.api.grpc:grpc-google-cloud-storage-v2:2.22.3-alpha (2 constraints: e822e638) com.google.api.grpc:proto-google-cloud-storage-v2:2.22.3-alpha (2 constraints: e822e638) -com.google.api.grpc:proto-google-common-protos:2.19.1 (6 constraints: 334e2e90) +com.google.api.grpc:proto-google-common-protos:2.22.0 (6 constraints: 2f4e2390) com.google.api.grpc:proto-google-iam-v1:1.14.1 (2 constraints: e91ef3cc) com.google.apis:google-api-services-storage:v1-rev20230301-2.0.0 (2 constraints: ce258747) com.google.auth:google-auth-library-credentials:1.16.0 (6 constraints: 42584e93) @@ -41,10 +41,10 @@ com.google.cloud:google-cloud-core:2.18.1 (3 constraints: 502f7757) com.google.cloud:google-cloud-core-grpc:2.18.1 (1 constraints: 20100ea6) com.google.cloud:google-cloud-core-http:2.18.1 (1 constraints: 20100ea6) com.google.cloud:google-cloud-storage:2.22.3 (2 constraints: d31c1c27) -com.google.code.gson:gson:2.10.1 (6 constraints: 0c5507c0) -com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: 8a894b63) +com.google.code.gson:gson:2.10.1 (7 constraints: 005f69b0) +com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: 6e891f5a) com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37) -com.google.guava:guava:32.1.2-jre (25 constraints: 646b5109) +com.google.guava:guava:32.1.2-jre (26 constraints: fc7838d4) com.google.guava:guava-parent:32.1.2-jre (1 constraints: b80ba5eb) com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2 constraints: 4b35b0a0) com.google.http-client:google-http-client:1.43.1 (11 constraints: 2fbf7ea4) @@ -52,9 +52,9 @@ com.google.http-client:google-http-client-apache-v2:1.43.1 (2 constraints: b620e com.google.http-client:google-http-client-appengine:1.43.1 (2 constraints: da207181) com.google.http-client:google-http-client-gson:1.43.1 (7 constraints: 5a70c647) com.google.http-client:google-http-client-jackson2:1.43.1 (1 constraints: 1d1005a6) -com.google.j2objc:j2objc-annotations:2.8 (4 constraints: 3a3da718) +com.google.j2objc:j2objc-annotations:2.8 (5 constraints: a6460661) com.google.oauth-client:google-oauth-client:1.34.1 (2 constraints: b520b575) -com.google.protobuf:protobuf-java:3.23.1 (11 constraints: d095caae) +com.google.protobuf:protobuf-java:3.24.0 (11 constraints: d095beaf) com.google.protobuf:protobuf-java-util:3.23.1 (3 constraints: 302be32a) com.google.re2j:re2j:1.7 (2 constraints: 3814d46f) com.googlecode.json-simple:json-simple:1.1.1 (2 constraints: 321c78d2) @@ -94,36 +94,37 @@ io.dropwizard.metrics:metrics-graphite:4.2.20 (1 constraints: 3a05413b) io.dropwizard.metrics:metrics-jetty10:4.2.20 (1 constraints: 3a05413b) io.dropwizard.metrics:metrics-jmx:4.2.20 (1 constraints: 3a05413b) io.dropwizard.metrics:metrics-jvm:4.2.20 (1 constraints: 3a05413b) -io.grpc:grpc-alts:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-api:1.56.0 (5 constraints: a43684b7) -io.grpc:grpc-auth:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-context:1.56.0 (4 constraints: 2f2a2aec) -io.grpc:grpc-core:1.56.0 (2 constraints: ec1894f9) -io.grpc:grpc-googleapis:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-grpclb:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-netty:1.56.0 (1 constraints: 3e054b3b) -io.grpc:grpc-netty-shaded:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-protobuf:1.56.0 (2 constraints: 5d159cd7) -io.grpc:grpc-protobuf-lite:1.56.0 (2 constraints: 291aeb4d) -io.grpc:grpc-rls:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-services:1.56.0 (1 constraints: 20100fa6) -io.grpc:grpc-stub:1.56.0 (2 constraints: 5d159cd7) -io.grpc:grpc-xds:1.56.0 (1 constraints: 20100fa6) +io.grpc:grpc-alts:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-api:1.58.0 (6 constraints: 4b405ed0) +io.grpc:grpc-auth:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-context:1.58.0 (4 constraints: a22a191e) +io.grpc:grpc-core:1.58.0 (3 constraints: 4621731f) +io.grpc:grpc-googleapis:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-grpclb:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-netty:1.58.0 (1 constraints: 4005513b) +io.grpc:grpc-netty-shaded:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-protobuf:1.58.0 (2 constraints: 5f1500d8) +io.grpc:grpc-protobuf-lite:1.58.0 (2 constraints: 2b1af14d) +io.grpc:grpc-rls:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-services:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-stub:1.58.0 (2 constraints: 5f1500d8) +io.grpc:grpc-util:1.58.0 (3 constraints: 2d1a087d) +io.grpc:grpc-xds:1.58.0 (1 constraints: 20100fa6) io.netty:netty-buffer:4.1.99.Final (10 constraints: de999d1c) io.netty:netty-codec:4.1.99.Final (5 constraints: 79452589) io.netty:netty-codec-http:4.1.99.Final (3 constraints: 6124fbef) -io.netty:netty-codec-http2:4.1.99.Final (1 constraints: ed0a94cb) +io.netty:netty-codec-http2:4.1.99.Final (1 constraints: ea0a80cb) io.netty:netty-codec-socks:4.1.99.Final (1 constraints: 190fce6c) io.netty:netty-common:4.1.99.Final (12 constraints: 60b319a3) io.netty:netty-handler:4.1.99.Final (3 constraints: 782b0b3f) -io.netty:netty-handler-proxy:4.1.99.Final (1 constraints: ed0a94cb) +io.netty:netty-handler-proxy:4.1.99.Final (1 constraints: ea0a80cb) io.netty:netty-resolver:4.1.99.Final (2 constraints: 621a2533) io.netty:netty-tcnative-boringssl-static:2.0.61.Final (1 constraints: d10fc38e) io.netty:netty-tcnative-classes:2.0.61.Final (1 constraints: d113ea5d) io.netty:netty-transport:4.1.99.Final (9 constraints: 268c2655) io.netty:netty-transport-classes-epoll:4.1.99.Final (1 constraints: b6121b1f) io.netty:netty-transport-native-epoll:4.1.99.Final (1 constraints: da0f128f) -io.netty:netty-transport-native-unix-common:4.1.99.Final (4 constraints: 673d3899) +io.netty:netty-transport-native-unix-common:4.1.99.Final (4 constraints: 643d7197) io.opencensus:opencensus-api:0.31.1 (5 constraints: 924d4692) io.opencensus:opencensus-contrib-http-util:0.31.1 (3 constraints: 7232a9fc) io.opencensus:opencensus-proto:0.2.0 (1 constraints: e60fd595) diff --git a/versions.props b/versions.props index 4ced9981429..cc43d9abc31 100644 --- a/versions.props +++ b/versions.props @@ -21,7 +21,7 @@ commons-codec:commons-codec=1.16.0 commons-collections:commons-collections=3.2.2 commons-io:commons-io=2.14.0 io.dropwizard.metrics:*=4.2.20 -io.grpc:grpc-*=1.56.0 +io.grpc:grpc-*=1.58.0 io.netty:*=4.1.99.Final io.opentelemetry:opentelemetry-bom=1.30.1 io.prometheus:*=0.16.0 From 97c752f796253efac5aadc81570f6530de715425 Mon Sep 17 00:00:00 2001 From: Ovidiu M Date: Tue, 3 Oct 2023 22:54:06 +0300 Subject: [PATCH 17/29] Fixed API examples for node-roles (#1825) --- .../modules/deployment-guide/pages/node-roles.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/node-roles.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/node-roles.adoc index a6fff6c814e..a261d23e70c 100644 --- a/solr/solr-ref-guide/modules/deployment-guide/pages/node-roles.adoc +++ b/solr/solr-ref-guide/modules/deployment-guide/pages/node-roles.adoc @@ -165,7 +165,7 @@ Fetches the current node roles assignment for a specified role. *Input* [source,text] ---- -http://localhost:8983/api/node-roles/role/data +http://localhost:8983/api/cluster/node-roles/role/data ---- *Output* @@ -184,7 +184,7 @@ http://localhost:8983/api/node-roles/role/data *Input* [source,text] ---- -http://localhost:8983/api/node-roles/role/data/off +http://localhost:8983/api/cluster/node-roles/role/data/off ---- *Output* From 0c7832057925c1aee14c77de53b6165e4b13cb49 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Tue, 3 Oct 2023 22:02:04 +0200 Subject: [PATCH 18/29] Update dependency com.google.cloud:google-cloud-bom to v0.204.0 (#1745) --- solr/licenses/api-common-2.11.1.jar.sha1 | 1 - solr/licenses/api-common-2.16.0.jar.sha1 | 1 + .../auto-value-annotations-1.10.1.jar.sha1 | 1 - .../auto-value-annotations-1.10.2.jar.sha1 | 1 + ...gle-cloud-storage-v2-2.22.3-alpha.jar.sha1 | 1 - ...gle-cloud-storage-v2-2.27.0-alpha.jar.sha1 | 1 + solr/licenses/gax-2.28.1.jar.sha1 | 1 - solr/licenses/gax-2.33.0.jar.sha1 | 1 + solr/licenses/gax-grpc-2.28.1.jar.sha1 | 1 - solr/licenses/gax-grpc-2.33.0.jar.sha1 | 1 + solr/licenses/gax-httpjson-0.113.1.jar.sha1 | 1 - solr/licenses/gax-httpjson-2.33.0.jar.sha1 | 1 + ...ices-storage-v1-rev20230301-2.0.0.jar.sha1 | 1 - ...ices-storage-v1-rev20230907-2.0.0.jar.sha1 | 1 + ...e-auth-library-credentials-1.16.0.jar.sha1 | 1 - ...e-auth-library-credentials-1.19.0.jar.sha1 | 1 + ...e-auth-library-oauth2-http-1.16.0.jar.sha1 | 1 - ...e-auth-library-oauth2-http-1.19.0.jar.sha1 | 1 + .../google-cloud-core-2.18.1.jar.sha1 | 1 - .../google-cloud-core-2.23.0.jar.sha1 | 1 + .../google-cloud-core-grpc-2.18.1.jar.sha1 | 1 - .../google-cloud-core-grpc-2.23.0.jar.sha1 | 1 + .../google-cloud-core-http-2.18.1.jar.sha1 | 1 - .../google-cloud-core-http-2.23.0.jar.sha1 | 1 + .../google-cloud-nio-0.126.16.jar.sha1 | 1 - .../google-cloud-nio-0.127.3.jar.sha1 | 1 + .../google-cloud-storage-2.22.3.jar.sha1 | 1 - .../google-cloud-storage-2.27.0.jar.sha1 | 1 + .../google-http-client-1.43.1.jar.sha1 | 1 - .../google-http-client-1.43.3.jar.sha1 | 1 + ...ogle-http-client-apache-v2-1.43.1.jar.sha1 | 1 - ...ogle-http-client-apache-v2-1.43.3.jar.sha1 | 1 + ...ogle-http-client-appengine-1.43.1.jar.sha1 | 1 - ...ogle-http-client-appengine-1.43.3.jar.sha1 | 1 + .../google-http-client-gson-1.43.1.jar.sha1 | 1 - .../google-http-client-gson-1.43.3.jar.sha1 | 1 + ...oogle-http-client-jackson2-1.43.1.jar.sha1 | 1 - ...oogle-http-client-jackson2-1.43.3.jar.sha1 | 1 + ...gle-cloud-storage-v2-2.22.3-alpha.jar.sha1 | 1 - ...gle-cloud-storage-v2-2.27.0-alpha.jar.sha1 | 1 + ...gle-cloud-storage-v2-2.22.3-alpha.jar.sha1 | 1 - ...gle-cloud-storage-v2-2.27.0-alpha.jar.sha1 | 1 + ...proto-google-common-protos-2.22.0.jar.sha1 | 1 - ...proto-google-common-protos-2.24.0.jar.sha1 | 1 + .../proto-google-iam-v1-1.14.1.jar.sha1 | 1 - .../proto-google-iam-v1-1.19.0.jar.sha1 | 1 + .../protobuf-java-util-3.23.1.jar.sha1 | 1 - .../protobuf-java-util-3.23.2.jar.sha1 | 1 + versions.lock | 90 +++++++++---------- versions.props | 2 +- 50 files changed, 70 insertions(+), 70 deletions(-) delete mode 100644 solr/licenses/api-common-2.11.1.jar.sha1 create mode 100644 solr/licenses/api-common-2.16.0.jar.sha1 delete mode 100644 solr/licenses/auto-value-annotations-1.10.1.jar.sha1 create mode 100644 solr/licenses/auto-value-annotations-1.10.2.jar.sha1 delete mode 100644 solr/licenses/gapic-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 create mode 100644 solr/licenses/gapic-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 delete mode 100644 solr/licenses/gax-2.28.1.jar.sha1 create mode 100644 solr/licenses/gax-2.33.0.jar.sha1 delete mode 100644 solr/licenses/gax-grpc-2.28.1.jar.sha1 create mode 100644 solr/licenses/gax-grpc-2.33.0.jar.sha1 delete mode 100644 solr/licenses/gax-httpjson-0.113.1.jar.sha1 create mode 100644 solr/licenses/gax-httpjson-2.33.0.jar.sha1 delete mode 100644 solr/licenses/google-api-services-storage-v1-rev20230301-2.0.0.jar.sha1 create mode 100644 solr/licenses/google-api-services-storage-v1-rev20230907-2.0.0.jar.sha1 delete mode 100644 solr/licenses/google-auth-library-credentials-1.16.0.jar.sha1 create mode 100644 solr/licenses/google-auth-library-credentials-1.19.0.jar.sha1 delete mode 100644 solr/licenses/google-auth-library-oauth2-http-1.16.0.jar.sha1 create mode 100644 solr/licenses/google-auth-library-oauth2-http-1.19.0.jar.sha1 delete mode 100644 solr/licenses/google-cloud-core-2.18.1.jar.sha1 create mode 100644 solr/licenses/google-cloud-core-2.23.0.jar.sha1 delete mode 100644 solr/licenses/google-cloud-core-grpc-2.18.1.jar.sha1 create mode 100644 solr/licenses/google-cloud-core-grpc-2.23.0.jar.sha1 delete mode 100644 solr/licenses/google-cloud-core-http-2.18.1.jar.sha1 create mode 100644 solr/licenses/google-cloud-core-http-2.23.0.jar.sha1 delete mode 100644 solr/licenses/google-cloud-nio-0.126.16.jar.sha1 create mode 100644 solr/licenses/google-cloud-nio-0.127.3.jar.sha1 delete mode 100644 solr/licenses/google-cloud-storage-2.22.3.jar.sha1 create mode 100644 solr/licenses/google-cloud-storage-2.27.0.jar.sha1 delete mode 100644 solr/licenses/google-http-client-1.43.1.jar.sha1 create mode 100644 solr/licenses/google-http-client-1.43.3.jar.sha1 delete mode 100644 solr/licenses/google-http-client-apache-v2-1.43.1.jar.sha1 create mode 100644 solr/licenses/google-http-client-apache-v2-1.43.3.jar.sha1 delete mode 100644 solr/licenses/google-http-client-appengine-1.43.1.jar.sha1 create mode 100644 solr/licenses/google-http-client-appengine-1.43.3.jar.sha1 delete mode 100644 solr/licenses/google-http-client-gson-1.43.1.jar.sha1 create mode 100644 solr/licenses/google-http-client-gson-1.43.3.jar.sha1 delete mode 100644 solr/licenses/google-http-client-jackson2-1.43.1.jar.sha1 create mode 100644 solr/licenses/google-http-client-jackson2-1.43.3.jar.sha1 delete mode 100644 solr/licenses/grpc-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 create mode 100644 solr/licenses/grpc-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 delete mode 100644 solr/licenses/proto-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 create mode 100644 solr/licenses/proto-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 delete mode 100644 solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 create mode 100644 solr/licenses/proto-google-common-protos-2.24.0.jar.sha1 delete mode 100644 solr/licenses/proto-google-iam-v1-1.14.1.jar.sha1 create mode 100644 solr/licenses/proto-google-iam-v1-1.19.0.jar.sha1 delete mode 100644 solr/licenses/protobuf-java-util-3.23.1.jar.sha1 create mode 100644 solr/licenses/protobuf-java-util-3.23.2.jar.sha1 diff --git a/solr/licenses/api-common-2.11.1.jar.sha1 b/solr/licenses/api-common-2.11.1.jar.sha1 deleted file mode 100644 index 2d55b0c7e00..00000000000 --- a/solr/licenses/api-common-2.11.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6eeccbe67f09b0dc8d40e303b8be59584738f37d diff --git a/solr/licenses/api-common-2.16.0.jar.sha1 b/solr/licenses/api-common-2.16.0.jar.sha1 new file mode 100644 index 00000000000..65835e41761 --- /dev/null +++ b/solr/licenses/api-common-2.16.0.jar.sha1 @@ -0,0 +1 @@ +95ff9321582d6e85b1630ce8ab89abc37d39eecd diff --git a/solr/licenses/auto-value-annotations-1.10.1.jar.sha1 b/solr/licenses/auto-value-annotations-1.10.1.jar.sha1 deleted file mode 100644 index 37b6969245f..00000000000 --- a/solr/licenses/auto-value-annotations-1.10.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9e5162c15f6033c524134cba05a5e93dc1d37c4b diff --git a/solr/licenses/auto-value-annotations-1.10.2.jar.sha1 b/solr/licenses/auto-value-annotations-1.10.2.jar.sha1 new file mode 100644 index 00000000000..4a00a46e814 --- /dev/null +++ b/solr/licenses/auto-value-annotations-1.10.2.jar.sha1 @@ -0,0 +1 @@ +337954851fc17058d9b4b692b6e67e57b20e14f0 diff --git a/solr/licenses/gapic-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 b/solr/licenses/gapic-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 deleted file mode 100644 index 20012e8766d..00000000000 --- a/solr/licenses/gapic-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8ef0839383d64cbcaada169ac10fd911b3841d3b diff --git a/solr/licenses/gapic-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 b/solr/licenses/gapic-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 new file mode 100644 index 00000000000..9a336ff34fa --- /dev/null +++ b/solr/licenses/gapic-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 @@ -0,0 +1 @@ +4f3f76da0bc8327372db9c1c3c62eee0fb61a6c9 diff --git a/solr/licenses/gax-2.28.1.jar.sha1 b/solr/licenses/gax-2.28.1.jar.sha1 deleted file mode 100644 index 15fcbeb1c2b..00000000000 --- a/solr/licenses/gax-2.28.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -065730f8cba57358044ff3e2dc3992e75d83ed0a diff --git a/solr/licenses/gax-2.33.0.jar.sha1 b/solr/licenses/gax-2.33.0.jar.sha1 new file mode 100644 index 00000000000..9813a7e06ec --- /dev/null +++ b/solr/licenses/gax-2.33.0.jar.sha1 @@ -0,0 +1 @@ +951807b1ee6facb792aa112d2be6536edc42fd5e diff --git a/solr/licenses/gax-grpc-2.28.1.jar.sha1 b/solr/licenses/gax-grpc-2.28.1.jar.sha1 deleted file mode 100644 index cb93e16e027..00000000000 --- a/solr/licenses/gax-grpc-2.28.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b0454f2102378bae52fdc201923336efef99caee diff --git a/solr/licenses/gax-grpc-2.33.0.jar.sha1 b/solr/licenses/gax-grpc-2.33.0.jar.sha1 new file mode 100644 index 00000000000..dcfb107d016 --- /dev/null +++ b/solr/licenses/gax-grpc-2.33.0.jar.sha1 @@ -0,0 +1 @@ +a13dfd511f62fe0c85036ab5207553974ba08d4d diff --git a/solr/licenses/gax-httpjson-0.113.1.jar.sha1 b/solr/licenses/gax-httpjson-0.113.1.jar.sha1 deleted file mode 100644 index a6364d2fb27..00000000000 --- a/solr/licenses/gax-httpjson-0.113.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -312c7e5d0ebc5d407c99a73c76e2e076e818da14 diff --git a/solr/licenses/gax-httpjson-2.33.0.jar.sha1 b/solr/licenses/gax-httpjson-2.33.0.jar.sha1 new file mode 100644 index 00000000000..74d7c9fa04e --- /dev/null +++ b/solr/licenses/gax-httpjson-2.33.0.jar.sha1 @@ -0,0 +1 @@ +7107021ac58453dd7372f9e2be2c8419cd0b7c6e diff --git a/solr/licenses/google-api-services-storage-v1-rev20230301-2.0.0.jar.sha1 b/solr/licenses/google-api-services-storage-v1-rev20230301-2.0.0.jar.sha1 deleted file mode 100644 index 9e01e2a9005..00000000000 --- a/solr/licenses/google-api-services-storage-v1-rev20230301-2.0.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c9960d48021675f902c2a281af0aa1f1f247d4fd diff --git a/solr/licenses/google-api-services-storage-v1-rev20230907-2.0.0.jar.sha1 b/solr/licenses/google-api-services-storage-v1-rev20230907-2.0.0.jar.sha1 new file mode 100644 index 00000000000..0901e2c84a7 --- /dev/null +++ b/solr/licenses/google-api-services-storage-v1-rev20230907-2.0.0.jar.sha1 @@ -0,0 +1 @@ +2253d11659564359b9a540f7ff7cc6b60ac6176f diff --git a/solr/licenses/google-auth-library-credentials-1.16.0.jar.sha1 b/solr/licenses/google-auth-library-credentials-1.16.0.jar.sha1 deleted file mode 100644 index cea743caeeb..00000000000 --- a/solr/licenses/google-auth-library-credentials-1.16.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8ae88acbd572253c99c36e22b17efff388db3d12 diff --git a/solr/licenses/google-auth-library-credentials-1.19.0.jar.sha1 b/solr/licenses/google-auth-library-credentials-1.19.0.jar.sha1 new file mode 100644 index 00000000000..714d8f41c18 --- /dev/null +++ b/solr/licenses/google-auth-library-credentials-1.19.0.jar.sha1 @@ -0,0 +1 @@ +403601f0f42fb7099236a76188cd69c03d4fba11 diff --git a/solr/licenses/google-auth-library-oauth2-http-1.16.0.jar.sha1 b/solr/licenses/google-auth-library-oauth2-http-1.16.0.jar.sha1 deleted file mode 100644 index 5cad6eb7366..00000000000 --- a/solr/licenses/google-auth-library-oauth2-http-1.16.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4eeb81450d4f61725cbd047393ff5243c7cc6bd7 diff --git a/solr/licenses/google-auth-library-oauth2-http-1.19.0.jar.sha1 b/solr/licenses/google-auth-library-oauth2-http-1.19.0.jar.sha1 new file mode 100644 index 00000000000..89ff91d1ef8 --- /dev/null +++ b/solr/licenses/google-auth-library-oauth2-http-1.19.0.jar.sha1 @@ -0,0 +1 @@ +bcfcec571016784a2b5d45b8493204b77fade9fc diff --git a/solr/licenses/google-cloud-core-2.18.1.jar.sha1 b/solr/licenses/google-cloud-core-2.18.1.jar.sha1 deleted file mode 100644 index 8241cc2036a..00000000000 --- a/solr/licenses/google-cloud-core-2.18.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4da4cd01c39f333eb5bf8d581111dbf56b7cb3cd diff --git a/solr/licenses/google-cloud-core-2.23.0.jar.sha1 b/solr/licenses/google-cloud-core-2.23.0.jar.sha1 new file mode 100644 index 00000000000..fb3bc37c93c --- /dev/null +++ b/solr/licenses/google-cloud-core-2.23.0.jar.sha1 @@ -0,0 +1 @@ +199634a25d1ad967c85323664b3cdb44bc518525 diff --git a/solr/licenses/google-cloud-core-grpc-2.18.1.jar.sha1 b/solr/licenses/google-cloud-core-grpc-2.18.1.jar.sha1 deleted file mode 100644 index 65a4de8b46d..00000000000 --- a/solr/licenses/google-cloud-core-grpc-2.18.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -209135ed06ac92a6a684d0fda8b773253979409a diff --git a/solr/licenses/google-cloud-core-grpc-2.23.0.jar.sha1 b/solr/licenses/google-cloud-core-grpc-2.23.0.jar.sha1 new file mode 100644 index 00000000000..e56c965ac15 --- /dev/null +++ b/solr/licenses/google-cloud-core-grpc-2.23.0.jar.sha1 @@ -0,0 +1 @@ +59b8ba75c618b6cffbff301dfaa15913d0e28596 diff --git a/solr/licenses/google-cloud-core-http-2.18.1.jar.sha1 b/solr/licenses/google-cloud-core-http-2.18.1.jar.sha1 deleted file mode 100644 index c18176dbbd4..00000000000 --- a/solr/licenses/google-cloud-core-http-2.18.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9285b97a567c58662d056eb43979136b1724f3ce diff --git a/solr/licenses/google-cloud-core-http-2.23.0.jar.sha1 b/solr/licenses/google-cloud-core-http-2.23.0.jar.sha1 new file mode 100644 index 00000000000..ee345535581 --- /dev/null +++ b/solr/licenses/google-cloud-core-http-2.23.0.jar.sha1 @@ -0,0 +1 @@ +9913d0806fcfbfbc4a775f29865126ed8465464b diff --git a/solr/licenses/google-cloud-nio-0.126.16.jar.sha1 b/solr/licenses/google-cloud-nio-0.126.16.jar.sha1 deleted file mode 100644 index ba549a6191a..00000000000 --- a/solr/licenses/google-cloud-nio-0.126.16.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8c8ac53c0bd52e0889c745c963484e4571f92049 diff --git a/solr/licenses/google-cloud-nio-0.127.3.jar.sha1 b/solr/licenses/google-cloud-nio-0.127.3.jar.sha1 new file mode 100644 index 00000000000..23fb86e05ca --- /dev/null +++ b/solr/licenses/google-cloud-nio-0.127.3.jar.sha1 @@ -0,0 +1 @@ +e90d79e85b9651b47a3a364d42d261a132f4cce9 diff --git a/solr/licenses/google-cloud-storage-2.22.3.jar.sha1 b/solr/licenses/google-cloud-storage-2.22.3.jar.sha1 deleted file mode 100644 index 980f8f7b50b..00000000000 --- a/solr/licenses/google-cloud-storage-2.22.3.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2b8b634a1537ca1dfda8d959e6eae47a5dec9b7b diff --git a/solr/licenses/google-cloud-storage-2.27.0.jar.sha1 b/solr/licenses/google-cloud-storage-2.27.0.jar.sha1 new file mode 100644 index 00000000000..525565d7743 --- /dev/null +++ b/solr/licenses/google-cloud-storage-2.27.0.jar.sha1 @@ -0,0 +1 @@ +930b523d460ff88e0d9305b8133e125e8f62340e diff --git a/solr/licenses/google-http-client-1.43.1.jar.sha1 b/solr/licenses/google-http-client-1.43.1.jar.sha1 deleted file mode 100644 index 848698f60db..00000000000 --- a/solr/licenses/google-http-client-1.43.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2ef9413e65319ac448534b424522a2c48087d884 diff --git a/solr/licenses/google-http-client-1.43.3.jar.sha1 b/solr/licenses/google-http-client-1.43.3.jar.sha1 new file mode 100644 index 00000000000..c181604002e --- /dev/null +++ b/solr/licenses/google-http-client-1.43.3.jar.sha1 @@ -0,0 +1 @@ +a758b82e55a2f5f681e289c5ed384d3dbda6f3cd diff --git a/solr/licenses/google-http-client-apache-v2-1.43.1.jar.sha1 b/solr/licenses/google-http-client-apache-v2-1.43.1.jar.sha1 deleted file mode 100644 index 0ac157ef935..00000000000 --- a/solr/licenses/google-http-client-apache-v2-1.43.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -de73ac2958a45ca67651ce30f47eefa1f7497a6d diff --git a/solr/licenses/google-http-client-apache-v2-1.43.3.jar.sha1 b/solr/licenses/google-http-client-apache-v2-1.43.3.jar.sha1 new file mode 100644 index 00000000000..895f6f53ef1 --- /dev/null +++ b/solr/licenses/google-http-client-apache-v2-1.43.3.jar.sha1 @@ -0,0 +1 @@ +3e224b1b9e18dd28c89a764b1feea498ba952579 diff --git a/solr/licenses/google-http-client-appengine-1.43.1.jar.sha1 b/solr/licenses/google-http-client-appengine-1.43.1.jar.sha1 deleted file mode 100644 index 0b258e7fbb4..00000000000 --- a/solr/licenses/google-http-client-appengine-1.43.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c408b784269b46028c133768a439c266f8cbf553 diff --git a/solr/licenses/google-http-client-appengine-1.43.3.jar.sha1 b/solr/licenses/google-http-client-appengine-1.43.3.jar.sha1 new file mode 100644 index 00000000000..d30ff0dade7 --- /dev/null +++ b/solr/licenses/google-http-client-appengine-1.43.3.jar.sha1 @@ -0,0 +1 @@ +09d6cbdde6ea3469a67601a811b4e83de3e68a79 diff --git a/solr/licenses/google-http-client-gson-1.43.1.jar.sha1 b/solr/licenses/google-http-client-gson-1.43.1.jar.sha1 deleted file mode 100644 index 6202dd6c2ff..00000000000 --- a/solr/licenses/google-http-client-gson-1.43.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -06f000784f9813ee33f976e42822d98ffacf3dbd diff --git a/solr/licenses/google-http-client-gson-1.43.3.jar.sha1 b/solr/licenses/google-http-client-gson-1.43.3.jar.sha1 new file mode 100644 index 00000000000..1c41c903a2a --- /dev/null +++ b/solr/licenses/google-http-client-gson-1.43.3.jar.sha1 @@ -0,0 +1 @@ +252e267acf720ef6333488740a696a1d5e204639 diff --git a/solr/licenses/google-http-client-jackson2-1.43.1.jar.sha1 b/solr/licenses/google-http-client-jackson2-1.43.1.jar.sha1 deleted file mode 100644 index 35d9ae1d516..00000000000 --- a/solr/licenses/google-http-client-jackson2-1.43.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -995fbf865361d905218e486eb19313d4408ccfd9 diff --git a/solr/licenses/google-http-client-jackson2-1.43.3.jar.sha1 b/solr/licenses/google-http-client-jackson2-1.43.3.jar.sha1 new file mode 100644 index 00000000000..36ee05dbdb8 --- /dev/null +++ b/solr/licenses/google-http-client-jackson2-1.43.3.jar.sha1 @@ -0,0 +1 @@ +689da86469d19a01c726c8c24477b95c8a834bbe diff --git a/solr/licenses/grpc-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 b/solr/licenses/grpc-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 deleted file mode 100644 index c4a0d260b1b..00000000000 --- a/solr/licenses/grpc-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8e35429d93ecf7ac9d418b485ed606f5dbb5ed6c diff --git a/solr/licenses/grpc-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 b/solr/licenses/grpc-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 new file mode 100644 index 00000000000..c47f217dbb2 --- /dev/null +++ b/solr/licenses/grpc-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 @@ -0,0 +1 @@ +ea4b9de930aaf83060f43c47854753f448265bb1 diff --git a/solr/licenses/proto-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 b/solr/licenses/proto-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 deleted file mode 100644 index fac06d6e306..00000000000 --- a/solr/licenses/proto-google-cloud-storage-v2-2.22.3-alpha.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4ab626fc5d55da6a0a82bc53e4fc3ba913bf01b6 diff --git a/solr/licenses/proto-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 b/solr/licenses/proto-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 new file mode 100644 index 00000000000..6782c6f0a28 --- /dev/null +++ b/solr/licenses/proto-google-cloud-storage-v2-2.27.0-alpha.jar.sha1 @@ -0,0 +1 @@ +f781a31010b2fe5d826542b9df5963fb46eedd62 diff --git a/solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 b/solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 deleted file mode 100644 index 190d72d40b2..00000000000 --- a/solr/licenses/proto-google-common-protos-2.22.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -627126f6a05085dab0caba68dcdad118512975ef diff --git a/solr/licenses/proto-google-common-protos-2.24.0.jar.sha1 b/solr/licenses/proto-google-common-protos-2.24.0.jar.sha1 new file mode 100644 index 00000000000..48d76edbf9e --- /dev/null +++ b/solr/licenses/proto-google-common-protos-2.24.0.jar.sha1 @@ -0,0 +1 @@ +de4fb1eb296934a504e2ee2e4463b2ebbc2105c6 diff --git a/solr/licenses/proto-google-iam-v1-1.14.1.jar.sha1 b/solr/licenses/proto-google-iam-v1-1.14.1.jar.sha1 deleted file mode 100644 index 55bf279e359..00000000000 --- a/solr/licenses/proto-google-iam-v1-1.14.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c57a92ecad9a53693ace6315c0d1be33836d846e diff --git a/solr/licenses/proto-google-iam-v1-1.19.0.jar.sha1 b/solr/licenses/proto-google-iam-v1-1.19.0.jar.sha1 new file mode 100644 index 00000000000..a238684629c --- /dev/null +++ b/solr/licenses/proto-google-iam-v1-1.19.0.jar.sha1 @@ -0,0 +1 @@ +6550854f87febd902a5f1541086687212f3034b8 diff --git a/solr/licenses/protobuf-java-util-3.23.1.jar.sha1 b/solr/licenses/protobuf-java-util-3.23.1.jar.sha1 deleted file mode 100644 index 7aa51b1cd5f..00000000000 --- a/solr/licenses/protobuf-java-util-3.23.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ca14f0e8d57274bd9c3c407da9738d477f27a0de diff --git a/solr/licenses/protobuf-java-util-3.23.2.jar.sha1 b/solr/licenses/protobuf-java-util-3.23.2.jar.sha1 new file mode 100644 index 00000000000..df29f31e79c --- /dev/null +++ b/solr/licenses/protobuf-java-util-3.23.2.jar.sha1 @@ -0,0 +1 @@ +645a4c458c87399503a7a8e3d1dfbe043c94ea4d diff --git a/versions.lock b/versions.lock index b85e90cd52d..b1af4b4c1a8 100644 --- a/versions.lock +++ b/versions.lock @@ -8,7 +8,7 @@ com.cybozu.labs:langdetect:1.1-20120112 (1 constraints: 5c066d5e) com.epam:parso:2.0.14 (1 constraints: 8e0c750e) com.fasterxml.jackson:jackson-bom:2.15.2 (12 constraints: 4ef8ad55) com.fasterxml.jackson.core:jackson-annotations:2.15.2 (10 constraints: 9cbe6d17) -com.fasterxml.jackson.core:jackson-core:2.15.2 (13 constraints: 42026028) +com.fasterxml.jackson.core:jackson-core:2.15.2 (13 constraints: 4302e328) com.fasterxml.jackson.core:jackson-databind:2.15.2 (18 constraints: 8d63878e) com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2 (2 constraints: 631c9af1) com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2 (1 constraints: ba0eab66) @@ -22,41 +22,41 @@ com.github.spotbugs:spotbugs-annotations:4.7.3 (1 constraints: 10051736) com.github.stephenc.jcip:jcip-annotations:1.0-1 (3 constraints: c71d2c87) com.github.virtuald:curvesapi:1.07 (1 constraints: 9e0ac7c0) com.google.android:annotations:4.1.1.4 (2 constraints: b918820a) -com.google.api:api-common:2.11.1 (5 constraints: 754453b0) -com.google.api:gax:2.28.1 (5 constraints: 6e4a5b9d) -com.google.api:gax-grpc:2.28.1 (1 constraints: 211012a6) -com.google.api:gax-httpjson:0.113.1 (2 constraints: 3421b1bb) +com.google.api:api-common:2.16.0 (5 constraints: 8944c9b7) +com.google.api:gax:2.33.0 (5 constraints: 554a2894) +com.google.api:gax-grpc:2.33.0 (1 constraints: 1c1006a6) +com.google.api:gax-httpjson:2.33.0 (2 constraints: d8204481) com.google.api-client:google-api-client:2.2.0 (3 constraints: a132abfa) -com.google.api.grpc:gapic-google-cloud-storage-v2:2.22.3-alpha (2 constraints: e822e638) -com.google.api.grpc:grpc-google-cloud-storage-v2:2.22.3-alpha (2 constraints: e822e638) -com.google.api.grpc:proto-google-cloud-storage-v2:2.22.3-alpha (2 constraints: e822e638) -com.google.api.grpc:proto-google-common-protos:2.22.0 (6 constraints: 2f4e2390) -com.google.api.grpc:proto-google-iam-v1:1.14.1 (2 constraints: e91ef3cc) -com.google.apis:google-api-services-storage:v1-rev20230301-2.0.0 (2 constraints: ce258747) -com.google.auth:google-auth-library-credentials:1.16.0 (6 constraints: 42584e93) -com.google.auth:google-auth-library-oauth2-http:1.16.0 (5 constraints: 8444dfb5) -com.google.auto.value:auto-value-annotations:1.10.1 (5 constraints: 3f4c1051) -com.google.cloud:google-cloud-bom:0.197.0 (1 constraints: 7305c140) -com.google.cloud:google-cloud-core:2.18.1 (3 constraints: 502f7757) -com.google.cloud:google-cloud-core-grpc:2.18.1 (1 constraints: 20100ea6) -com.google.cloud:google-cloud-core-http:2.18.1 (1 constraints: 20100ea6) -com.google.cloud:google-cloud-storage:2.22.3 (2 constraints: d31c1c27) +com.google.api.grpc:gapic-google-cloud-storage-v2:2.27.0-alpha (2 constraints: ec228039) +com.google.api.grpc:grpc-google-cloud-storage-v2:2.27.0-alpha (2 constraints: ec228039) +com.google.api.grpc:proto-google-cloud-storage-v2:2.27.0-alpha (2 constraints: ec228039) +com.google.api.grpc:proto-google-common-protos:2.24.0 (6 constraints: 164efd83) +com.google.api.grpc:proto-google-iam-v1:1.19.0 (2 constraints: f11ecbcd) +com.google.apis:google-api-services-storage:v1-rev20230907-2.0.0 (2 constraints: e625234b) +com.google.auth:google-auth-library-credentials:1.19.0 (6 constraints: 5458e29b) +com.google.auth:google-auth-library-oauth2-http:1.19.0 (5 constraints: 934470bb) +com.google.auto.value:auto-value-annotations:1.10.2 (5 constraints: 434c5d52) +com.google.cloud:google-cloud-bom:0.204.0 (1 constraints: 68059940) +com.google.cloud:google-cloud-core:2.23.0 (3 constraints: 412fa654) +com.google.cloud:google-cloud-core-grpc:2.23.0 (1 constraints: 1b1002a6) +com.google.cloud:google-cloud-core-http:2.23.0 (1 constraints: 1b1002a6) +com.google.cloud:google-cloud-storage:2.27.0 (2 constraints: d71c8a27) com.google.code.gson:gson:2.10.1 (7 constraints: 005f69b0) com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: 6e891f5a) com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37) -com.google.guava:guava:32.1.2-jre (26 constraints: fc7838d4) +com.google.guava:guava:32.1.2-jre (26 constraints: a37b7b56) com.google.guava:guava-parent:32.1.2-jre (1 constraints: b80ba5eb) com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2 constraints: 4b35b0a0) -com.google.http-client:google-http-client:1.43.1 (11 constraints: 2fbf7ea4) -com.google.http-client:google-http-client-apache-v2:1.43.1 (2 constraints: b620e575) -com.google.http-client:google-http-client-appengine:1.43.1 (2 constraints: da207181) -com.google.http-client:google-http-client-gson:1.43.1 (7 constraints: 5a70c647) -com.google.http-client:google-http-client-jackson2:1.43.1 (1 constraints: 1d1005a6) -com.google.j2objc:j2objc-annotations:2.8 (5 constraints: a6460661) +com.google.http-client:google-http-client:1.43.3 (11 constraints: 3fbf96b4) +com.google.http-client:google-http-client-apache-v2:1.43.3 (2 constraints: b820e775) +com.google.http-client:google-http-client-appengine:1.43.3 (2 constraints: de20d381) +com.google.http-client:google-http-client-gson:1.43.3 (7 constraints: 6270684c) +com.google.http-client:google-http-client-jackson2:1.43.3 (1 constraints: 1f1007a6) +com.google.j2objc:j2objc-annotations:2.8 (4 constraints: 87367e23) com.google.oauth-client:google-oauth-client:1.34.1 (2 constraints: b520b575) -com.google.protobuf:protobuf-java:3.24.0 (11 constraints: d095beaf) -com.google.protobuf:protobuf-java-util:3.23.1 (3 constraints: 302be32a) -com.google.re2j:re2j:1.7 (2 constraints: 3814d46f) +com.google.protobuf:protobuf-java:3.24.0 (11 constraints: d6952db6) +com.google.protobuf:protobuf-java-util:3.23.2 (3 constraints: 332b702b) +com.google.re2j:re2j:1.7 (2 constraints: 3914d56f) com.googlecode.json-simple:json-simple:1.1.1 (2 constraints: 321c78d2) com.googlecode.juniversalchardet:juniversalchardet:1.0.3 (1 constraints: 5b0ce401) com.googlecode.plist:dd-plist:1.24 (1 constraints: 300c84f5) @@ -94,22 +94,22 @@ io.dropwizard.metrics:metrics-graphite:4.2.20 (1 constraints: 3a05413b) io.dropwizard.metrics:metrics-jetty10:4.2.20 (1 constraints: 3a05413b) io.dropwizard.metrics:metrics-jmx:4.2.20 (1 constraints: 3a05413b) io.dropwizard.metrics:metrics-jvm:4.2.20 (1 constraints: 3a05413b) -io.grpc:grpc-alts:1.58.0 (1 constraints: 20100fa6) -io.grpc:grpc-api:1.58.0 (6 constraints: 4b405ed0) -io.grpc:grpc-auth:1.58.0 (1 constraints: 20100fa6) -io.grpc:grpc-context:1.58.0 (4 constraints: a22a191e) -io.grpc:grpc-core:1.58.0 (3 constraints: 4621731f) -io.grpc:grpc-googleapis:1.58.0 (1 constraints: 20100fa6) -io.grpc:grpc-grpclb:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-alts:1.58.0 (1 constraints: 211012a6) +io.grpc:grpc-api:1.58.0 (6 constraints: 4c40f8d0) +io.grpc:grpc-auth:1.58.0 (1 constraints: 211012a6) +io.grpc:grpc-context:1.58.0 (4 constraints: a32a5d1e) +io.grpc:grpc-core:1.58.0 (3 constraints: 4721ad1f) +io.grpc:grpc-googleapis:1.58.0 (1 constraints: 211012a6) +io.grpc:grpc-grpclb:1.58.0 (1 constraints: 211012a6) io.grpc:grpc-netty:1.58.0 (1 constraints: 4005513b) -io.grpc:grpc-netty-shaded:1.58.0 (1 constraints: 20100fa6) -io.grpc:grpc-protobuf:1.58.0 (2 constraints: 5f1500d8) -io.grpc:grpc-protobuf-lite:1.58.0 (2 constraints: 2b1af14d) -io.grpc:grpc-rls:1.58.0 (1 constraints: 20100fa6) -io.grpc:grpc-services:1.58.0 (1 constraints: 20100fa6) -io.grpc:grpc-stub:1.58.0 (2 constraints: 5f1500d8) +io.grpc:grpc-netty-shaded:1.58.0 (1 constraints: 211012a6) +io.grpc:grpc-protobuf:1.58.0 (2 constraints: 601503d8) +io.grpc:grpc-protobuf-lite:1.58.0 (2 constraints: 2c1a134e) +io.grpc:grpc-rls:1.58.0 (1 constraints: 211012a6) +io.grpc:grpc-services:1.58.0 (1 constraints: 211012a6) +io.grpc:grpc-stub:1.58.0 (2 constraints: 601503d8) io.grpc:grpc-util:1.58.0 (3 constraints: 2d1a087d) -io.grpc:grpc-xds:1.58.0 (1 constraints: 20100fa6) +io.grpc:grpc-xds:1.58.0 (1 constraints: 211012a6) io.netty:netty-buffer:4.1.99.Final (10 constraints: de999d1c) io.netty:netty-codec:4.1.99.Final (5 constraints: 79452589) io.netty:netty-codec-http:4.1.99.Final (3 constraints: 6124fbef) @@ -270,7 +270,7 @@ org.carrot2:morfologik-fsa:2.1.9 (1 constraints: db0d9c36) org.carrot2:morfologik-polish:2.1.9 (1 constraints: d312541e) org.carrot2:morfologik-stemming:2.1.9 (2 constraints: d81fb300) org.ccil.cowan.tagsoup:tagsoup:1.2.1 (1 constraints: 5b0ce801) -org.checkerframework:checker-qual:3.37.0 (5 constraints: 0e499f13) +org.checkerframework:checker-qual:3.37.0 (5 constraints: 0f491d14) org.codehaus.janino:commons-compiler:3.1.9 (2 constraints: 3119a8ec) org.codehaus.janino:janino:3.1.9 (1 constraints: 650dbd2c) org.codehaus.woodstox:stax2-api:4.2.1 (2 constraints: 36152eaf) @@ -393,7 +393,7 @@ com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.2 (3 constraints: fc2e com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2 (4 constraints: 6d485635) com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2 (2 constraints: a91d3a60) com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.2 (2 constraints: 0c243f82) -com.google.cloud:google-cloud-nio:0.126.16 (1 constraints: cd0e267b) +com.google.cloud:google-cloud-nio:0.127.3 (1 constraints: 9a0e5e6c) com.nimbusds:content-type:2.2 (1 constraints: d80b68eb) com.nimbusds:lang-tag:1.7 (1 constraints: dc0b6aeb) com.nimbusds:nimbus-jose-jwt:9.30.2 (1 constraints: 700c4b10) diff --git a/versions.props b/versions.props index cc43d9abc31..d12da6f2b50 100644 --- a/versions.props +++ b/versions.props @@ -9,7 +9,7 @@ com.fasterxml.jackson:jackson-bom=2.15.2 com.github.ben-manes.caffeine:caffeine=3.1.8 com.github.spotbugs:*=4.7.3 com.github.stephenc.jcip:jcip-annotations=1.0-1 -com.google.cloud:google-cloud-bom=0.197.0 +com.google.cloud:google-cloud-bom=0.204.0 com.google.errorprone:*=2.22.0 com.google.guava:guava=32.1.2-jre com.google.re2j:re2j=1.7 From 70abd8db8980a91913f28771247a3c8418e2840e Mon Sep 17 00:00:00 2001 From: Chris Hostetter Date: Tue, 3 Oct 2023 13:35:10 -0700 Subject: [PATCH 19/29] SOLR-17000: Fix ExecutorUtilTest to eliminate concurrency assumptions --- .../solr/common/util/ExecutorUtilTest.java | 180 ++++++++++++------ 1 file changed, 124 insertions(+), 56 deletions(-) diff --git a/solr/solrj/src/test/org/apache/solr/common/util/ExecutorUtilTest.java b/solr/solrj/src/test/org/apache/solr/common/util/ExecutorUtilTest.java index c3fc2137018..a9df98a296b 100644 --- a/solr/solrj/src/test/org/apache/solr/common/util/ExecutorUtilTest.java +++ b/solr/solrj/src/test/org/apache/solr/common/util/ExecutorUtilTest.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -32,74 +33,141 @@ import org.junit.Test; public class ExecutorUtilTest extends SolrTestCase { + + private static final long MAX_AWAIT_TERMINATION_ARG_MS = 100; + + /** + * The maximum amount of time we're willing to let the test wait for any type of blocking action, + * no matter ow slow our CPU is. Any thing that exceeds this time is presumably a bug + */ + private static final long MAX_SANE_WAIT_DURRATION_MS = 2_000; + + /** Test that if there is a non interruptable thread that awaitTermination eventually returns. */ @Test // Must prevent runaway failures so limit this to short timeframe in case of failure - @Timeout(millis = 3000) - public void testExecutorUtilAwaitsTerminationEnds() throws Exception { - final long awaitTerminationTimeout = 100; - final long threadTimeoutDuration = 3 * awaitTerminationTimeout; - final TimeUnit testTimeUnit = TimeUnit.MILLISECONDS; + @Timeout(millis = 5_000) + public void testExecutorUtilAwaitsTerminationWhenTaskIgnoresInterupt() throws Exception { - // check that if there is a non interruptable thread that awaitTermination eventually returns. - - ExecutorService executorService = + final Worker w = new Worker(false); + final ExecutorService executorService = ExecutorUtil.newMDCAwareSingleThreadExecutor( new SolrNamedThreadFactory(this.getClass().getSimpleName() + "non-interruptable")); - final AtomicInteger interruptCount = new AtomicInteger(); - Future nonInterruptableFuture = - executorService.submit( - () -> getTestThread(threadTimeoutDuration, testTimeUnit, interruptCount, false)); - executorService.shutdownNow(); - assertThrows( - RuntimeException.class, - () -> - ExecutorUtil.awaitTermination(executorService, awaitTerminationTimeout, testTimeUnit)); - - // Thread should not have finished in await termination. - assertFalse(nonInterruptableFuture.isDone()); - assertTrue(interruptCount.get() > 0); - - // Thread should have finished by now. - Thread.sleep(TimeUnit.MILLISECONDS.convert(threadTimeoutDuration, testTimeUnit)); - assertTrue(nonInterruptableFuture.isDone()); - assertTrue(nonInterruptableFuture.get()); - - // check that if there is an interruptable thread that awaitTermination forcefully returns. - - ExecutorService executorService2 = + try { + final Future f = executorService.submit(w); + + assertTrue("Worker didn't start in a sane amount of time", w.awaitWorkerStart()); + executorService.shutdownNow(); + assertTrue( + "Worker not interupted by shutdown in a sane amount of time", + w.awaitWorkerInteruptedAtLeastOnce()); + assertThrows( + RuntimeException.class, + () -> + ExecutorUtil.awaitTermination( + executorService, MAX_AWAIT_TERMINATION_ARG_MS, TimeUnit.MILLISECONDS)); + + assertFalse("Worker should not finish due to shutdown or awaitTermination", f.isDone()); + assertTrue("test sanity check: WTF? how did we get here?", w.getNumberOfInterupts() > 0); + + // Worker should finish if we let it + w.tellWorkerToFinish(); + assertTrue(f.get(MAX_SANE_WAIT_DURRATION_MS, TimeUnit.MILLISECONDS)); + } finally { + w.tellWorkerToFinish(); + ExecutorUtil.shutdownNowAndAwaitTermination(executorService); + } + } + + /** Test that if there is an interruptable thread that awaitTermination forcefully returns. */ + @Test + // Must prevent runaway failures so limit this to short timeframe in case of failure + @Timeout(millis = 5_000) + public void testExecutorUtilAwaitsTerminationWhenTaskRespectsInterupt() throws Exception { + + final Worker w = new Worker(true); + final ExecutorService executorService = ExecutorUtil.newMDCAwareSingleThreadExecutor( new SolrNamedThreadFactory(this.getClass().getSimpleName() + "interruptable")); - interruptCount.set(0); - Future interruptableFuture = - executorService2.submit( - () -> getTestThread(threadTimeoutDuration, testTimeUnit, interruptCount, true)); - executorService2.shutdownNow(); - ExecutorUtil.awaitTermination(executorService2, awaitTerminationTimeout, testTimeUnit); - - // Thread should have been interrupted. - assertTrue(interruptableFuture.isDone()); - assertTrue(interruptCount.get() > 0); - assertFalse(interruptableFuture.get()); + try { + final Future f = executorService.submit(w); + + assertTrue("Worker didn't start in a sane amount of time", w.awaitWorkerStart()); + executorService.shutdownNow(); + ExecutorUtil.awaitTermination( + executorService, MAX_AWAIT_TERMINATION_ARG_MS, TimeUnit.MILLISECONDS); + + // Worker should finish on it's own after the interupt + assertTrue( + "Worker not interupted in a sane amount of time", w.awaitWorkerInteruptedAtLeastOnce()); + assertFalse(f.get(MAX_SANE_WAIT_DURRATION_MS, TimeUnit.MILLISECONDS)); + assertTrue("test sanity check: WTF? how did we get here?", w.getNumberOfInterupts() > 0); + + } finally { + w.tellWorkerToFinish(); + ExecutorUtil.shutdownNowAndAwaitTermination(executorService); + } } - private boolean getTestThread( - long threadTimeoutDuration, - TimeUnit testTimeUnit, - AtomicInteger interruptCount, - boolean interruptable) { - TimeOut threadTimeout = new TimeOut(threadTimeoutDuration, testTimeUnit, TimeSource.NANO_TIME); - while (!threadTimeout.hasTimedOut()) { - try { - threadTimeout.sleep(TimeUnit.MILLISECONDS.convert(threadTimeoutDuration, testTimeUnit)); - } catch (InterruptedException interruptedException) { - interruptCount.incrementAndGet(); - if (interruptable) { - Thread.currentThread().interrupt(); - return false; // didn't run full time + private static final class Worker implements Callable { + // how we communiate out to our caller + private final CountDownLatch taskStartedLatch = new CountDownLatch(1); + private final CountDownLatch gotFirstInteruptLatch = new CountDownLatch(1); + private final AtomicInteger interruptCount = new AtomicInteger(0); + + // how our caller communicates with us + private final CountDownLatch allowedToFinishLatch = new CountDownLatch(1); + private final boolean interruptable; + + public Worker(final boolean interruptable) { + this.interruptable = interruptable; + } + + /** Returns false if worker doesn't start in a sane amount of time */ + public boolean awaitWorkerStart() throws InterruptedException { + return taskStartedLatch.await(MAX_SANE_WAIT_DURRATION_MS, TimeUnit.MILLISECONDS); + } + + /** Returns false if worker didn't recieve interupt in a sane amount of time */ + public boolean awaitWorkerInteruptedAtLeastOnce() throws InterruptedException { + return gotFirstInteruptLatch.await(MAX_SANE_WAIT_DURRATION_MS, TimeUnit.MILLISECONDS); + } + + public int getNumberOfInterupts() { + return interruptCount.get(); + } + + public void tellWorkerToFinish() { + allowedToFinishLatch.countDown(); + } + + @Override + public Boolean call() { + // aboslute last resort timeout to prevent infinite while loop + final TimeOut threadTimeout = + new TimeOut(MAX_SANE_WAIT_DURRATION_MS, TimeUnit.MILLISECONDS, TimeSource.NANO_TIME); + + while (!threadTimeout.hasTimedOut()) { + try { + + // this must be inside the try block, so we'll still catch the InterruptedException if our + // caller shutsdown & awaits termination before we get a chance to start await'ing... + taskStartedLatch.countDown(); + + if (allowedToFinishLatch.await( + threadTimeout.timeLeft(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS)) { + return true; // ran until we were told to stop + } + } catch (InterruptedException interruptedException) { + interruptCount.incrementAndGet(); + gotFirstInteruptLatch.countDown(); + if (interruptable) { + Thread.currentThread().interrupt(); + return false; // was explicitly interupted + } } } + throw new RuntimeException("Sane timeout elapsed before worker finished"); } - return true; // ran full time } @Test From f88891e6bb80c3003ca6ba76c55db3f4159cf524 Mon Sep 17 00:00:00 2001 From: Tomas Eduardo Fernandez Lobbe Date: Tue, 3 Oct 2023 15:02:56 -0700 Subject: [PATCH 20/29] SOLR-16852: Let backups have custom key/values (#1739) --- solr/CHANGES.txt | 2 + .../api/model/CollectionBackupDetails.java | 1 + .../solr/cloud/api/collections/BackupCmd.java | 10 ++- .../solr/core/backup/BackupProperties.java | 68 +++++++++++++++---- .../admin/api/CreateCollectionBackupAPI.java | 7 ++ .../LocalFSCloudIncrementalBackupTest.java | 68 +++++++++++++++++++ .../cloud/api/collections/PurgeGraphTest.java | 6 +- .../pages/collection-management.adoc | 10 ++- .../solrj/request/CollectionAdminRequest.java | 9 +++ .../AbstractIncrementalBackupTest.java | 33 ++++++++- 10 files changed, 198 insertions(+), 16 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index bc1564fc028..ef7e37ea61e 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -105,6 +105,8 @@ New Features * SOLR-15367: Convert "rid" functionality into a default Tracer (Alex Deparvu, David Smiley) +* SOLR-16852: Backups now allow metadata to be added as key-values (Tomás Fernández Löbbe) + Improvements --------------------- * SOLR-16490: `/admin/cores?action=backupcore` now has a v2 equivalent, available at diff --git a/solr/api/src/java/org/apache/solr/client/api/model/CollectionBackupDetails.java b/solr/api/src/java/org/apache/solr/client/api/model/CollectionBackupDetails.java index a46529baab4..94d18f8682f 100644 --- a/solr/api/src/java/org/apache/solr/client/api/model/CollectionBackupDetails.java +++ b/solr/api/src/java/org/apache/solr/client/api/model/CollectionBackupDetails.java @@ -35,4 +35,5 @@ public class CollectionBackupDetails { public String configsetName; @JsonProperty public String collectionAlias; + @JsonProperty public Map extraProperties; } diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java index 5d4aaf7fd79..151cbeeee1a 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java @@ -29,6 +29,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Optional; import org.apache.solr.cloud.api.collections.CollectionHandlingUtils.ShardRequestTracker; import org.apache.solr.common.SolrException; @@ -68,6 +69,7 @@ public BackupCmd(CollectionCommandContext ccc) { this.ccc = ccc; } + @SuppressWarnings("unchecked") @Override public void call(ClusterState state, ZkNodeProps message, NamedList results) throws Exception { @@ -91,8 +93,11 @@ public void call(ClusterState state, ZkNodeProps message, NamedList resu .getCollection(collectionName) .getConfigName(); + Map customProps = (Map) message.get("extraProperties"); + BackupProperties backupProperties = - BackupProperties.create(backupName, collectionName, extCollectionName, configName); + BackupProperties.create( + backupName, collectionName, extCollectionName, configName, customProps); CoreContainer cc = ccc.getCoreContainer(); try (BackupRepository repository = cc.newBackupRepository(repo)) { @@ -367,6 +372,9 @@ private NamedList aggregateResults( } aggRsp.add("indexVersion", backupProps.getIndexVersion()); aggRsp.add("startTime", backupProps.getStartTime()); + if (backupProps.getExtraProperties() != null) { + aggRsp.add("extraProperties", backupProps.getExtraProperties()); + } // Optional options for backups Optional indexFileCount = Optional.empty(); diff --git a/solr/core/src/java/org/apache/solr/core/backup/BackupProperties.java b/solr/core/src/java/org/apache/solr/core/backup/BackupProperties.java index 1e452bb516d..dcc8509b574 100644 --- a/solr/core/src/java/org/apache/solr/core/backup/BackupProperties.java +++ b/solr/core/src/java/org/apache/solr/core/backup/BackupProperties.java @@ -48,18 +48,33 @@ */ public class BackupProperties { + private static final String EXTRA_PROPERTY_PREFIX = "property."; + private double indexSizeMB; private int indexFileCount; - private Properties properties; + private final Properties properties; + + private final Map extraProperties; - private BackupProperties(Properties properties) { + private BackupProperties(Properties properties, Map extraProperties) { this.properties = properties; + if (extraProperties == null) { + extraProperties = Map.of(); + } else if (extraProperties.keySet().stream().anyMatch(String::isEmpty)) { + throw new IllegalArgumentException("Can't have an extra property with an empty key"); + } + this.extraProperties = extraProperties; } public static BackupProperties create( - String backupName, String collectionName, String extCollectionName, String configName) { - Properties properties = new Properties(); + String backupName, + String collectionName, + String extCollectionName, + String configName, + Map extraProperties) { + final Properties properties = new Properties(); + properties.put(BackupManager.BACKUP_NAME_PROP, backupName); properties.put(BackupManager.COLLECTION_NAME_PROP, collectionName); properties.put(BackupManager.COLLECTION_ALIAS_PROP, extCollectionName); @@ -67,7 +82,7 @@ public static BackupProperties create( properties.put(BackupManager.START_TIME_PROP, Instant.now().toString()); properties.put(BackupManager.INDEX_VERSION_PROP, Version.LATEST.toString()); - return new BackupProperties(properties); + return new BackupProperties(properties, extraProperties); } public static Optional readFromLatest( @@ -93,10 +108,29 @@ public static BackupProperties readFrom( repository.openInput(backupPath, fileName, IOContext.DEFAULT)), StandardCharsets.UTF_8)) { props.load(is); - return new BackupProperties(props); + Map extraProperties = extractExtraProperties(props); + return new BackupProperties(props, extraProperties); } } + private static Map extractExtraProperties(Properties props) { + Map extraProperties = new HashMap<>(); + props + .entrySet() + .removeIf( + e -> { + String entryKey = e.getKey().toString(); + if (entryKey.startsWith(EXTRA_PROPERTY_PREFIX)) { + extraProperties.put( + entryKey.substring(EXTRA_PROPERTY_PREFIX.length()), + String.valueOf(e.getValue())); + return true; + } + return false; + }); + return extraProperties; + } + public List getAllShardBackupMetadataFiles() { return properties.entrySet().stream() .filter(entry -> entry.getKey().toString().endsWith(".md")) @@ -128,10 +162,14 @@ private String getKeyForShardBackupId(String shardName) { } public void store(Writer propsWriter) throws IOException { - properties.put("indexSizeMB", String.valueOf(indexSizeMB)); - properties.put("indexFileCount", String.valueOf(indexFileCount)); - properties.put(BackupManager.END_TIME_PROP, Instant.now().toString()); - properties.store(propsWriter, "Backup properties file"); + Properties propertiesCopy = (Properties) properties.clone(); + propertiesCopy.put("indexSizeMB", String.valueOf(indexSizeMB)); + propertiesCopy.put("indexFileCount", String.valueOf(indexFileCount)); + propertiesCopy.put(BackupManager.END_TIME_PROP, Instant.now().toString()); + if (extraProperties != null && !extraProperties.isEmpty()) { + extraProperties.forEach((k, v) -> propertiesCopy.put(EXTRA_PROPERTY_PREFIX + k, v)); + } + propertiesCopy.store(propsWriter, "Backup properties file"); } public String getCollection() { @@ -158,14 +196,20 @@ public String getIndexVersion() { return properties.getProperty(BackupManager.INDEX_VERSION_PROP); } + public Map getExtraProperties() { + return extraProperties; + } + public Map getDetails() { final Map result = new HashMap<>(); - properties.entrySet().stream() - .forEach(entry -> result.put(entry.getKey().toString(), entry.getValue())); + properties.entrySet().forEach(entry -> result.put(entry.getKey().toString(), entry.getValue())); result.remove(BackupManager.BACKUP_NAME_PROP); result.remove(BackupManager.COLLECTION_NAME_PROP); result.put("indexSizeMB", Double.valueOf(properties.getProperty("indexSizeMB"))); result.put("indexFileCount", Integer.valueOf(properties.getProperty("indexFileCount"))); + if (extraProperties != null && !extraProperties.isEmpty()) { + result.put("extraProperties", extraProperties); + } Map shardBackupIds = new HashMap<>(); Iterator keyIt = result.keySet().iterator(); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackupAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackupAPI.java index 0339b29a887..d37688f2162 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackupAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CreateCollectionBackupAPI.java @@ -22,6 +22,7 @@ import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP; import static org.apache.solr.common.params.CollectionAdminParams.FOLLOW_ALIASES; import static org.apache.solr.common.params.CollectionAdminParams.INDEX_BACKUP_STRATEGY; +import static org.apache.solr.common.params.CollectionAdminParams.PROPERTY_PREFIX; import static org.apache.solr.common.params.CommonAdminParams.ASYNC; import static org.apache.solr.common.params.CommonParams.NAME; import static org.apache.solr.common.params.CoreAdminParams.BACKUP_CONFIGSET; @@ -31,6 +32,7 @@ import static org.apache.solr.common.params.CoreAdminParams.COMMIT_NAME; import static org.apache.solr.common.params.CoreAdminParams.MAX_NUM_BACKUP_POINTS; import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT; +import static org.apache.solr.handler.admin.api.CreateCollection.copyPrefixedPropertiesWithoutPrefix; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; import com.fasterxml.jackson.annotation.JsonProperty; @@ -166,6 +168,9 @@ public static CreateCollectionBackupRequestBody createRequestBodyFromV1Params(So requestBody.incremental = params.getBool(BACKUP_INCREMENTAL); requestBody.backupConfigset = params.getBool(BACKUP_CONFIGSET); requestBody.maxNumBackupPoints = params.getInt(MAX_NUM_BACKUP_POINTS); + requestBody.extraProperties = + copyPrefixedPropertiesWithoutPrefix(params, new HashMap<>(), PROPERTY_PREFIX); + requestBody.async = params.get(ASYNC); return requestBody; @@ -192,6 +197,7 @@ public static class CreateCollectionBackupRequestBody implements JacksonReflectM @JsonProperty public Boolean backupConfigset; @JsonProperty public Integer maxNumBackupPoints; @JsonProperty public String async; + @JsonProperty public Map extraProperties; } public static class CreateCollectionBackupResponseBody @@ -215,6 +221,7 @@ public static class CollectionBackupDetails implements JacksonReflectMapWriter { @JsonProperty public Integer indexFileCount; @JsonProperty public Integer uploadedIndexFileCount; @JsonProperty public Double indexSizeMB; + @JsonProperty public Map extraProperties; @JsonProperty("uploadedIndexFileMB") public Double uploadedIndexSizeMB; diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java index c6e52ffeab6..869c90fd67d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java @@ -17,8 +17,19 @@ package org.apache.solr.cloud.api.collections; +import java.util.List; +import java.util.Map; +import java.util.Properties; import org.apache.lucene.tests.util.LuceneTestCase; +import org.apache.solr.client.solrj.SolrQuery; +import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.request.CollectionAdminRequest; +import org.apache.solr.client.solrj.response.CollectionAdminResponse; +import org.apache.solr.cloud.AbstractDistribZkTestBase; +import org.apache.solr.common.cloud.ZkStateReader; +import org.apache.solr.core.backup.repository.BackupRepository; import org.junit.BeforeClass; +import org.junit.Test; // Backups do checksum validation against a footer value not present in 'SimpleText' @LuceneTestCase.SuppressCodecs({"SimpleText"}) @@ -84,4 +95,61 @@ public String getCollectionNamePrefix() { public String getBackupLocation() { return backupLocation; } + + @SuppressWarnings("unchecked") + @Test + public void testCustomProperties() throws Exception { + setTestSuffix("testCustomProperties"); + final String backupCollectionName = getCollectionName(); + final String restoreCollectionName = backupCollectionName + "_restore"; + + CloudSolrClient solrClient = cluster.getSolrClient(); + + CollectionAdminRequest.createCollection(backupCollectionName, "conf1", NUM_SHARDS, 1) + .process(solrClient); + int numDocs = indexDocs(backupCollectionName, true); + String backupName = BACKUPNAME_PREFIX + testSuffix; + try (BackupRepository repository = + cluster.getJettySolrRunner(0).getCoreContainer().newBackupRepository(BACKUP_REPO_NAME)) { + String backupLocation = repository.getBackupLocation(getBackupLocation()); + Properties extraProps = new Properties(); + extraProps.putAll(Map.of("foo", "bar", "number", "12345")); + CollectionAdminRequest.backupCollection(backupCollectionName, backupName) + .setLocation(backupLocation) + .setExtraProperties(extraProps) + .setRepositoryName(BACKUP_REPO_NAME) + .processAndWait(cluster.getSolrClient(), 100); + CollectionAdminResponse response = + CollectionAdminRequest.listBackup(backupName) + .setBackupLocation(backupLocation) + .setBackupRepository(BACKUP_REPO_NAME) + .process(cluster.getSolrClient()); + assertNotNull(response.getResponse().get("backups")); + assertTrue(response.getResponse().get("backups") instanceof List); + List> backups = + (List>) response.getResponse().get("backups"); + assertEquals(1, backups.size()); + Map backup0 = backups.get(0); + assertNotNull(backup0.get("extraProperties")); + assertTrue(backup0.get("extraProperties") instanceof Map); + Map extraProperties = (Map) backup0.get("extraProperties"); + assertEquals("bar", extraProperties.get("foo")); + assertEquals("12345", extraProperties.get("number")); + + CollectionAdminRequest.restoreCollection(restoreCollectionName, backupName) + .setLocation(backupLocation) + .setRepositoryName(BACKUP_REPO_NAME) + .processAndWait(solrClient, 500); + + AbstractDistribZkTestBase.waitForRecoveriesToFinish( + restoreCollectionName, ZkStateReader.from(solrClient), false, false, 3); + assertEquals( + numDocs, + cluster + .getSolrClient() + .query(restoreCollectionName, new SolrQuery("*:*")) + .getResults() + .getNumFound()); + } + } } diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/PurgeGraphTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/PurgeGraphTest.java index 68599125f38..b2374f89a57 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/PurgeGraphTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/PurgeGraphTest.java @@ -199,7 +199,11 @@ public void testUnreferencedShardMetadataFilesAreDeleted() throws Exception { private void createBackupIdFile(int backupId, String... shardNames) throws Exception { final BackupProperties createdProps = BackupProperties.create( - "someBackupName", "someCollectionName", "someExtCollectionName", "someConfigName"); + "someBackupName", + "someCollectionName", + "someExtCollectionName", + "someConfigName", + null); for (String shardName : shardNames) { createdProps.putAndGetShardBackupIdFor(shardName, backupId); } diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/collection-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/collection-management.adoc index 12137859df3..107b4849209 100644 --- a/solr/solr-ref-guide/modules/deployment-guide/pages/collection-management.adoc +++ b/solr/solr-ref-guide/modules/deployment-guide/pages/collection-management.adoc @@ -1668,11 +1668,19 @@ This parameter has no effect if `incremental=false` is specified. + [%autowidth,frame=none] |=== -|Optional |Default: true +|Optional |Default: `true` |=== + Indicates if configset files should be included with the index backup or not. Note that in order to restore a collection, the configset must either exist in ZooKeeper or be part of the backup. Only set this to `false` if you can restore configsets by other means external to Solr (i.e. you have it stored with your application source code, is part of your ZooKeeper backups, etc). +`property.` (V1), `extraProperties` (V2):: +[%autowidth,frame=none] +|=== +|Optional |Default: none +|=== ++ +Allows storing additional key/value pairs for custom information related to the backup. In v2, the value is a map of key-value pairs. + `incremental`:: + [%autowidth,frame=none] diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java index c7814aab55b..db3ad4543c6 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java @@ -1111,6 +1111,7 @@ public static class Backup extends AsyncCollectionSpecificAdminRequest { protected boolean incremental = true; protected Optional maxNumBackupPoints = Optional.empty(); protected boolean backupConfigset = true; + protected Properties extraProperties; public Backup(String collection, String name) { super(CollectionAction.BACKUP, collection); @@ -1205,9 +1206,17 @@ public Backup setBackupConfigset(boolean backupConfigset) { return this; } + public Backup setExtraProperties(Properties extraProperties) { + this.extraProperties = extraProperties; + return this; + } + @Override public SolrParams getParams() { ModifiableSolrParams params = (ModifiableSolrParams) super.getParams(); + if (extraProperties != null) { + addProperties(params, extraProperties); + } params.set(CoreAdminParams.COLLECTION, collection); params.set(CoreAdminParams.NAME, name); params.set(CoreAdminParams.BACKUP_LOCATION, location); // note: optional diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java index 3e8a8d9dbae..03acadab7ff 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java @@ -21,8 +21,11 @@ import java.io.IOException; import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; import java.lang.invoke.MethodHandles; import java.net.URI; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -456,6 +459,34 @@ public void testSkipConfigset() throws Exception { } } + public void testBackupProperties() throws IOException { + BackupProperties p = + BackupProperties.create( + "backupName", + "collection1", + "collection1-ext", + "conf1", + Map.of("foo", "bar", "aaa", "bbb")); + try (BackupRepository repository = + cluster.getJettySolrRunner(0).getCoreContainer().newBackupRepository(BACKUP_REPO_NAME)) { + String backupLocation = repository.getBackupLocation(getBackupLocation()); + URI dest = repository.resolve(repository.createURI(backupLocation), "props-file.properties"); + try (Writer propsWriter = + new OutputStreamWriter(repository.createOutput(dest), StandardCharsets.UTF_8)) { + p.store(propsWriter); + } + BackupProperties propsRead = + BackupProperties.readFrom( + repository, repository.createURI(backupLocation), "props-file.properties"); + assertEquals(p.getCollection(), propsRead.getCollection()); + assertEquals(p.getCollectionAlias(), propsRead.getCollectionAlias()); + assertEquals(p.getConfigName(), propsRead.getConfigName()); + assertEquals(p.getIndexVersion(), propsRead.getIndexVersion()); + assertEquals(p.getExtraProperties(), propsRead.getExtraProperties()); + assertEquals(p.getBackupName(), propsRead.getBackupName()); + } + } + protected void corruptIndexFiles() throws IOException { List slices = new ArrayList<>(getCollectionState(getCollectionName()).getSlices()); Replica leader = slices.get(random().nextInt(slices.size())).getLeader(); @@ -550,7 +581,7 @@ private void indexDocs(String collectionName, int numDocs, boolean useUUID) thro log.info("Indexed {} docs to collection: {}", numDocs, collectionName); } - private int indexDocs(String collectionName, boolean useUUID) throws Exception { + protected int indexDocs(String collectionName, boolean useUUID) throws Exception { Random random = new Random( docsSeed); // use a constant seed for the whole test run so that we can easily re-index. From 6c5741d3646ce66c3f4b71ddf816df0b244694e7 Mon Sep 17 00:00:00 2001 From: Andrey Bozhko Date: Tue, 3 Oct 2023 17:51:16 -0500 Subject: [PATCH 21/29] Update indexing docs in Solr ref guide (#1961) Wide variety of fixes to the docs related to indexing to account for evolution of Solr 9x and Lucene 9x --------- Co-authored-by: Andrey Bozhko Co-authored-by: Eric Pugh --- .../modules/indexing-guide/indexing-nav.adoc | 2 +- .../indexing-guide/pages/analyzers.adoc | 2 +- ...rfilterfactories.adoc => charfilters.adoc} | 2 +- .../pages/document-analysis.adoc | 2 +- ...field-type-definitions-and-properties.adoc | 2 +- .../modules/indexing-guide/pages/filters.adoc | 150 +++++++--- .../indexing-guide/pages/schema-elements.adoc | 11 +- .../indexing-guide/pages/tokenizers.adoc | 264 ++++++++++++++++-- 8 files changed, 372 insertions(+), 63 deletions(-) rename solr/solr-ref-guide/modules/indexing-guide/pages/{charfilterfactories.adoc => charfilters.adoc} (99%) diff --git a/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc b/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc index 532f56eb10c..e78233d4a5d 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc @@ -43,7 +43,7 @@ ** xref:analyzers.adoc[] ** xref:tokenizers.adoc[] ** xref:filters.adoc[] -** xref:charfilterfactories.adoc[] +** xref:charfilters.adoc[] ** xref:language-analysis.adoc[] ** xref:phonetic-matching.adoc[] ** xref:analysis-screen.adoc[] diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/analyzers.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/analyzers.adoc index 280f9289ba3..876f15dc367 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/analyzers.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/analyzers.adoc @@ -180,7 +180,7 @@ For most use cases, this provides the best possible behavior, but if you wish fo - + ---- diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/charfilterfactories.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/charfilters.adoc similarity index 99% rename from solr/solr-ref-guide/modules/indexing-guide/pages/charfilterfactories.adoc rename to solr/solr-ref-guide/modules/indexing-guide/pages/charfilters.adoc index f20923fc034..abcf27c537d 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/charfilterfactories.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/charfilters.adoc @@ -1,4 +1,4 @@ -= CharFilterFactories += CharFilters // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/document-analysis.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/document-analysis.adoc index 5b56449c4d3..37d94f2ec63 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/document-analysis.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/document-analysis.adoc @@ -50,7 +50,7 @@ It also serves as a guide so that you can configure your own analysis classes if | xref:analyzers.adoc[]: Overview of Solr analyzers. | xref:tokenizers.adoc[]: Tokenizers and tokenizer factory classes. | xref:filters.adoc[]: Filters and filter factory classes. -| xref:charfilterfactories.adoc[]: Filters for pre-processing input characters. +| xref:charfilters.adoc[]: Filters for pre-processing input characters. | xref:language-analysis.adoc[]: Tokenizers and filters for character set conversion and specific languages. | xref:analysis-screen.adoc[]: Admin UI for testing field analysis. |=== diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/field-type-definitions-and-properties.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/field-type-definitions-and-properties.adoc index e415023984e..39f2ee5751f 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/field-type-definitions-and-properties.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/field-type-definitions-and-properties.adoc @@ -201,7 +201,7 @@ The table below includes the default value for most `FieldType` implementations |`sortMissingFirst`, `sortMissingLast` |Control the placement of documents when a sort field is not present. |`false` |`multiValued` |If `true`, indicates that a single document might contain multiple values for this field type. |`false` |`uninvertible` |If `true`, indicates that an `indexed="true" docValues="false"` field can be "un-inverted" at query time to build up large in memory data structure to serve in place of xref:docvalues.adoc[]. *Defaults to `true` for historical reasons, but users are strongly encouraged to set this to `false` for stability and use `docValues="true"` as needed.* |`true` -|`omitNorms` |If `true`, omits the norms associated with this field (this disables length normalization for the field, and saves some memory). *Defaults to true for all primitive (non-analyzed) field types, such as int, float, data, bool, and string.* Only full-text fields or fields need norms. |* +|`omitNorms` |If `true`, omits the norms associated with this field (this disables length normalization for the field, and saves some memory). *Defaults to true for all primitive (non-analyzed) field types, such as int, float, data, bool, and string.* Only full-text fields or fields that need an index-time boost need norms. |* |`omitTermFreqAndPositions` |If `true`, omits term frequency, positions, and payloads from postings for this field. This can be a performance boost for fields that don't require that information. It also reduces the storage space required for the index. Queries that rely on position that are issued on a field with this option will silently fail to find documents. *This property defaults to true for all field types that are not text fields.* |* |`omitPositions` |Similar to `omitTermFreqAndPositions` but preserves term frequency information. |* |`termVectors`, `termPositions`, `termOffsets`, `termPayloads` |These options instruct Solr to maintain full term vectors for each document, optionally including position, offset, and payload information for each term occurrence in those vectors. These can be used to accelerate highlighting and other ancillary functionality, but impose a substantial cost in terms of index size. They are not necessary for typical uses of Solr. |`false` diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/filters.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/filters.adoc index b9089f0c8d1..fa2c3365a56 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/filters.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/filters.adoc @@ -263,8 +263,7 @@ The value `auto` will allow the filter to identify the language, or a comma-sepa ---- - - + ---- ==== @@ -275,8 +274,7 @@ The value `auto` will allow the filter to identify the language, or a comma-sepa ---- - - + ---- ==== @@ -327,7 +325,7 @@ This filter takes the output of the xref:tokenizers.adoc#classic-tokenizer[Class == Common Grams Filter This filter for use in `index` time analysis creates word shingles by combining common tokens such as stop words with regular tokens. -This can result in an index with more unique terms, but is useful for creating phrase queries containing common words, such as "the cat", in a way that will typically be much faster then if the combined tokens are not used, because only the term positions of documents containg both terms in sequence have to be considered. +This can result in an index with more unique terms, but is useful for creating phrase queries containing common words, such as "the cat", in a way that will typically be much faster than if the combined tokens are not used, because only the term positions of documents containing both terms in sequence have to be considered. Correct usage requires being paired with <> during `query` analysis. These filters can also be combined with <> so searching for `"the cat"` would match different documents then `"a cat"`, while pathological searches for either `"the"` or `"a"` would not match any documents. @@ -409,7 +407,7 @@ If `true`, the filter ignores the case of words when comparing them to the commo == Common Grams Query Filter -This filter is used for the `query` time analysis aspect of <> -- see that filer for a description of arguments, example configuration, and sample input/output. +This filter is used for the `query` time analysis aspect of <> -- see that filter for a description of arguments, example configuration, and sample input/output. == Collation Key Filter @@ -580,8 +578,8 @@ The character used to separate the token and the boost. [source,xml] ---- - - + + ---- ==== @@ -591,8 +589,8 @@ The character used to separate the token and the boost. [source,xml] ---- - - + + ---- ==== @@ -613,8 +611,8 @@ Using a different delimiter (`delimiter="/"`). [source,xml] ---- - - + + ---- @@ -638,17 +636,17 @@ This filter generates edge n-gram tokens of sizes within the given range. + [%autowidth,frame=none] |=== -|Optional |Default: `1` +|Required |Default: none |=== -The minimum gram size. +The minimum gram size, must be > 0. `maxGramSize`:: + [%autowidth,frame=none] |=== -|Optional |Default: `1` +|Required |Default: none |=== -The maximum gram size. +The maximum gram size, must be >= `minGramSize`. `preserveOriginal`:: + @@ -672,7 +670,7 @@ Default behavior. ---- - + ---- ==== @@ -683,7 +681,7 @@ Default behavior. ---- - + ---- ==== @@ -947,6 +945,15 @@ The path of a rules file. + Controls whether matching is case sensitive or not. +`longestOnly`:: ++ +[%autowidth,frame=none] +|=== +|Optional |Default: `false` +|=== ++ +If `true`, only the longest term is emitted. + `strictAffixParsing`:: + [%autowidth,frame=none] @@ -1108,7 +1115,7 @@ For detailed information on this normalization form, see http://www.unicode.org/ == ICU Normalizer 2 Filter -This filter factory normalizes text according to one of five Unicode Normalization Forms as described in http://unicode.org/reports/tr15/[Unicode Standard Annex #15]: +This filter normalizes text according to one of five Unicode Normalization Forms as described in http://unicode.org/reports/tr15/[Unicode Standard Annex #15]: * NFC: (`name="nfc" mode="compose"`) Normalization Form C, canonical decomposition * NFD: (`name="nfc" mode="decompose"`) Normalization Form D, canonical decomposition, followed by canonical composition @@ -1214,6 +1221,15 @@ s|Required |Default: none The identifier for the ICU System Transform you wish to apply with this filter. For a full list of ICU System Transforms, see http://demo.icu-project.org/icu-bin/translit?TEMPLATE_FILE=data/translit_rule_main.html. +`direction`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `forward` +|=== ++ +The direction of the ICU transform. Valid options are `forward` and `reverse`. + *Example:* [.dynamic-tabs] @@ -1268,6 +1284,15 @@ Path to a text file containing the list of keep words, one per line. Blank lines and lines that begin with `\#` are ignored. This may be an absolute path, or a simple filename in the Solr `conf` directory. +`format`:: ++ +[%autowidth,frame=none] +|=== +|Optional |Default: none +|=== ++ +If the keepwords list has been formatted for Snowball, you can specify `format="snowball"` so Solr can read the keepwords file. + `ignoreCase`:: + [%autowidth,frame=none] @@ -1467,12 +1492,14 @@ Tokens longer than this are discarded. This filter limits the number of accepted tokens, typically useful for index analysis. By default, this filter ignores any tokens in the wrapped `TokenStream` once the limit has been reached, which can result in `reset()` being called prior to `incrementToken()` returning `false`. -For most `TokenStream` implementations this should be acceptable, and faster then consuming the full stream. +For most `TokenStream` implementations this should be acceptable, and faster than consuming the full stream. If you are wrapping a `TokenStream` which requires that the full stream of tokens be exhausted in order to function properly, use the `consumeAllTokens="true"` option. *Factory class:* `solr.LimitTokenCountFilterFactory` *Arguments:* + +`maxTokenCount`:: + [%autowidth,frame=none] |=== @@ -1534,14 +1561,21 @@ This filter limits tokens to those before a configured maximum start character o This can be useful to limit highlighting, for example. By default, this filter ignores any tokens in the wrapped `TokenStream` once the limit has been reached, which can result in `reset()` being called prior to `incrementToken()` returning `false`. -For most `TokenStream` implementations this should be acceptable, and faster then consuming the full stream. +For most `TokenStream` implementations this should be acceptable, and faster than consuming the full stream. If you are wrapping a `TokenStream` which requires that the full stream of tokens be exhausted in order to function properly, use the `consumeAllTokens="true"` option. *Factory class:* `solr.LimitTokenOffsetFilterFactory` *Arguments:* -`maxStartOffset`:: (integer, required) Maximum token start character offset. +`maxStartOffset`:: ++ +[%autowidth,frame=none] +|=== +s|Required |Default: none +|=== ++ +Maximum token start character offset. After this limit has been reached, tokens are discarded. `consumeAllTokens`:: @@ -1595,7 +1629,7 @@ See description above. This filter limits tokens to those before a configured maximum token position. By default, this filter ignores any tokens in the wrapped `TokenStream` once the limit has been reached, which can result in `reset()` being called prior to `incrementToken()` returning `false`. -For most `TokenStream` implementations this should be acceptable, and faster then consuming the full stream. +For most `TokenStream` implementations this should be acceptable, and faster than consuming the full stream. If you are wrapping a `TokenStream` which requires that the full stream of tokens be exhausted in order to function properly, use the `consumeAllTokens="true"` option. *Factory class:* `solr.LimitTokenPositionFilterFactory` @@ -1628,7 +1662,7 @@ See description above. -- [example.tab-pane#byname-filter-limittokenposition] ==== -[.tab-label]*With name)* +[.tab-label]*With name* [source,xml] ---- @@ -1832,7 +1866,7 @@ This filter would normally be preceded by a <>, as shown in the Each input token is hashed. It is subsequently "rehashed" `hashCount` times by combining with a set of precomputed hashes. -For each of the resulting hashes, the hash space is divided in to `bucketCount` buckets. +For each of the resulting hashes, the hash space is divided into `bucketCount` buckets. The lowest set of `hashSetSize` hashes (usually a set of one) is generated for each bucket. This filter generates one type of signature or sketch for the input tokens and can be used to compute Jaccard similarity between documents. @@ -1881,6 +1915,24 @@ With the default settings for `withRotation`, the number of hashes generated is *Example:* +[.dynamic-tabs] +-- +[example.tab-pane#byname-filter-minhash] +==== +[.tab-label]*With name* +[source,xml] +---- + + + + + + +---- +==== +[example.tab-pane#byclass-filter-minhash] +==== +[.tab-label]*With class name (legacy)* [source,xml] ---- @@ -1890,6 +1942,8 @@ With the default settings for `withRotation`, the number of hashes generated is ---- +==== +-- *In:* "woof woof woof woof woof" @@ -1910,18 +1964,18 @@ Note that tokens are ordered by position and then by gram size. + [%autowidth,frame=none] |=== -|Optional |Default: `1` +|Required |Default: none |=== -The minimum gram size. +The minimum gram size, must be > 0. `maxGramSize`:: + [%autowidth,frame=none] |=== -|Optional |Default: `2` +|Required |Default: none |=== + -The maximum gram size. +The maximum gram size, must be >= `minGramSize`. `preserveOriginal`:: + @@ -1945,7 +1999,7 @@ Default behavior. ---- - + ---- ==== @@ -1956,7 +2010,7 @@ Default behavior. ---- - + ---- ==== @@ -2087,7 +2141,7 @@ Tokens with a matching type name will have their payload set to the above floati == Pattern Replace Filter This filter applies a regular expression to each token and, for those that match, substitutes the given replacement string in place of the matched pattern. -Tokens which do not match are passed though unchanged. +Tokens which do not match are passed through unchanged. *Factory class:* `solr.PatternReplaceFilterFactory` @@ -3096,10 +3150,10 @@ If `false`, all equivalent synonyms will be reduced to the first in the list. + [%autowidth,frame=none] |=== -|Optional |Default: none +|Optional |Default: `solr` |=== + -(optional; default: `solr`) Controls how the synonyms will be parsed. +Controls how the synonyms will be parsed. The short names `solr` (for {lucene-javadocs}/analysis/common/org/apache/lucene/analysis/synonym/SolrSynonymParser.html[`SolrSynonymParser`] and `wordnet` (for {lucene-javadocs}/analysis/common/org/apache/lucene/analysis/synonym/WordnetSynonymParser.html[`WordnetSynonymParser`] ) are supported. You may alternatively supply the name of your own {lucene-javadocs}/analysis/common/org/apache/lucene/analysis/synonym/SynonymMap.Builder.html[`SynonymMap.Builder`] subclass. @@ -3368,6 +3422,25 @@ This filter adds the token's type, as a token at the same position as the token, + The prefix to prepend to the token's type. +`ignore`:: ++ +[%autowidth,frame=none] +|=== +|Optional |Default: none +|=== ++ +A comma-separated list of types to ignore and not convert to synonyms. + +`synFlagsMask`:: ++ +[%autowidth,frame=none] +|=== +|Optional |Default: see description +|=== ++ +A mask (provided as an integer) to control what flags are propagated to the synonyms. +The default value is an integer `-1`, i.e., the mask `0xFFFFFFFF` - this mask propagates any flags as is. + *Examples:* With the example below, each token's type will be emitted verbatim at the same position: @@ -3614,6 +3687,15 @@ The path to a file that contains a list of protected words that should be passed + If `1`, strips the possessive `'s` from each subword. +`adjustOffsets`:: ++ +[%autowidth,frame=none] +|=== +|Optional |Default: `true` +|=== ++ +If `true`, the offsets of partial terms are adjusted. + `types`:: + [%autowidth,frame=none] diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/schema-elements.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-elements.adoc index abb1b7492cf..ee45819dab2 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/schema-elements.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-elements.adoc @@ -95,18 +95,23 @@ However, `uniqueKey` will continue to work, as long as the field is properly use Similarity is a Lucene class used to score a document in searching. Each collection has one "global" Similarity. -By default Solr uses an implicit {solr-javadocs}/core/org/apache/solr/search/similarities/SchemaSimilarityFactory.html[`SchemaSimilarityFactory`] which allows individual field types to be configured with a "per-type" specific Similarity and implicitly uses `BM25Similarity` for any field type which does not have an explicit Similarity. +By default, Solr uses an implicit {solr-javadocs}/core/org/apache/solr/search/similarities/SchemaSimilarityFactory.html[`SchemaSimilarityFactory`] which allows individual field types to be configured with a "per-type" specific Similarity and implicitly uses `BM25Similarity` for any field type which does not have an explicit Similarity. This default behavior can be overridden by declaring a top level `` element in your schema, outside of any single field type. This similarity declaration can either refer directly to the name of a class with a no-argument constructor, such as in this example showing `BM25Similarity`: [source,xml] ---- - + ---- -or by referencing a `SimilarityFactory` implementation, which may take optional initialization parameters: +or by referencing a `SimilarityFactory` implementation: +[source,xml] +---- + +---- +When using the similarity factory, it is possible to specify optional initialization parameters: [source,xml] ---- diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/tokenizers.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/tokenizers.adoc index 24d04ec1802..fbb69399efc 100644 --- a/solr/solr-ref-guide/modules/indexing-guide/pages/tokenizers.adoc +++ b/solr/solr-ref-guide/modules/indexing-guide/pages/tokenizers.adoc @@ -100,7 +100,7 @@ Arguments may be passed to tokenizer factories by setting attributes on the ` 0. +`minGramSize`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `1` +|=== ++ +The minimum n-gram size, must be > 0. -`maxGramSize`: (integer, default 2) The maximum n-gram size, must be >= `minGramSize`. +`maxGramSize`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `2` +|=== ++ +The maximum n-gram size, must be >= `minGramSize`. *Example:* @@ -408,9 +463,23 @@ Reads the field text and generates edge n-gram tokens of sizes in the given rang *Arguments:* -`minGramSize`: (integer, default is 1) The minimum n-gram size, must be > 0. +`minGramSize`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `1` +|=== ++ +The minimum n-gram size, must be > 0. -`maxGramSize`: (integer, default is 1) The maximum n-gram size, must be >= `minGramSize`. +`maxGramSize`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `1` +|=== ++ +The maximum n-gram size, must be >= `minGramSize`. *Example:* @@ -490,7 +559,33 @@ The default configuration for `solr.ICUTokenizerFactory` provides UAX#29 word br *Arguments:* -`rulefile`: a comma-separated list of `code:rulefile` pairs in the following format: four-letter ISO 15924 script code, followed by a colon, then a resource path. +`rulefile`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: none +|=== ++ +A comma-separated list of `code:rulefile` pairs in the following format: four-letter ISO 15924 script code, followed by a colon, then a resource path. + +`cjkAsWords`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `true` +|=== ++ +If `true`, CJK text would undergo dictionary-based segmentation, and all Han+Hiragana+Katakana words will be tagged as IDEOGRAPHIC. +Otherwise, text will be segmented according to UAX#29 defaults. + +`myanmarAsWords`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `true` +|=== ++ +If `true`, Myanmar text would undergo dictionary-based segmentation, otherwise it will be tokenized as syllables. *Example:* @@ -562,13 +657,47 @@ This tokenizer creates synonyms from file path hierarchies. *Arguments:* -`delimiter`: (character, no default) You can specify the file path delimiter and replace it with a delimiter you provide. +`delimiter`:: ++ +[%autowidth,frame=none] +|=== +s|Required |Default: none +|=== ++ +You can specify the file path delimiter and replace it with a delimiter you provide. This can be useful for working with backslash delimiters. -`replace`: (character, no default) Specifies the delimiter character Solr uses in the tokenized output. +`replace`:: ++ +[%autowidth,frame=none] +|=== +s|Required |Default: none +|=== ++ +Specifies the delimiter character Solr uses in the tokenized output. + +`reverse`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `false` +|=== ++ +If `true`, switch the tokenizer behavior to build the path hierarchy in "reversed" order. +This is typically useful for tokenizing the URLs. + +`skip`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `0` +|=== ++ +Number of leftmost (or rightmost, if reverse=true) path elements to drop from each emitted token. *Example:* +Default behavior [.dynamic-tabs] -- [example.tab-pane#byname-tokenizer-pathhierarchy] @@ -601,6 +730,41 @@ This can be useful for working with backslash delimiters. *Out:* "c:", "c:/usr", "c:/usr/local", "c:/usr/local/apache" +*Example:* + +Reverse order +[.dynamic-tabs] +-- +[example.tab-pane#byname-tokenizer-pathhierarchy-reversed] +==== +[.tab-label]*With name* +[source,xml] +---- + + + + + +---- +==== +[example.tab-pane#byclass-tokenizer-pathhierarchy-reversed] +==== +[.tab-label]*With class name (legacy)* +[source,xml] +---- + + + + + +---- +==== +-- + +*In:* "www.site.co.uk" + +*Out:* "www.site.co.uk", "site.co.uk", "co.uk", "uk" + == Regular Expression Pattern Tokenizer This tokenizer uses a Java regular expression to break the input text stream into tokens. @@ -612,9 +776,23 @@ See {java-javadocs}java/util/regex/Pattern.html[the Javadocs for `java.util.rege *Arguments:* -`pattern`: (Required) The regular expression, as defined by in `java.util.regex.Pattern`. +`pattern`:: ++ +[%autowidth,frame=none] +|=== +s|Required |Default: none +|=== ++ +The regular expression, as defined by in `java.util.regex.Pattern`. -`group`: (Optional, default -1) Specifies which regex group to extract as the token(s). +`group`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `-1` +|=== ++ +Specifies which regex group to extract as the token(s). The value -1 means the regex should be treated as a delimiter that separates tokens. Non-negative group numbers (>= 0) indicate that character sequences matching that regex group should be converted to tokens. Group zero refers to the entire regex, groups greater than zero refer to parenthesized sub-expressions of the regex, counted from left to right. @@ -687,7 +865,7 @@ A sequence of at least one capital letter followed by zero or more letters of ei *Example:* -Extract part numbers which are preceded by "SKU", "Part" or "Part Number", case sensitive, with an optional semi-colon separator. +Extract part numbers which are preceded by "SKU", "Part" or "Part Number", case sensitive, with an optional semicolon separator. Part numbers must be all numeric digits, with an optional hyphen. Regex capture groups are numbered by counting left parenthesis from left to right. Group 3 is the subexpression "[0-9-]+", which matches one or more digits or hyphens. @@ -729,11 +907,25 @@ The syntax is more limited than `PatternTokenizerFactory`, but the tokenization *Arguments:* -`pattern`: (Required) The regular expression, as defined by in the {lucene-javadocs}/core/org/apache/lucene/util/automaton/RegExp.html[`RegExp`] javadocs, identifying the characters to include in tokens. +`pattern`:: ++ +[%autowidth,frame=none] +|=== +s|Required |Default: none +|=== ++ +The regular expression, as defined in the {lucene-javadocs}/core/org/apache/lucene/util/automaton/RegExp.html[`RegExp`] javadocs, identifying the characters to include in tokens. The matching is greedy such that the longest token matching at a given point is created. Empty tokens are never created. -`maxDeterminizedStates`: (Optional, default 10000) the limit on total state count for the determined automaton computed from the regexp. +`determinizeWorkLimit`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `10000` +|=== ++ +The limit on total state count for the determined automaton computed from the regexp. *Example:* @@ -772,11 +964,25 @@ The syntax is more limited than `PatternTokenizerFactory`, but the tokenization *Arguments:* -`pattern`: (Required) The regular expression, as defined by in the {lucene-javadocs}/core/org/apache/lucene/util/automaton/RegExp.html[`RegExp`] javadocs, identifying the characters that should split tokens. +`pattern`:: ++ +[%autowidth,frame=none] +|=== +s|Required |Default: none +|=== ++ +The regular expression, as defined by in the {lucene-javadocs}/core/org/apache/lucene/util/automaton/RegExp.html[`RegExp`] javadocs, identifying the characters that should split tokens. The matching is greedy such that the longest token separator matching at a given point is matched. Empty tokens are never created. -`maxDeterminizedStates`: (Optional, default 10000) the limit on total state count for the determined automaton computed from the regexp. +`determinizeWorkLimit`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `10000` +|=== ++ +The limit on total state count for the determined automaton computed from the regexp. *Example:* @@ -827,7 +1033,14 @@ The UAX29 URL Email Tokenizer supports http://unicode.org/reports/tr29/#Word_Bou *Arguments:* -`maxTokenLength`: (integer, default 255) Solr ignores tokens that exceed the number of characters specified by `maxTokenLength`. +`maxTokenLength`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `255` +|=== ++ +Solr ignores tokens that exceed the number of characters specified by `maxTokenLength`. *Example:* @@ -881,6 +1094,15 @@ Valid values: * `java`: Uses {java-javadocs}java/lang/Character.html#isWhitespace-int-[Character.isWhitespace(int)] * `unicode`: Uses Unicode's WHITESPACE property +`maxTokenLen`:: ++ +[%autowidth,frame=none] +|=== +s|Optional |Default: `255` +|=== ++ +Maximum token length the tokenizer will emit. + *Example:* [.dynamic-tabs] From 74ad7bb029778e66576470419a29c04d4b6ecf17 Mon Sep 17 00:00:00 2001 From: Houston Putman Date: Wed, 4 Oct 2023 09:56:36 -0400 Subject: [PATCH 22/29] SOLR-16970: Fix windows script (#1975) --- solr/bin/solr.cmd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd index 6396646355e..3a19be2e366 100755 --- a/solr/bin/solr.cmd +++ b/solr/bin/solr.cmd @@ -1167,19 +1167,19 @@ IF "%verbose%"=="1" ( ) IF NOT "%SOLR_OPTS%"=="" ( - @echo SOLR_OPTS (USER) = %SOLR_OPTS% + CALL :safe_echo " SOLR_OPTS (USER) = %SOLR_OPTS%" ) IF NOT "%SCRIPT_SOLR_OPTS%"=="" ( - @echo SOLR_OPTS (SCRIPT) = %SCRIPT_SOLR_OPTS% + CALL :safe_echo " SOLR_OPTS (SCRIPT) = %SCRIPT_SOLR_OPTS%" ) IF NOT "%SOLR_ADDL_ARGS%"=="" ( - CALL :safe_echo " SOLR_ADDL_ARGS = %SOLR_ADDL_ARGS%" + CALL :safe_echo " SOLR_ADDL_ARGS = %SOLR_ADDL_ARGS%" ) IF NOT "%SOLR_JETTY_ADDL_CONFIG%"=="" ( - CALL :safe_echo " SOLR_JETTY_ADDL_CONFIG = %SOLR_JETTY_ADDL_CONFIG%" + CALL :safe_echo " SOLR_JETTY_ADDL_CONFIG = %SOLR_JETTY_ADDL_CONFIG%" ) IF "%ENABLE_REMOTE_JMX_OPTS%"=="true" ( From 540f61ce45e5baf04fef60f4e4fe15e523ef69c6 Mon Sep 17 00:00:00 2001 From: Alex D Date: Wed, 4 Oct 2023 08:31:52 -0700 Subject: [PATCH 23/29] SOLR-17009 json.wrf parameter ignored in JacksonJsonWriter (#1977) --- solr/CHANGES.txt | 2 ++ .../solr/response/JacksonJsonWriter.java | 6 ++++ .../apache/solr/response/JSONWriterTest.java | 32 +++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index ef7e37ea61e..9a02f787bbe 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -256,6 +256,8 @@ Bug Fixes * SOLR-16644: Fixing the entropy warning threshold using scaling based on poolsize (Raghavan Muthuregunathan) +* SOLR-17009: json.wrf parameter ignored in JacksonJsonWriter (Alex Deparvu) + Dependency Upgrades --------------------- diff --git a/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java b/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java index 4de5039ba1e..79b09ae3bf4 100644 --- a/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java +++ b/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java @@ -79,7 +79,13 @@ public WriterImpl( @Override public void writeResponse() throws IOException { + if (wrapperFunction != null) { + writeStr(null, wrapperFunction + "(", false); + } super.writeNamedList(null, rsp.getValues()); + if (wrapperFunction != null) { + writeStr(null, ")", false); + } gen.close(); } diff --git a/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java b/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java index 9fcdcea4e5f..7d6e324a418 100644 --- a/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java +++ b/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java @@ -16,6 +16,7 @@ */ package org.apache.solr.response; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringWriter; import java.lang.reflect.Method; @@ -314,4 +315,35 @@ public void testConstantsUnchanged() { assertEquals("arrntv", JSONWriter.JSON_NL_ARROFNTV); assertEquals("json.wrf", JSONWriter.JSON_WRAPPER_FUNCTION); } + + @Test + public void testWfrJacksonJsonWriter() throws IOException { + SolrQueryRequest req = req("wt", "json", JSONWriter.JSON_WRAPPER_FUNCTION, "testFun"); + SolrQueryResponse rsp = new SolrQueryResponse(); + rsp.add("param0", "v0"); + rsp.add("param1", 42); + + JacksonJsonWriter w = new JacksonJsonWriter(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + w.write(baos, req, rsp); + String received = new String(baos.toByteArray(), StandardCharsets.UTF_8); + String expected = "testFun( {\n \"param0\":\"v0\",\n \"param1\":42\n} )"; + jsonEq(expected, received); + req.close(); + } + + @Test + public void testWfrJSONWriter() throws IOException { + SolrQueryRequest req = req("wt", "json", JSONWriter.JSON_WRAPPER_FUNCTION, "testFun"); + SolrQueryResponse rsp = new SolrQueryResponse(); + rsp.add("param0", "v0"); + rsp.add("param1", 42); + + JSONResponseWriter w = new JSONResponseWriter(); + StringWriter buf = new StringWriter(); + w.write(buf, req, rsp); + String expected = "testFun({\n \"param0\":\"v0\",\n \"param1\":42})"; + jsonEq(expected, buf.toString()); + req.close(); + } } From 621bc2a5deeae0d8616bd41180b5ffac2de4df34 Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Thu, 5 Oct 2023 01:25:57 +0200 Subject: [PATCH 24/29] SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0 (#1743) Co-authored-by: Kevin Risden --- solr/CHANGES.txt | 2 +- solr/licenses/curator-client-4.3.0.jar.sha1 | 1 - solr/licenses/curator-client-5.5.0.jar.sha1 | 1 + .../licenses/curator-framework-4.3.0.jar.sha1 | 1 - .../licenses/curator-framework-5.5.0.jar.sha1 | 1 + solr/licenses/curator-recipes-4.3.0.jar.sha1 | 1 - solr/licenses/curator-recipes-5.5.0.jar.sha1 | 1 + .../hadoop-annotations-3.3.5.jar.sha1 | 1 - .../hadoop-annotations-3.3.6.jar.sha1 | 1 + solr/licenses/hadoop-auth-3.3.5.jar.sha1 | 1 - solr/licenses/hadoop-auth-3.3.6.jar.sha1 | 1 + .../licenses/hadoop-client-api-3.3.5.jar.sha1 | 1 - .../licenses/hadoop-client-api-3.3.6.jar.sha1 | 1 + .../hadoop-client-minicluster-3.3.5.jar.sha1 | 1 - .../hadoop-client-minicluster-3.3.6.jar.sha1 | 1 + .../hadoop-client-runtime-3.3.5.jar.sha1 | 1 - .../hadoop-client-runtime-3.3.6.jar.sha1 | 1 + solr/licenses/hadoop-common-3.3.5.jar.sha1 | 1 - solr/licenses/hadoop-common-3.3.6.jar.sha1 | 1 + .../licenses/hadoop-hdfs-3.3.5-tests.jar.sha1 | 1 - solr/licenses/hadoop-hdfs-3.3.5.jar.sha1 | 1 - .../licenses/hadoop-hdfs-3.3.6-tests.jar.sha1 | 1 + solr/licenses/hadoop-hdfs-3.3.6.jar.sha1 | 1 + solr/licenses/hadoop-minikdc-3.3.5.jar.sha1 | 1 - solr/licenses/hadoop-minikdc-3.3.6.jar.sha1 | 1 + .../hadoop/DelegationTokenKerberosFilter.java | 54 +++++++++++++++++-- .../security/hadoop/HadoopAuthFilter.java | 53 +++++++++++++++--- .../pages/major-changes-in-solr-9.adoc | 4 ++ versions.lock | 26 ++++----- versions.props | 4 +- 30 files changed, 127 insertions(+), 40 deletions(-) delete mode 100644 solr/licenses/curator-client-4.3.0.jar.sha1 create mode 100644 solr/licenses/curator-client-5.5.0.jar.sha1 delete mode 100644 solr/licenses/curator-framework-4.3.0.jar.sha1 create mode 100644 solr/licenses/curator-framework-5.5.0.jar.sha1 delete mode 100644 solr/licenses/curator-recipes-4.3.0.jar.sha1 create mode 100644 solr/licenses/curator-recipes-5.5.0.jar.sha1 delete mode 100644 solr/licenses/hadoop-annotations-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-annotations-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-auth-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-auth-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-client-api-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-client-api-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-common-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-common-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1 delete mode 100644 solr/licenses/hadoop-hdfs-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1 create mode 100644 solr/licenses/hadoop-hdfs-3.3.6.jar.sha1 delete mode 100644 solr/licenses/hadoop-minikdc-3.3.5.jar.sha1 create mode 100644 solr/licenses/hadoop-minikdc-3.3.6.jar.sha1 diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 9a02f787bbe..224e86baeca 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -84,7 +84,7 @@ Bug Fixes Dependency Upgrades --------------------- -(No changes) +* SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0 (Kevin Risden) Other Changes --------------------- diff --git a/solr/licenses/curator-client-4.3.0.jar.sha1 b/solr/licenses/curator-client-4.3.0.jar.sha1 deleted file mode 100644 index c8c057968ae..00000000000 --- a/solr/licenses/curator-client-4.3.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3eacfe1f700d66e73b5eb9313af0945042327186 diff --git a/solr/licenses/curator-client-5.5.0.jar.sha1 b/solr/licenses/curator-client-5.5.0.jar.sha1 new file mode 100644 index 00000000000..e9ae641df79 --- /dev/null +++ b/solr/licenses/curator-client-5.5.0.jar.sha1 @@ -0,0 +1 @@ +db2d83bdc0bac7b4f25fc113d8ce3eedc0a4e89c diff --git a/solr/licenses/curator-framework-4.3.0.jar.sha1 b/solr/licenses/curator-framework-4.3.0.jar.sha1 deleted file mode 100644 index 9a6a844271d..00000000000 --- a/solr/licenses/curator-framework-4.3.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -7a05a339688b5e2f0db4416cb19bc340b68abdc9 diff --git a/solr/licenses/curator-framework-5.5.0.jar.sha1 b/solr/licenses/curator-framework-5.5.0.jar.sha1 new file mode 100644 index 00000000000..c5211cb22d0 --- /dev/null +++ b/solr/licenses/curator-framework-5.5.0.jar.sha1 @@ -0,0 +1 @@ +b706a216e49352103bd2527e83b1ec2410924494 diff --git a/solr/licenses/curator-recipes-4.3.0.jar.sha1 b/solr/licenses/curator-recipes-4.3.0.jar.sha1 deleted file mode 100644 index dc098a6dd00..00000000000 --- a/solr/licenses/curator-recipes-4.3.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -df60350024ccf98bdd9299b3e3c079aab5845d1f diff --git a/solr/licenses/curator-recipes-5.5.0.jar.sha1 b/solr/licenses/curator-recipes-5.5.0.jar.sha1 new file mode 100644 index 00000000000..e19fcfe836c --- /dev/null +++ b/solr/licenses/curator-recipes-5.5.0.jar.sha1 @@ -0,0 +1 @@ +4aa0cfb129c36cd91528fc1b8775705280e60285 diff --git a/solr/licenses/hadoop-annotations-3.3.5.jar.sha1 b/solr/licenses/hadoop-annotations-3.3.5.jar.sha1 deleted file mode 100644 index 04087c5b808..00000000000 --- a/solr/licenses/hadoop-annotations-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b30e4d5ab2f77f47b6c3917f3286970979c6328a diff --git a/solr/licenses/hadoop-annotations-3.3.6.jar.sha1 b/solr/licenses/hadoop-annotations-3.3.6.jar.sha1 new file mode 100644 index 00000000000..2829c60fc47 --- /dev/null +++ b/solr/licenses/hadoop-annotations-3.3.6.jar.sha1 @@ -0,0 +1 @@ +451bc97f7519017cfa96c8f11d79e1e8027968b2 diff --git a/solr/licenses/hadoop-auth-3.3.5.jar.sha1 b/solr/licenses/hadoop-auth-3.3.5.jar.sha1 deleted file mode 100644 index a56612a55fb..00000000000 --- a/solr/licenses/hadoop-auth-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -0aac338d2755e932f87f16cb3e73b42deb9d7699 diff --git a/solr/licenses/hadoop-auth-3.3.6.jar.sha1 b/solr/licenses/hadoop-auth-3.3.6.jar.sha1 new file mode 100644 index 00000000000..00c7261e985 --- /dev/null +++ b/solr/licenses/hadoop-auth-3.3.6.jar.sha1 @@ -0,0 +1 @@ +066aaf67a580910de62f92f21f76e3df170483cf diff --git a/solr/licenses/hadoop-client-api-3.3.5.jar.sha1 b/solr/licenses/hadoop-client-api-3.3.5.jar.sha1 deleted file mode 100644 index 6e51b9a630c..00000000000 --- a/solr/licenses/hadoop-client-api-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -caf698048b815044e0c89a42a27c17dc3dee55e3 diff --git a/solr/licenses/hadoop-client-api-3.3.6.jar.sha1 b/solr/licenses/hadoop-client-api-3.3.6.jar.sha1 new file mode 100644 index 00000000000..fa913d85daa --- /dev/null +++ b/solr/licenses/hadoop-client-api-3.3.6.jar.sha1 @@ -0,0 +1 @@ +12ac6f103a0ff29fce17a078c7c64d25320b6165 diff --git a/solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1 b/solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1 deleted file mode 100644 index a6a5b66254a..00000000000 --- a/solr/licenses/hadoop-client-minicluster-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -521d85134dc4afae1db84120cec5c1144f49a6fd diff --git a/solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1 b/solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1 new file mode 100644 index 00000000000..b6d52bc82d6 --- /dev/null +++ b/solr/licenses/hadoop-client-minicluster-3.3.6.jar.sha1 @@ -0,0 +1 @@ +1d7be37c806e6703ea672d0e5e47fd43ea721acc diff --git a/solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1 b/solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1 deleted file mode 100644 index 170a4994686..00000000000 --- a/solr/licenses/hadoop-client-runtime-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9ddffe0944281ccdcf11b9f94777654bf4cbe00b diff --git a/solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1 b/solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1 new file mode 100644 index 00000000000..b487aec0964 --- /dev/null +++ b/solr/licenses/hadoop-client-runtime-3.3.6.jar.sha1 @@ -0,0 +1 @@ +81065531e63fccbe85fb04a3274709593fb00d3c diff --git a/solr/licenses/hadoop-common-3.3.5.jar.sha1 b/solr/licenses/hadoop-common-3.3.5.jar.sha1 deleted file mode 100644 index cd770cf992e..00000000000 --- a/solr/licenses/hadoop-common-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -915ebfe2334051a0516e39e47348be5704ef4ef4 diff --git a/solr/licenses/hadoop-common-3.3.6.jar.sha1 b/solr/licenses/hadoop-common-3.3.6.jar.sha1 new file mode 100644 index 00000000000..95d105bba1c --- /dev/null +++ b/solr/licenses/hadoop-common-3.3.6.jar.sha1 @@ -0,0 +1 @@ +09ca864bec94779e74b99e84ea02dba85a641233 diff --git a/solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1 b/solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1 deleted file mode 100644 index e9a9148daf6..00000000000 --- a/solr/licenses/hadoop-hdfs-3.3.5-tests.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -80384d0c998af7959da7a8cea0d9e9c259dd5048 diff --git a/solr/licenses/hadoop-hdfs-3.3.5.jar.sha1 b/solr/licenses/hadoop-hdfs-3.3.5.jar.sha1 deleted file mode 100644 index 10405cb8e43..00000000000 --- a/solr/licenses/hadoop-hdfs-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fe4433c652ff21d393609fd0e37277bce05a4934 diff --git a/solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1 b/solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1 new file mode 100644 index 00000000000..b464acdd272 --- /dev/null +++ b/solr/licenses/hadoop-hdfs-3.3.6-tests.jar.sha1 @@ -0,0 +1 @@ +5058b645375c6a68f509e167ad6a6ada9642df09 diff --git a/solr/licenses/hadoop-hdfs-3.3.6.jar.sha1 b/solr/licenses/hadoop-hdfs-3.3.6.jar.sha1 new file mode 100644 index 00000000000..50f78c64c31 --- /dev/null +++ b/solr/licenses/hadoop-hdfs-3.3.6.jar.sha1 @@ -0,0 +1 @@ +ba40aca60f39599d5b1f1d32b35295bfde1f3c8b diff --git a/solr/licenses/hadoop-minikdc-3.3.5.jar.sha1 b/solr/licenses/hadoop-minikdc-3.3.5.jar.sha1 deleted file mode 100644 index a9e4dbab451..00000000000 --- a/solr/licenses/hadoop-minikdc-3.3.5.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a2abae62fef3c36fbdadac89ea396be52e5b2f9b diff --git a/solr/licenses/hadoop-minikdc-3.3.6.jar.sha1 b/solr/licenses/hadoop-minikdc-3.3.6.jar.sha1 new file mode 100644 index 00000000000..26f53c37c46 --- /dev/null +++ b/solr/licenses/hadoop-minikdc-3.3.6.jar.sha1 @@ -0,0 +1 @@ +7f454a44beea61f42f37b414c0d73decbe61de32 diff --git a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java index 7844c17a5eb..b0021c889a5 100644 --- a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java +++ b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/DelegationTokenKerberosFilter.java @@ -16,10 +16,15 @@ */ package org.apache.solr.security.hadoop; +import static org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH; +import static org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT; + import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; +import java.util.Objects; +import java.util.concurrent.ExecutorService; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; @@ -41,6 +46,8 @@ import org.apache.solr.common.cloud.SolrZkClient; import org.apache.solr.common.cloud.ZkACLProvider; import org.apache.solr.common.cloud.ZkCredentialsProvider; +import org.apache.solr.common.util.ExecutorUtil; +import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.data.ACL; @@ -51,6 +58,7 @@ * reuse the authentication of an end-user or another application. */ public class DelegationTokenKerberosFilter extends DelegationTokenAuthenticationFilter { + private ExecutorService curatorSafeServiceExecutor; private CuratorFramework curatorFramework; @Override @@ -62,7 +70,8 @@ public void init(FilterConfig conf) throws ServletException { try { conf.getServletContext() .setAttribute( - "signer.secret.provider.zookeeper.curator.client", getCuratorClient(zkClient)); + "signer.secret.provider.zookeeper.curator.client", + getCuratorClientInternal(conf, zkClient)); } catch (InterruptedException | KeeperException e) { throw new ServletException(e); } @@ -123,8 +132,14 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo @Override public void destroy() { super.destroy(); - if (curatorFramework != null) curatorFramework.close(); - curatorFramework = null; + if (curatorFramework != null) { + curatorFramework.close(); + curatorFramework = null; + } + if (curatorSafeServiceExecutor != null) { + ExecutorUtil.shutdownNowAndAwaitTermination(curatorSafeServiceExecutor); + curatorSafeServiceExecutor = null; + } } @Override @@ -141,6 +156,31 @@ protected void initializeAuthHandler(String authHandlerClassName, FilterConfig f newAuthHandler.setAuthHandler(authHandler); } + private CuratorFramework getCuratorClientInternal(FilterConfig conf, SolrZkClient zkClient) + throws KeeperException, InterruptedException { + // There is a race condition where the znodeWorking path used by ZKDelegationTokenSecretManager + // can be created by multiple nodes, but Hadoop doesn't handle this well. This explicitly + // creates it up front and handles if the znode already exists. This relates to HADOOP-18452 + // but didn't solve the underlying issue of the race condition. + + // If namespace parents are implicitly created, they won't have ACLs. + // So, let's explicitly create them. + CuratorFramework curatorFramework = getCuratorClient(zkClient); + CuratorFramework nullNsFw = curatorFramework.usingNamespace(null); + try { + String znodeWorkingPath = + '/' + + Objects.requireNonNullElse( + conf.getInitParameter(ZK_DTSM_ZNODE_WORKING_PATH), + ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT) + + "/ZKDTSMRoot"; + nullNsFw.create().creatingParentContainersIfNeeded().forPath(znodeWorkingPath); + } catch (Exception ignore) { + } + + return curatorFramework; + } + protected CuratorFramework getCuratorClient(SolrZkClient zkClient) throws InterruptedException, KeeperException { // should we try to build a RetryPolicy off of the ZkController? @@ -163,10 +203,12 @@ protected CuratorFramework getCuratorClient(SolrZkClient zkClient) try { zkClient.makePath( SecurityAwareZkACLProvider.SECURITY_ZNODE_PATH, CreateMode.PERSISTENT, true); - } catch (KeeperException.NodeExistsException ex) { - // ignore? + } catch (KeeperException.NodeExistsException ignore) { } + curatorSafeServiceExecutor = + ExecutorUtil.newMDCAwareSingleThreadExecutor( + new SolrNamedThreadFactory("delegationtokenkerberosfilter-curator-safeService")); curatorFramework = CuratorFrameworkFactory.builder() .namespace(zkNamespace) @@ -176,8 +218,10 @@ protected CuratorFramework getCuratorClient(SolrZkClient zkClient) .authorization(curatorToSolrZk.getAuthInfos()) .sessionTimeoutMs(zkClient.getZkClientTimeout()) .connectionTimeoutMs(connectionTimeoutMs) + .runSafeService(curatorSafeServiceExecutor) .build(); curatorFramework.start(); + return curatorFramework; } diff --git a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java index 2c478821668..f462ad7e682 100644 --- a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java +++ b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/HadoopAuthFilter.java @@ -16,9 +16,14 @@ */ package org.apache.solr.security.hadoop; +import static org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH; +import static org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT; + import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.concurrent.ExecutorService; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; @@ -39,6 +44,8 @@ import org.apache.solr.common.cloud.SolrZkClient; import org.apache.solr.common.cloud.ZkACLProvider; import org.apache.solr.common.cloud.ZkCredentialsProvider; +import org.apache.solr.common.util.ExecutorUtil; +import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.data.ACL; @@ -53,6 +60,7 @@ public class HadoopAuthFilter extends DelegationTokenAuthenticationFilter { */ static final String DELEGATION_TOKEN_ZK_CLIENT = "solr.kerberos.delegation.token.zk.client"; + private ExecutorService curatorSafeServiceExecutor; private CuratorFramework curatorFramework; @Override @@ -63,7 +71,8 @@ public void init(FilterConfig conf) throws ServletException { try { conf.getServletContext() .setAttribute( - "signer.secret.provider.zookeeper.curator.client", getCuratorClient(zkClient)); + "signer.secret.provider.zookeeper.curator.client", + getCuratorClientInternal(conf, zkClient)); } catch (KeeperException | InterruptedException e) { throw new ServletException(e); } @@ -104,8 +113,12 @@ public void destroy() { super.destroy(); if (curatorFramework != null) { curatorFramework.close(); + curatorFramework = null; + } + if (curatorSafeServiceExecutor != null) { + ExecutorUtil.shutdownNowAndAwaitTermination(curatorSafeServiceExecutor); + curatorSafeServiceExecutor = null; } - curatorFramework = null; } @Override @@ -122,6 +135,31 @@ protected void initializeAuthHandler(String authHandlerClassName, FilterConfig f newAuthHandler.setAuthHandler(authHandler); } + private CuratorFramework getCuratorClientInternal(FilterConfig conf, SolrZkClient zkClient) + throws KeeperException, InterruptedException { + // There is a race condition where the znodeWorking path used by ZKDelegationTokenSecretManager + // can be created by multiple nodes, but Hadoop doesn't handle this well. This explicitly + // creates it up front and handles if the znode already exists. This relates to HADOOP-18452 + // but didn't solve the underlying issue of the race condition. + + // If namespace parents are implicitly created, they won't have ACLs. + // So, let's explicitly create them. + CuratorFramework curatorFramework = getCuratorClient(zkClient); + CuratorFramework nullNsFw = curatorFramework.usingNamespace(null); + try { + String znodeWorkingPath = + '/' + + Objects.requireNonNullElse( + conf.getInitParameter(ZK_DTSM_ZNODE_WORKING_PATH), + ZK_DTSM_ZNODE_WORKING_PATH_DEAFULT) + + "/ZKDTSMRoot"; + nullNsFw.create().creatingParentContainersIfNeeded().forPath(znodeWorkingPath); + } catch (Exception ignore) { + } + + return curatorFramework; + } + protected CuratorFramework getCuratorClient(SolrZkClient zkClient) throws KeeperException, InterruptedException { // should we try to build a RetryPolicy off of the ZkController? @@ -144,13 +182,12 @@ protected CuratorFramework getCuratorClient(SolrZkClient zkClient) try { zkClient.makePath( SecurityAwareZkACLProvider.SECURITY_ZNODE_PATH, CreateMode.PERSISTENT, true); - - } catch (KeeperException ex) { - if (ex.code() != KeeperException.Code.NODEEXISTS) { - throw ex; - } + } catch (KeeperException.NodeExistsException ignore) { } + curatorSafeServiceExecutor = + ExecutorUtil.newMDCAwareSingleThreadExecutor( + new SolrNamedThreadFactory("hadoopauthfilter-curator-safeService")); curatorFramework = CuratorFrameworkFactory.builder() .namespace(zkNamespace) @@ -160,8 +197,10 @@ protected CuratorFramework getCuratorClient(SolrZkClient zkClient) .authorization(curatorToSolrZk.getAuthInfos()) .sessionTimeoutMs(zkClient.getZkClientTimeout()) .connectionTimeoutMs(connectionTimeoutMs) + .runSafeService(curatorSafeServiceExecutor) .build(); curatorFramework.start(); + return curatorFramework; } diff --git a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc index ee5bc9ed840..ad7649f6d54 100644 --- a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc +++ b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc @@ -64,6 +64,10 @@ It is always strongly recommended that you fully reindex your documents after a In Solr 8, it was possible to add docValues to a schema without re-indexing via `UninvertDocValuesMergePolicy`, an advanced/expert utility. Due to changes in Lucene 9, that isn't possible any more. +== Solr 9.5 +=== Curator upgraded to 5.5.0 and requires Zookeeper 3.5.x or higher +xref:upgrade-notes:major-changes-in-solr-9.html#solr-8-2[Solr 8.2 recommended using Zookeeper 3.5.5] and now with Curator 5.5.0 requires https://curator.apache.org/docs/breaking-changes/[Zookeeper 3.5.x or higher]. This primarily affects users of `hadoop-auth`, but usage of Curator could affect other parts of Solr. + == Solr 9.4 === The Built-In Config Sets * The build in ConfigSets (`_default` and `sample_techproducts_configs`), now use a default `autoSoftCommit` time of 3 seconds, diff --git a/versions.lock b/versions.lock index b1af4b4c1a8..442f19b8a5f 100644 --- a/versions.lock +++ b/versions.lock @@ -44,7 +44,7 @@ com.google.cloud:google-cloud-storage:2.27.0 (2 constraints: d71c8a27) com.google.code.gson:gson:2.10.1 (7 constraints: 005f69b0) com.google.errorprone:error_prone_annotations:2.22.0 (11 constraints: 6e891f5a) com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37) -com.google.guava:guava:32.1.2-jre (26 constraints: a37b7b56) +com.google.guava:guava:32.1.2-jre (26 constraints: 407b586c) com.google.guava:guava-parent:32.1.2-jre (1 constraints: b80ba5eb) com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2 constraints: 4b35b0a0) com.google.http-client:google-http-client:1.43.3 (11 constraints: 3fbf96b4) @@ -177,14 +177,14 @@ org.apache.commons:commons-exec:1.3 (2 constraints: a41056b8) org.apache.commons:commons-lang3:3.13.0 (5 constraints: 9c3eb936) org.apache.commons:commons-math3:3.6.1 (5 constraints: 57322799) org.apache.commons:commons-text:1.10.0 (1 constraints: d911adf8) -org.apache.curator:curator-client:4.3.0 (2 constraints: e214cba2) -org.apache.curator:curator-framework:4.3.0 (2 constraints: ff13b474) -org.apache.curator:curator-recipes:4.3.0 (1 constraints: 09050836) -org.apache.hadoop:hadoop-annotations:3.3.5 (1 constraints: 0d050836) -org.apache.hadoop:hadoop-auth:3.3.5 (1 constraints: 0d050836) -org.apache.hadoop:hadoop-client-api:3.3.5 (3 constraints: 22287160) -org.apache.hadoop:hadoop-client-runtime:3.3.5 (2 constraints: 6d17a643) -org.apache.hadoop:hadoop-common:3.3.5 (1 constraints: 0d050836) +org.apache.curator:curator-client:5.5.0 (2 constraints: e81468a3) +org.apache.curator:curator-framework:5.5.0 (2 constraints: 05144b75) +org.apache.curator:curator-recipes:5.5.0 (1 constraints: 0c051336) +org.apache.hadoop:hadoop-annotations:3.3.6 (1 constraints: 0e050936) +org.apache.hadoop:hadoop-auth:3.3.6 (1 constraints: 0e050936) +org.apache.hadoop:hadoop-client-api:3.3.6 (3 constraints: 25280861) +org.apache.hadoop:hadoop-client-runtime:3.3.6 (2 constraints: 6f17dc43) +org.apache.hadoop:hadoop-common:3.3.6 (1 constraints: 0e050936) org.apache.hadoop.thirdparty:hadoop-shaded-guava:1.1.1 (1 constraints: 0505f435) org.apache.httpcomponents:httpclient:4.5.14 (9 constraints: 62806342) org.apache.httpcomponents:httpcore:4.4.16 (8 constraints: 256d4617) @@ -256,7 +256,7 @@ org.apache.tika:tika-core:1.28.5 (2 constraints: d8118f11) org.apache.tika:tika-parsers:1.28.5 (1 constraints: 42054a3b) org.apache.tomcat:annotations-api:6.0.53 (1 constraints: 40054e3b) org.apache.xmlbeans:xmlbeans:5.0.3 (2 constraints: 72173075) -org.apache.zookeeper:zookeeper:3.9.0 (2 constraints: a0134e5f) +org.apache.zookeeper:zookeeper:3.9.0 (2 constraints: 9c134e5f) org.apache.zookeeper:zookeeper-jute:3.9.0 (2 constraints: 99125f23) org.apiguardian:apiguardian-api:1.1.2 (2 constraints: 601bd5a8) org.bitbucket.b_c:jose4j:0.9.3 (1 constraints: 0e050936) @@ -410,9 +410,9 @@ net.bytebuddy:byte-buddy:1.14.6 (1 constraints: 460b44de) net.minidev:accessors-smart:2.4.9 (1 constraints: 500a92b8) net.minidev:json-smart:2.4.10 (1 constraints: 400e9a7c) no.nav.security:mock-oauth2-server:0.5.10 (1 constraints: 3805333b) -org.apache.hadoop:hadoop-client-minicluster:3.3.5 (1 constraints: 0d050836) -org.apache.hadoop:hadoop-hdfs:3.3.5 (1 constraints: 0d050836) -org.apache.hadoop:hadoop-minikdc:3.3.5 (1 constraints: 0d050836) +org.apache.hadoop:hadoop-client-minicluster:3.3.6 (1 constraints: 0e050936) +org.apache.hadoop:hadoop-hdfs:3.3.6 (1 constraints: 0e050936) +org.apache.hadoop:hadoop-minikdc:3.3.6 (1 constraints: 0e050936) org.apache.kerby:kerb-admin:1.0.1 (1 constraints: 840d892f) org.apache.kerby:kerb-client:1.0.1 (1 constraints: 840d892f) org.apache.kerby:kerb-common:1.0.1 (2 constraints: a51841ca) diff --git a/versions.props b/versions.props index d12da6f2b50..a19f4b3f67c 100644 --- a/versions.props +++ b/versions.props @@ -39,9 +39,9 @@ org.apache.commons:commons-configuration2=2.9.0 org.apache.commons:commons-exec=1.3 org.apache.commons:commons-lang3=3.13.0 org.apache.commons:commons-math3=3.6.1 -org.apache.curator:*=4.3.0 +org.apache.curator:*=5.5.0 org.apache.hadoop.thirdparty:*=1.1.1 -org.apache.hadoop:*=3.3.5 +org.apache.hadoop:*=3.3.6 org.apache.httpcomponents:httpclient=4.5.14 org.apache.httpcomponents:httpcore=4.4.16 org.apache.httpcomponents:httpmime=4.5.14 From 204ff1ddb7d3571ed15157a0254737085d3996b3 Mon Sep 17 00:00:00 2001 From: Alex D Date: Wed, 4 Oct 2023 17:14:27 -0700 Subject: [PATCH 25/29] SOLR-17009 json.wrf parameter ignored in JacksonJsonWriter (#1980) --- .../src/java/org/apache/solr/response/JacksonJsonWriter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java b/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java index 79b09ae3bf4..611223fd216 100644 --- a/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java +++ b/solr/core/src/java/org/apache/solr/response/JacksonJsonWriter.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.util.DefaultIndenter; import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; import java.io.IOException; import java.io.OutputStream; @@ -34,7 +35,8 @@ public class JacksonJsonWriter extends BinaryResponseWriter { protected static final DefaultPrettyPrinter pretty = new DefaultPrettyPrinter() .withoutSpacesInObjectEntries() - .withArrayIndenter(DefaultPrettyPrinter.NopIndenter.instance); + .withArrayIndenter(DefaultPrettyPrinter.NopIndenter.instance) + .withObjectIndenter(new DefaultIndenter().withLinefeed("\n")); public JacksonJsonWriter() { super(); From 9fde70b9e7fff2a1d24d55d23e38383daf642c10 Mon Sep 17 00:00:00 2001 From: Kevin Risden Date: Thu, 5 Oct 2023 12:17:07 -0400 Subject: [PATCH 26/29] SOLR-17014: Ensure that injecting random recording flag only happens under randomized context SOLR-16960 (#1983) --- .../java/org/apache/solr/cloud/MiniSolrCloudCluster.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java index 75113bc5b66..3b8d4e1c774 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java @@ -1318,8 +1318,13 @@ public Builder withTraceIdGenerationDisabled() { * mechanics. */ private static void injectRandomRecordingFlag() { - boolean isRecording = LuceneTestCase.rarely(); - TraceUtils.IS_RECORDING = (ignored) -> isRecording; + try { + boolean isRecording = LuceneTestCase.rarely(); + TraceUtils.IS_RECORDING = (ignored) -> isRecording; + } catch (IllegalStateException e) { + // This can happen in benchmarks or other places that aren't in a randomized test + log.warn("Unable to inject random recording flag due to outside randomized context", e); + } } private static void resetRecordingFlag() { From 8740b07efa8e78ab9ad1842cfd836e23b2cf6fd8 Mon Sep 17 00:00:00 2001 From: julia-maimone <146019185+julia-maimone@users.noreply.github.com> Date: Thu, 5 Oct 2023 21:46:12 -0700 Subject: [PATCH 27/29] SOLR-16924: RESTORECORE: make UpdateLog ACTIVE without requiring REQUESTAPPLYUPDATES (#1965) RESTORECORE now sets the UpdateLog to ACTIVE state instead of requiring a separate REQUESTAPPLYUPDATES call in Collection restore. The latter will still happen in 9.x for backwards-compatibility. --------- Co-authored-by: Julia Maimone Co-authored-by: David Smiley --- solr/CHANGES.txt | 4 ++- .../cloud/api/collections/RestoreCmd.java | 32 ------------------- .../handler/admin/api/RestoreCoreAPI.java | 7 ++++ .../pages/major-changes-in-solr-10.adoc | 5 +++ 4 files changed, 15 insertions(+), 33 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 224e86baeca..0e6ec525018 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -72,7 +72,9 @@ New Features Improvements --------------------- -(No changes) +* SOLR-16924: RESTORECORE now sets the UpdateLog to ACTIVE state instead of requiring a separate + REQUESTAPPLYUPDATES call in Collection restore. The latter will still happen in 9.x for + backwards-compatibility. (Julia Lamoine, David Smiley) Optimizations --------------------- diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java index 2140078ed1e..7621750a5f5 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java @@ -300,7 +300,6 @@ public void process(NamedList results, RestoreContext rc) throws Excepti rc.repo, rc.shardHandler, rc.asyncId); - requestReplicasToApplyBufferUpdates(restoreCollection, rc.asyncId, rc.shardHandler); markAllShardsAsActive(restoreCollection); addReplicasToShards(results, clusterState, restoreCollection, replicaPositions, rc.asyncId); restoringAlias(rc.backupProperties); @@ -527,37 +526,6 @@ private void createSingleReplicaPerShard( } } - private void requestReplicasToApplyBufferUpdates( - DocCollection restoreCollection, String asyncId, ShardHandler shardHandler) { - ShardRequestTracker shardRequestTracker = - CollectionHandlingUtils.asyncRequestTracker(asyncId, ccc); - - for (Slice s : restoreCollection.getSlices()) { - for (Replica r : s.getReplicas()) { - String nodeName = r.getNodeName(); - String coreNodeName = r.getCoreName(); - Replica.State stateRep = r.getState(); - - log.debug( - "Calling REQUESTAPPLYUPDATES on: nodeName={}, coreNodeName={}, state={}", - nodeName, - coreNodeName, - stateRep); - - ModifiableSolrParams params = new ModifiableSolrParams(); - params.set( - CoreAdminParams.ACTION, - CoreAdminParams.CoreAdminAction.REQUESTAPPLYUPDATES.toString()); - params.set(CoreAdminParams.NAME, coreNodeName); - - shardRequestTracker.sendShardRequest(nodeName, params, shardHandler); - } - - shardRequestTracker.processResponses( - new NamedList<>(), shardHandler, true, "REQUESTAPPLYUPDATES calls did not succeed"); - } - } - // Mark all shards in ACTIVE STATE private void markAllShardsAsActive(DocCollection restoreCollection) throws KeeperException, InterruptedException { diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java index 7e8ccf29862..fe80576fa67 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java @@ -42,6 +42,7 @@ import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; +import org.apache.solr.update.UpdateLog; /** * V2 API for restoring a previously taken backup to a core @@ -146,6 +147,12 @@ private void doRestore(String coreName, RestoreCoreRequestBody requestBody) thro .getZkController() .getShardTerms(cd.getCollectionName(), cd.getShardId()) .ensureHighestTermsAreNotZero(); + + // transitions state of update log to ACTIVE + UpdateLog updateLog = core.getUpdateHandler().getUpdateLog(); + if (updateLog != null) { + updateLog.applyBufferedUpdates(); + } } } diff --git a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc index fed3ed14110..b90e1daf6b4 100644 --- a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc +++ b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc @@ -30,6 +30,11 @@ Before starting an upgrade to this version of Solr, please take the time to revi Starting in 10, the Maven POM for SolrJ does not refer to SolrJ modules like ZooKeeper. If you require such functionality, you need to add additional dependencies. +=== Backup / Restore + +If an in-place upgrade is occurring, it's best to ensure that no Collection backups are being restored _while_ this happens. +It's possible for a restored collection to not accept future indexing. + === Deprecation removals * The `jaegertracer-configurator` module, which was deprecated in 9.2, is removed. Users should migrate to the `opentelemetry` module. From 16d57e935499a5c3163a224f1e7e55a1091e029a Mon Sep 17 00:00:00 2001 From: Jason Gerlowski Date: Fri, 6 Oct 2023 10:48:06 -0400 Subject: [PATCH 28/29] SOLR-16825: Migrate v2 definitions to 'api' module, pt 5 (#1974) This commit covers the collection-prop, core-snapshot, migrate-replicas, reload-core, and restore-core APIs. Extracting annotated interfaces for these APIs includes them in the SolrRequest- generation we now do in SolrJ --- .../api/endpoint/CollectionPropertyApi.java | 47 ++++++ .../client/api/endpoint/CoreSnapshotApi.java | 79 +++++++++++ .../api/endpoint/MigrateReplicasApi.java | 37 +++++ .../client/api/endpoint/ReloadCoreApi.java | 44 ++++++ .../client/api/endpoint/RestoreCoreApi.java | 40 ++++++ .../solr/client/api/model/Constants.java | 7 + .../api/model/CreateCoreSnapshotResponse.java | 45 ++++++ .../api/model/DeleteSnapshotResponse.java | 32 +++++ .../api/model/ListCoreSnapshotsResponse.java | 27 ++++ .../api/model/MigrateReplicasRequestBody.java | 56 ++++++++ .../api/model/ReloadCoreRequestBody.java | 26 ++++ .../api/model/RestoreCoreRequestBody.java | 36 +++++ .../client/api/model/SnapshotInformation.java | 41 ++++++ .../UpdateCollectionPropertyRequestBody.java | 30 ++++ .../core/snapshots/SolrSnapshotManager.java | 4 +- .../handler/admin/CollectionsHandler.java | 17 ++- .../solr/handler/admin/CoreAdminHandler.java | 12 +- .../handler/admin/CoreAdminOperation.java | 21 ++- .../solr/handler/admin/CreateSnapshotOp.java | 9 +- .../solr/handler/admin/DeleteSnapshotOp.java | 9 +- .../solr/handler/admin/RestoreCoreOp.java | 13 +- ...opertyAPI.java => CollectionProperty.java} | 42 ++---- ...CoreSnapshotAPI.java => CoreSnapshot.java} | 134 +++--------------- ...eReplicasAPI.java => MigrateReplicas.java} | 60 +------- .../{ReloadCoreAPI.java => ReloadCore.java} | 35 +---- .../{RestoreCoreAPI.java => RestoreCore.java} | 63 +++----- .../solr/cloud/MigrateReplicasTest.java | 18 +-- .../org/apache/solr/core/PluginBagTest.java | 4 +- .../admin/api/CoreSnapshotAPITest.java | 16 ++- .../admin/api/MigrateReplicasAPITest.java | 23 ++- .../handler/admin/api/ReloadCoreAPITest.java | 12 +- 31 files changed, 687 insertions(+), 352 deletions(-) create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/CreateCoreSnapshotResponse.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/DeleteSnapshotResponse.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/ListCoreSnapshotsResponse.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/MigrateReplicasRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/ReloadCoreRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/RestoreCoreRequestBody.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/SnapshotInformation.java create mode 100644 solr/api/src/java/org/apache/solr/client/api/model/UpdateCollectionPropertyRequestBody.java rename solr/core/src/java/org/apache/solr/handler/admin/api/{CollectionPropertyAPI.java => CollectionProperty.java} (68%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{CoreSnapshotAPI.java => CoreSnapshot.java} (54%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{MigrateReplicasAPI.java => MigrateReplicas.java} (64%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{ReloadCoreAPI.java => ReloadCore.java} (62%) rename solr/core/src/java/org/apache/solr/handler/admin/api/{RestoreCoreAPI.java => RestoreCore.java} (74%) diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java new file mode 100644 index 00000000000..ed26ea443cc --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CollectionPropertyApi.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import javax.ws.rs.DELETE; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.SolrJerseyResponse; +import org.apache.solr.client.api.model.UpdateCollectionPropertyRequestBody; + +/** V2 API definitions for modifying collection-level properties. */ +@Path("/collections/{collName}/properties/{propName}") +public interface CollectionPropertyApi { + @PUT + @Operation( + summary = "Create or update a collection property", + tags = {"collection-properties"}) + SolrJerseyResponse createOrUpdateCollectionProperty( + @PathParam("collName") String collName, + @PathParam("propName") String propName, + UpdateCollectionPropertyRequestBody requestBody) + throws Exception; + + @DELETE + @Operation( + summary = "Delete the specified collection property from the collection", + tags = {"collection-properties"}) + SolrJerseyResponse deleteCollectionProperty( + @PathParam("collName") String collName, @PathParam("propName") String propName) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java new file mode 100644 index 00000000000..8d19211da16 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/CoreSnapshotApi.java @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.QueryParam; +import org.apache.solr.client.api.model.CreateCoreSnapshotResponse; +import org.apache.solr.client.api.model.DeleteSnapshotResponse; +import org.apache.solr.client.api.model.ListCoreSnapshotsResponse; + +/** V2 API definitions for Creating, Listing, and Deleting Core Snapshots. */ +@Path("/cores/{coreName}/snapshots") +public interface CoreSnapshotApi { + @POST + @Path("/{snapshotName}") + @Operation( + summary = "Create a new snapshot of the specified core.", + tags = {"core-snapshots"}) + CreateCoreSnapshotResponse createSnapshot( + @Parameter(description = "The name of the core to snapshot.", required = true) + @PathParam("coreName") + String coreName, + @Parameter(description = "The name to associate with the core snapshot.", required = true) + @PathParam("snapshotName") + String snapshotName, + @Parameter(description = "The id to associate with the async task.") @QueryParam("async") + String taskId) + throws Exception; + + @GET + @Operation( + summary = "List existing snapshots for the specified core.", + tags = {"core-snapshots"}) + ListCoreSnapshotsResponse listSnapshots( + @Parameter( + description = "The name of the core for which to retrieve snapshots.", + required = true) + @PathParam("coreName") + String coreName) + throws Exception; + + @DELETE + @Path("/{snapshotName}") + @Operation( + summary = "Delete a single snapshot from the specified core.", + tags = {"core-snapshots"}) + DeleteSnapshotResponse deleteSnapshot( + @Parameter( + description = "The name of the core for which to delete a snapshot.", + required = true) + @PathParam("coreName") + String coreName, + @Parameter(description = "The name of the core snapshot to delete.", required = true) + @PathParam("snapshotName") + String snapshotName, + @Parameter(description = "The id to associate with the async task.") @QueryParam("async") + String taskId) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java new file mode 100644 index 00000000000..82e8110b697 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/MigrateReplicasApi.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import org.apache.solr.client.api.model.MigrateReplicasRequestBody; +import org.apache.solr.client.api.model.SolrJerseyResponse; + +/** V2 API definition for migrating replicas from a set of nodes to another set of nodes. */ +@Path("cluster/replicas/migrate") +public interface MigrateReplicasApi { + @POST + @Operation( + summary = "Migrate Replicas from a given set of nodes.", + tags = {"cluster"}) + SolrJerseyResponse migrateReplicas( + @RequestBody(description = "Contains user provided parameters", required = true) + MigrateReplicasRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java new file mode 100644 index 00000000000..8a7cced7aa1 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/ReloadCoreApi.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.ReloadCoreRequestBody; +import org.apache.solr.client.api.model.SolrJerseyResponse; + +/** V2 API definition for reloading an individual core. */ +@Path("/cores/{coreName}/reload") +public interface ReloadCoreApi { + + @POST + @Operation( + summary = "Reload the specified core.", + tags = {"cores"}) + SolrJerseyResponse reloadCore( + @Parameter(description = "The name of the core to reload.", required = true) + @PathParam("coreName") + String coreName, + @Schema(description = "Additional parameters for reloading the core") @RequestBody + ReloadCoreRequestBody reloadCoreRequestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java b/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java new file mode 100644 index 00000000000..3f2264a6562 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/endpoint/RestoreCoreApi.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.endpoint; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import org.apache.solr.client.api.model.RestoreCoreRequestBody; +import org.apache.solr.client.api.model.SolrJerseyResponse; + +/** V2 API definition for restoring a previously taken backup to a core */ +@Path("/cores/{coreName}/restore") +public interface RestoreCoreApi { + + @POST + @Operation( + summary = "Restore a previously-taken backup to the specified core", + tags = {"cores"}) + SolrJerseyResponse restoreCore( + @Parameter(description = "The name of the core to be restored") @PathParam("coreName") + String coreName, + RestoreCoreRequestBody requestBody) + throws Exception; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/Constants.java b/solr/api/src/java/org/apache/solr/client/api/model/Constants.java index 0992c2c3a17..798e09d5e26 100644 --- a/solr/api/src/java/org/apache/solr/client/api/model/Constants.java +++ b/solr/api/src/java/org/apache/solr/client/api/model/Constants.java @@ -19,6 +19,9 @@ public class Constants { + // TODO Most of these constants are also defined in various constant files in 'solrj' - we should + // move those into the 'api' module and eliminate this file. + private Constants() { /* Private ctor prevents instantiation */ } @@ -51,4 +54,8 @@ private Constants() { /** The name of the config set to be used for a collection */ public static final String COLL_CONF = "collection.configName"; + + public static final String SNAPSHOT_GENERATION_NUM = "generation"; + + public static final String SNAPSHOT_NAME = "snapshotName"; } diff --git a/solr/api/src/java/org/apache/solr/client/api/model/CreateCoreSnapshotResponse.java b/solr/api/src/java/org/apache/solr/client/api/model/CreateCoreSnapshotResponse.java new file mode 100644 index 00000000000..9f633a8830b --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/CreateCoreSnapshotResponse.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import static org.apache.solr.client.api.model.Constants.SNAPSHOT_NAME; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Collection; + +public class CreateCoreSnapshotResponse extends SolrJerseyResponse { + @Schema(description = "The name of the core.") + @JsonProperty + public String core; + + @Schema(name = "commitName", description = "The name of the created snapshot.") + @JsonProperty(SNAPSHOT_NAME) + public String commitName; + + @Schema(description = "The path to the directory containing the index files.") + @JsonProperty + public String indexDirPath; + + @Schema(description = "The generation value for the created snapshot.") + @JsonProperty + public Long generation; + + @Schema(description = "The list of index filenames contained within the created snapshot.") + @JsonProperty + public Collection files; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/DeleteSnapshotResponse.java b/solr/api/src/java/org/apache/solr/client/api/model/DeleteSnapshotResponse.java new file mode 100644 index 00000000000..970387edc5e --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/DeleteSnapshotResponse.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import static org.apache.solr.client.api.model.Constants.SNAPSHOT_NAME; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; + +public class DeleteSnapshotResponse extends SolrJerseyResponse { + @Schema(name = "coreName", description = "The name of the core.") + @JsonProperty("core") + public String coreName; + + @Schema(name = "commitName", description = "The name of the deleted snapshot.") + @JsonProperty(SNAPSHOT_NAME) + public String commitName; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/ListCoreSnapshotsResponse.java b/solr/api/src/java/org/apache/solr/client/api/model/ListCoreSnapshotsResponse.java new file mode 100644 index 00000000000..0e6d87709ea --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/ListCoreSnapshotsResponse.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Map; + +public class ListCoreSnapshotsResponse extends SolrJerseyResponse { + @Schema(description = "The collection of snapshots found for the requested core.") + @JsonProperty + public Map snapshots; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/MigrateReplicasRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/MigrateReplicasRequestBody.java new file mode 100644 index 00000000000..8970d6b7c4d --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/MigrateReplicasRequestBody.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Set; + +public class MigrateReplicasRequestBody { + + public MigrateReplicasRequestBody() {} + + public MigrateReplicasRequestBody( + Set sourceNodes, Set targetNodes, Boolean waitForFinalState, String async) { + this.sourceNodes = sourceNodes; + this.targetNodes = targetNodes; + this.waitForFinalState = waitForFinalState; + this.async = async; + } + + @Schema(description = "The set of nodes which all replicas will be migrated off of.") + @JsonProperty(required = true) + public Set sourceNodes; + + @Schema( + description = + "A set of nodes to migrate the replicas to. If this is not provided, then the API will use the live data nodes not in 'sourceNodes'.") + @JsonProperty + public Set targetNodes; + + @Schema( + description = + "If true, the request will complete only when all affected replicas become active. " + + "If false, the API will return the status of the single action, which may be " + + "before the new replicas are online and active.") + @JsonProperty + public Boolean waitForFinalState = false; + + @Schema(description = "Request ID to track this action which will be processed asynchronously.") + @JsonProperty + public String async; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/ReloadCoreRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/ReloadCoreRequestBody.java new file mode 100644 index 00000000000..51b0d4bd761 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/ReloadCoreRequestBody.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; + +public class ReloadCoreRequestBody { + @Schema(description = "Request ID to track this action which will be processed asynchronously.") + @JsonProperty + public String async; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/RestoreCoreRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/RestoreCoreRequestBody.java new file mode 100644 index 00000000000..ca2a9f5cf98 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/RestoreCoreRequestBody.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import static org.apache.solr.client.api.model.Constants.BACKUP_REPOSITORY; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; + +public class RestoreCoreRequestBody { + @JsonProperty public String name; + + @JsonProperty public String shardBackupId; + + @Schema(name = "backupRepository") + @JsonProperty(BACKUP_REPOSITORY) + public String backupRepository; + + @JsonProperty public String location; + + @JsonProperty public String async; +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/SnapshotInformation.java b/solr/api/src/java/org/apache/solr/client/api/model/SnapshotInformation.java new file mode 100644 index 00000000000..31ec92d3045 --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/SnapshotInformation.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import static org.apache.solr.client.api.model.Constants.SNAPSHOT_GENERATION_NUM; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Contained in {@link ListCoreSnapshotsResponse}, this holds information for a given core's + * Snapshot + */ +public class SnapshotInformation { + @Schema(name = "generationNumber", description = "The generation value for the snapshot.") + @JsonProperty(SNAPSHOT_GENERATION_NUM) + public final long generationNumber; + + @Schema(description = "The path to the directory containing the index files.") + @JsonProperty + public final String indexDirPath; + + public SnapshotInformation(long generationNumber, String indexDirPath) { + this.generationNumber = generationNumber; + this.indexDirPath = indexDirPath; + } +} diff --git a/solr/api/src/java/org/apache/solr/client/api/model/UpdateCollectionPropertyRequestBody.java b/solr/api/src/java/org/apache/solr/client/api/model/UpdateCollectionPropertyRequestBody.java new file mode 100644 index 00000000000..73e6bd200dd --- /dev/null +++ b/solr/api/src/java/org/apache/solr/client/api/model/UpdateCollectionPropertyRequestBody.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.solr.client.api.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class UpdateCollectionPropertyRequestBody { + public UpdateCollectionPropertyRequestBody() {} + + public UpdateCollectionPropertyRequestBody(String value) { + this.value = value; + } + + @JsonProperty(required = true) + public String value; +} diff --git a/solr/core/src/java/org/apache/solr/core/snapshots/SolrSnapshotManager.java b/solr/core/src/java/org/apache/solr/core/snapshots/SolrSnapshotManager.java index dd475b03e6e..acdbd722717 100644 --- a/solr/core/src/java/org/apache/solr/core/snapshots/SolrSnapshotManager.java +++ b/solr/core/src/java/org/apache/solr/core/snapshots/SolrSnapshotManager.java @@ -16,6 +16,8 @@ */ package org.apache.solr.core.snapshots; +import static org.apache.solr.client.api.model.Constants.SNAPSHOT_GENERATION_NUM; + import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -49,7 +51,7 @@ public class SolrSnapshotManager { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); public static final String INDEX_DIR_PATH = "indexDirPath"; - public static final String GENERATION_NUM = "generation"; + public static final String GENERATION_NUM = SNAPSHOT_GENERATION_NUM; public static final String SNAPSHOT_STATUS = "status"; public static final String CREATION_DATE = "creationDate"; public static final String SNAPSHOT_REPLICAS = "replicas"; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java index d91f4e1914b..0ed22f2f065 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java @@ -127,6 +127,7 @@ import org.apache.solr.client.api.model.ReplaceNodeRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.api.model.UpdateAliasPropertiesRequestBody; +import org.apache.solr.client.api.model.UpdateCollectionPropertyRequestBody; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.RequestStatusState; @@ -170,7 +171,7 @@ import org.apache.solr.handler.admin.api.AliasProperty; import org.apache.solr.handler.admin.api.BalanceReplicas; import org.apache.solr.handler.admin.api.BalanceShardUniqueAPI; -import org.apache.solr.handler.admin.api.CollectionPropertyAPI; +import org.apache.solr.handler.admin.api.CollectionProperty; import org.apache.solr.handler.admin.api.CollectionStatusAPI; import org.apache.solr.handler.admin.api.CreateAliasAPI; import org.apache.solr.handler.admin.api.CreateCollection; @@ -193,7 +194,7 @@ import org.apache.solr.handler.admin.api.ListCollectionSnapshotsAPI; import org.apache.solr.handler.admin.api.ListCollections; import org.apache.solr.handler.admin.api.MigrateDocsAPI; -import org.apache.solr.handler.admin.api.MigrateReplicasAPI; +import org.apache.solr.handler.admin.api.MigrateReplicas; import org.apache.solr.handler.admin.api.ModifyCollectionAPI; import org.apache.solr.handler.admin.api.MoveReplicaAPI; import org.apache.solr.handler.admin.api.RebalanceLeadersAPI; @@ -786,14 +787,12 @@ public enum CollectionOperation implements CollectionOp { final String propName = req.getParams().required().get(PROPERTY_NAME); final String val = req.getParams().get(PROPERTY_VALUE); - final CollectionPropertyAPI setCollPropApi = - new CollectionPropertyAPI(h.coreContainer, req, rsp); + final CollectionProperty setCollPropApi = + new CollectionProperty(h.coreContainer, req, rsp); final SolrJerseyResponse setPropRsp = (val != null) ? setCollPropApi.createOrUpdateCollectionProperty( - collection, - propName, - new CollectionPropertyAPI.UpdateCollectionPropertyRequestBody(val)) + collection, propName, new UpdateCollectionPropertyRequestBody(val)) : setCollPropApi.deleteCollectionProperty(collection, propName); V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp, setPropRsp); return null; @@ -1381,11 +1380,11 @@ public Collection> getJerseyResources() { ReloadCollectionAPI.class, RenameCollection.class, ReplaceNode.class, - MigrateReplicasAPI.class, + MigrateReplicas.class, BalanceReplicas.class, RestoreCollectionAPI.class, SyncShard.class, - CollectionPropertyAPI.class, + CollectionProperty.class, DeleteNode.class, ListAliases.class, AliasProperty.class, diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java index d9ece272f75..25af745db5b 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java @@ -56,21 +56,21 @@ import org.apache.solr.handler.RequestHandlerBase; import org.apache.solr.handler.admin.api.AllCoresStatusAPI; import org.apache.solr.handler.admin.api.BackupCoreAPI; -import org.apache.solr.handler.admin.api.CoreSnapshotAPI; +import org.apache.solr.handler.admin.api.CoreSnapshot; import org.apache.solr.handler.admin.api.CreateCoreAPI; import org.apache.solr.handler.admin.api.InstallCoreData; import org.apache.solr.handler.admin.api.MergeIndexesAPI; import org.apache.solr.handler.admin.api.OverseerOperationAPI; import org.apache.solr.handler.admin.api.PrepareCoreRecoveryAPI; import org.apache.solr.handler.admin.api.RejoinLeaderElectionAPI; -import org.apache.solr.handler.admin.api.ReloadCoreAPI; +import org.apache.solr.handler.admin.api.ReloadCore; import org.apache.solr.handler.admin.api.RenameCoreAPI; import org.apache.solr.handler.admin.api.RequestApplyCoreUpdatesAPI; import org.apache.solr.handler.admin.api.RequestBufferUpdatesAPI; import org.apache.solr.handler.admin.api.RequestCoreCommandStatusAPI; import org.apache.solr.handler.admin.api.RequestCoreRecoveryAPI; import org.apache.solr.handler.admin.api.RequestSyncShardAPI; -import org.apache.solr.handler.admin.api.RestoreCoreAPI; +import org.apache.solr.handler.admin.api.RestoreCore; import org.apache.solr.handler.admin.api.SingleCoreStatusAPI; import org.apache.solr.handler.admin.api.SplitCoreAPI; import org.apache.solr.handler.admin.api.SwapCoresAPI; @@ -402,11 +402,11 @@ public Collection getApis() { @Override public Collection> getJerseyResources() { return List.of( - CoreSnapshotAPI.class, + CoreSnapshot.class, InstallCoreData.class, BackupCoreAPI.class, - RestoreCoreAPI.class, - ReloadCoreAPI.class); + RestoreCore.class, + ReloadCore.class); } public interface CoreAdminOp { diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java index 987c79d376b..5c95a20a36f 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java @@ -58,6 +58,8 @@ import java.nio.file.Path; import java.util.Locale; import java.util.Map; +import org.apache.solr.client.api.model.ListCoreSnapshotsResponse; +import org.apache.solr.client.api.model.ReloadCoreRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.cloud.ZkController; import org.apache.solr.common.SolrException; @@ -72,8 +74,8 @@ import org.apache.solr.core.CoreDescriptor; import org.apache.solr.core.SolrCore; import org.apache.solr.handler.admin.CoreAdminHandler.CoreAdminOp; -import org.apache.solr.handler.admin.api.CoreSnapshotAPI; -import org.apache.solr.handler.admin.api.ReloadCoreAPI; +import org.apache.solr.handler.admin.api.CoreSnapshot; +import org.apache.solr.handler.admin.api.ReloadCore; import org.apache.solr.handler.api.V2ApiUtils; import org.apache.solr.search.SolrIndexSearcher; import org.apache.solr.update.UpdateLog; @@ -135,11 +137,10 @@ public enum CoreAdminOperation implements CoreAdminOp { SolrParams params = it.req.getParams(); String cname = params.required().get(CoreAdminParams.CORE); - ReloadCoreAPI reloadCoreAPI = - new ReloadCoreAPI( + ReloadCore reloadCoreAPI = + new ReloadCore( it.req, it.rsp, it.handler.coreContainer, it.handler.getCoreAdminAsyncTracker()); - ReloadCoreAPI.ReloadCoreRequestBody reloadCoreRequestBody = - new ReloadCoreAPI.ReloadCoreRequestBody(); + ReloadCoreRequestBody reloadCoreRequestBody = new ReloadCoreRequestBody(); SolrJerseyResponse response = reloadCoreAPI.reloadCore(cname, reloadCoreRequestBody); V2ApiUtils.squashIntoSolrResponseWithoutHeader(it.rsp, response); }), @@ -293,12 +294,10 @@ public enum CoreAdminOperation implements CoreAdminOp { final String coreName = params.required().get(CoreAdminParams.CORE); final CoreContainer coreContainer = it.handler.getCoreContainer(); - final CoreSnapshotAPI coreSnapshotAPI = - new CoreSnapshotAPI( - it.req, it.rsp, coreContainer, it.handler.getCoreAdminAsyncTracker()); + final CoreSnapshot coreSnapshotAPI = + new CoreSnapshot(it.req, it.rsp, coreContainer, it.handler.getCoreAdminAsyncTracker()); - final CoreSnapshotAPI.ListSnapshotsResponse response = - coreSnapshotAPI.listSnapshots(coreName); + final ListCoreSnapshotsResponse response = coreSnapshotAPI.listSnapshots(coreName); V2ApiUtils.squashIntoSolrResponseWithoutHeader(it.rsp, response); }); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CreateSnapshotOp.java b/solr/core/src/java/org/apache/solr/handler/admin/CreateSnapshotOp.java index 6b27293c47f..4dea78c92b2 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CreateSnapshotOp.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CreateSnapshotOp.java @@ -17,10 +17,11 @@ package org.apache.solr.handler.admin; +import org.apache.solr.client.api.model.CreateCoreSnapshotResponse; import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.core.CoreContainer; -import org.apache.solr.handler.admin.api.CoreSnapshotAPI; +import org.apache.solr.handler.admin.api.CoreSnapshot; import org.apache.solr.handler.api.V2ApiUtils; class CreateSnapshotOp implements CoreAdminHandler.CoreAdminOp { @@ -31,10 +32,10 @@ public void execute(CoreAdminHandler.CallInfo it) throws Exception { final String commitName = params.required().get(CoreAdminParams.COMMIT_NAME); final CoreContainer coreContainer = it.handler.getCoreContainer(); - final CoreSnapshotAPI coreSnapshotAPI = - new CoreSnapshotAPI(it.req, it.rsp, coreContainer, it.handler.getCoreAdminAsyncTracker()); + final CoreSnapshot coreSnapshotAPI = + new CoreSnapshot(it.req, it.rsp, coreContainer, it.handler.getCoreAdminAsyncTracker()); - final CoreSnapshotAPI.CreateSnapshotResponse response = + final CreateCoreSnapshotResponse response = coreSnapshotAPI.createSnapshot(coreName, commitName, null); V2ApiUtils.squashIntoSolrResponseWithoutHeader(it.rsp, response); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/DeleteSnapshotOp.java b/solr/core/src/java/org/apache/solr/handler/admin/DeleteSnapshotOp.java index a13bd6d5163..d49863ff7a4 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/DeleteSnapshotOp.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/DeleteSnapshotOp.java @@ -17,10 +17,11 @@ package org.apache.solr.handler.admin; +import org.apache.solr.client.api.model.DeleteSnapshotResponse; import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.core.CoreContainer; -import org.apache.solr.handler.admin.api.CoreSnapshotAPI; +import org.apache.solr.handler.admin.api.CoreSnapshot; import org.apache.solr.handler.api.V2ApiUtils; class DeleteSnapshotOp implements CoreAdminHandler.CoreAdminOp { @@ -32,10 +33,10 @@ public void execute(CoreAdminHandler.CallInfo it) throws Exception { final String coreName = params.required().get(CoreAdminParams.CORE); final CoreContainer coreContainer = it.handler.getCoreContainer(); - final CoreSnapshotAPI coreSnapshotAPI = - new CoreSnapshotAPI(it.req, it.rsp, coreContainer, it.handler.getCoreAdminAsyncTracker()); + final CoreSnapshot coreSnapshotAPI = + new CoreSnapshot(it.req, it.rsp, coreContainer, it.handler.getCoreAdminAsyncTracker()); - final CoreSnapshotAPI.DeleteSnapshotResponse response = + final DeleteSnapshotResponse response = coreSnapshotAPI.deleteSnapshot(coreName, commitName, null); V2ApiUtils.squashIntoSolrResponseWithoutHeader(it.rsp, response); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/RestoreCoreOp.java b/solr/core/src/java/org/apache/solr/handler/admin/RestoreCoreOp.java index c95af84d3d7..1bfc32f56e0 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/RestoreCoreOp.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/RestoreCoreOp.java @@ -17,10 +17,11 @@ package org.apache.solr.handler.admin; +import org.apache.solr.client.api.model.RestoreCoreRequestBody; import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.core.CoreContainer; -import org.apache.solr.handler.admin.api.RestoreCoreAPI; +import org.apache.solr.handler.admin.api.RestoreCore; import org.apache.solr.handler.api.V2ApiUtils; class RestoreCoreOp implements CoreAdminHandler.CoreAdminOp { @@ -34,23 +35,23 @@ public boolean isExpensive() { public void execute(CoreAdminHandler.CallInfo it) throws Exception { final SolrParams params = it.req.getParams(); String cname = params.required().get(CoreAdminParams.CORE); - final var requestBody = new RestoreCoreAPI.RestoreCoreRequestBody(); + final var requestBody = new RestoreCoreRequestBody(); // "async" param intentionally omitted because CoreAdminHandler has already processed requestBody.name = params.get(CoreAdminParams.NAME); requestBody.shardBackupId = params.get(CoreAdminParams.SHARD_BACKUP_ID); requestBody.location = params.get(CoreAdminParams.BACKUP_LOCATION); requestBody.backupRepository = params.get(CoreAdminParams.BACKUP_REPOSITORY); - requestBody.validate(); + RestoreCore.validateRequestBody(requestBody); final CoreContainer coreContainer = it.handler.getCoreContainer(); final var api = - new RestoreCoreAPI(coreContainer, it.req, it.rsp, it.handler.getCoreAdminAsyncTracker()); + new RestoreCore(coreContainer, it.req, it.rsp, it.handler.getCoreAdminAsyncTracker()); final var response = api.restoreCore(cname, requestBody); V2ApiUtils.squashIntoSolrResponseWithoutHeader(it.rsp, response); } - public static RestoreCoreAPI.RestoreCoreRequestBody createRequestFromV1Params(SolrParams params) { - final var requestBody = new RestoreCoreAPI.RestoreCoreRequestBody(); + public static RestoreCoreRequestBody createRequestFromV1Params(SolrParams params) { + final var requestBody = new RestoreCoreRequestBody(); // "async" param intentionally omitted because CoreAdminHandler has already processed requestBody.name = params.get(CoreAdminParams.NAME); requestBody.shardBackupId = params.get(CoreAdminParams.SHARD_BACKUP_ID); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CollectionPropertyAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CollectionProperty.java similarity index 68% rename from solr/core/src/java/org/apache/solr/handler/admin/api/CollectionPropertyAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/CollectionProperty.java index a50e2895d52..55da1ea0d53 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CollectionPropertyAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CollectionProperty.java @@ -17,49 +17,38 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; import java.io.IOException; -import javax.ws.rs.DELETE; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import org.apache.solr.client.api.endpoint.CollectionPropertyApi; import org.apache.solr.client.api.model.SolrJerseyResponse; +import org.apache.solr.client.api.model.UpdateCollectionPropertyRequestBody; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.CollectionProperties; import org.apache.solr.core.CoreContainer; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; /** - * V2 API for modifying collection-level properties. + * V2 API implementations for modifying collection-level properties. * *

These APIs (PUT and DELETE /api/collections/collName/properties/propName) are analogous to the * v1 /admin/collections?action=COLLECTIONPROP command. */ -@Path("/collections/{collName}/properties/{propName}") -public class CollectionPropertyAPI extends AdminAPIBase { +public class CollectionProperty extends AdminAPIBase implements CollectionPropertyApi { - public CollectionPropertyAPI( + public CollectionProperty( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) { super(coreContainer, solrQueryRequest, solrQueryResponse); } - @PUT + @Override @PermissionName(COLL_EDIT_PERM) - @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, BINARY_CONTENT_TYPE_V2}) public SolrJerseyResponse createOrUpdateCollectionProperty( - @PathParam("collName") String collName, - @PathParam("propName") String propName, - UpdateCollectionPropertyRequestBody requestBody) + String collName, String propName, UpdateCollectionPropertyRequestBody requestBody) throws Exception { if (requestBody == null) { throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Missing required request body"); @@ -70,11 +59,9 @@ public SolrJerseyResponse createOrUpdateCollectionProperty( return response; } - @DELETE + @Override @PermissionName(COLL_EDIT_PERM) - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) - public SolrJerseyResponse deleteCollectionProperty( - @PathParam("collName") String collName, @PathParam("propName") String propName) + public SolrJerseyResponse deleteCollectionProperty(String collName, String propName) throws Exception { final SolrJerseyResponse response = instantiateJerseyResponse(SolrJerseyResponse.class); recordCollectionForLogAndTracing(collName, solrQueryRequest); @@ -90,15 +77,4 @@ private void modifyCollectionProperty( new CollectionProperties(coreContainer.getZkController().getZkClient()); cp.setCollectionProperty(resolvedCollection, propertyName, propertyValue); } - - public static class UpdateCollectionPropertyRequestBody implements JacksonReflectMapWriter { - public UpdateCollectionPropertyRequestBody() {} - - public UpdateCollectionPropertyRequestBody(String value) { - this.value = value; - } - - @JsonProperty(required = true) - public String value; - } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshotAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java similarity index 54% rename from solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshotAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java index 634c1f105b9..d043894d128 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshotAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/CoreSnapshot.java @@ -16,47 +16,35 @@ */ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM; import static org.apache.solr.security.PermissionNameProvider.Name.CORE_READ_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.Schema; import java.io.IOException; -import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Optional; import javax.inject.Inject; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; import org.apache.lucene.index.IndexCommit; -import org.apache.solr.client.api.model.SolrJerseyResponse; +import org.apache.solr.client.api.endpoint.CoreSnapshotApi; +import org.apache.solr.client.api.model.CreateCoreSnapshotResponse; +import org.apache.solr.client.api.model.DeleteSnapshotResponse; +import org.apache.solr.client.api.model.ListCoreSnapshotsResponse; +import org.apache.solr.client.api.model.SnapshotInformation; import org.apache.solr.common.SolrException; -import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.IndexDeletionPolicyWrapper; import org.apache.solr.core.SolrCore; -import org.apache.solr.core.snapshots.SolrSnapshotManager; import org.apache.solr.core.snapshots.SolrSnapshotMetaDataManager; import org.apache.solr.handler.admin.CoreAdminHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; /** V2 API for Creating, Listing, and Deleting Core Snapshots. */ -@Path("/cores/{coreName}/snapshots") -public class CoreSnapshotAPI extends CoreAdminAPIBase { +public class CoreSnapshot extends CoreAdminAPIBase implements CoreSnapshotApi { @Inject - public CoreSnapshotAPI( + public CoreSnapshot( SolrQueryRequest request, SolrQueryResponse response, CoreContainer coreContainer, @@ -65,21 +53,12 @@ public CoreSnapshotAPI( } /** This API is analogous to V1 (POST /solr/admin/cores?action=CREATESNAPSHOT) */ - @POST - @Path("/{snapshotName}") - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(CORE_EDIT_PERM) - public CreateSnapshotResponse createSnapshot( - @Parameter(description = "The name of the core to snapshot.", required = true) - @PathParam("coreName") - String coreName, - @Parameter(description = "The name to associate with the core snapshot.", required = true) - @PathParam("snapshotName") - String snapshotName, - @Parameter(description = "The id to associate with the async task.") @QueryParam("async") - String taskId) - throws Exception { - final CreateSnapshotResponse response = instantiateJerseyResponse(CreateSnapshotResponse.class); + public CreateCoreSnapshotResponse createSnapshot( + String coreName, String snapshotName, String taskId) throws Exception { + final CreateCoreSnapshotResponse response = + instantiateJerseyResponse(CreateCoreSnapshotResponse.class); return handlePotentiallyAsynchronousTask( response, @@ -121,41 +100,12 @@ public CreateSnapshotResponse createSnapshot( }); } - /** The Response for {@link CoreSnapshotAPI}'s {@link #createSnapshot(String, String, String)} */ - public static class CreateSnapshotResponse extends SolrJerseyResponse { - @Schema(description = "The name of the core.") - @JsonProperty(CoreAdminParams.CORE) - public String core; - - @Schema(description = "The name of the created snapshot.") - @JsonProperty(CoreAdminParams.SNAPSHOT_NAME) - public String commitName; - - @Schema(description = "The path to the directory containing the index files.") - @JsonProperty(SolrSnapshotManager.INDEX_DIR_PATH) - public String indexDirPath; - - @Schema(description = "The generation value for the created snapshot.") - @JsonProperty(SolrSnapshotManager.GENERATION_NUM) - public Long generation; - - @Schema(description = "The list of index filenames contained within the created snapshot.") - @JsonProperty(SolrSnapshotManager.FILE_LIST) - public Collection files; - } - /** This API is analogous to V1 (GET /solr/admin/cores?action=LISTSNAPSHOTS) */ - @GET - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(CORE_READ_PERM) - public ListSnapshotsResponse listSnapshots( - @Parameter( - description = "The name of the core for which to retrieve snapshots.", - required = true) - @PathParam("coreName") - String coreName) - throws Exception { - final ListSnapshotsResponse response = instantiateJerseyResponse(ListSnapshotsResponse.class); + public ListCoreSnapshotsResponse listSnapshots(String coreName) throws Exception { + final ListCoreSnapshotsResponse response = + instantiateJerseyResponse(ListCoreSnapshotsResponse.class); return handlePotentiallyAsynchronousTask( response, @@ -190,47 +140,10 @@ public ListSnapshotsResponse listSnapshots( }); } - /** The Response for {@link CoreSnapshotAPI}'s {@link #listSnapshots(String)} */ - public static class ListSnapshotsResponse extends SolrJerseyResponse { - @Schema(description = "The collection of snapshots found for the requested core.") - @JsonProperty(SolrSnapshotManager.SNAPSHOTS_INFO) - public Map snapshots; - } - - /** - * Contained in {@link ListSnapshotsResponse}, this holds information for a given core's Snapshot - */ - public static class SnapshotInformation implements JacksonReflectMapWriter { - @Schema(description = "The generation value for the snapshot.") - @JsonProperty(SolrSnapshotManager.GENERATION_NUM) - public final long generationNumber; - - @Schema(description = "The path to the directory containing the index files.") - @JsonProperty(SolrSnapshotManager.INDEX_DIR_PATH) - public final String indexDirPath; - - public SnapshotInformation(long generationNumber, String indexDirPath) { - this.generationNumber = generationNumber; - this.indexDirPath = indexDirPath; - } - } - /** This API is analogous to V1 (DELETE /solr/admin/cores?action=DELETESNAPSHOT) */ - @DELETE - @Path("/{snapshotName}") - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(CORE_EDIT_PERM) - public DeleteSnapshotResponse deleteSnapshot( - @Parameter( - description = "The name of the core for which to delete a snapshot.", - required = true) - @PathParam("coreName") - String coreName, - @Parameter(description = "The name of the core snapshot to delete.", required = true) - @PathParam("snapshotName") - String snapshotName, - @Parameter(description = "The id to associate with the async task.") @QueryParam("async") - String taskId) + public DeleteSnapshotResponse deleteSnapshot(String coreName, String snapshotName, String taskId) throws Exception { final DeleteSnapshotResponse response = instantiateJerseyResponse(DeleteSnapshotResponse.class); @@ -264,15 +177,4 @@ public DeleteSnapshotResponse deleteSnapshot( return response; }); } - - /** The Response for {@link CoreSnapshotAPI}'s {@link #deleteSnapshot(String, String, String)} */ - public static class DeleteSnapshotResponse extends SolrJerseyResponse { - @Schema(description = "The name of the core.") - @JsonProperty(CoreAdminParams.CORE) - public String coreName; - - @Schema(description = "The name of the deleted snapshot.") - @JsonProperty(CoreAdminParams.SNAPSHOT_NAME) - public String commitName; - } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicasAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java similarity index 64% rename from solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicasAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java index 6f353707504..4a1e3b657b8 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicasAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/MigrateReplicas.java @@ -16,7 +16,6 @@ */ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.cloud.Overseer.QUEUE_OPERATION; import static org.apache.solr.common.params.CollectionParams.SOURCE_NODES; import static org.apache.solr.common.params.CollectionParams.TARGET_NODES; @@ -25,17 +24,11 @@ import static org.apache.solr.handler.admin.CollectionsHandler.DEFAULT_COLLECTION_OP_TIMEOUT; import static org.apache.solr.security.PermissionNameProvider.Name.COLL_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.parameters.RequestBody; import java.util.HashMap; import java.util.Map; -import java.util.Set; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.MigrateReplicasApi; +import org.apache.solr.client.api.model.MigrateReplicasRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.common.SolrException; @@ -43,30 +36,24 @@ import org.apache.solr.common.params.CollectionParams.CollectionAction; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.admin.CollectionsHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; /** V2 API for migrating replicas from a set of nodes to another set of nodes. */ -@Path("cluster/replicas/migrate") -public class MigrateReplicasAPI extends AdminAPIBase { +public class MigrateReplicas extends AdminAPIBase implements MigrateReplicasApi { @Inject - public MigrateReplicasAPI( + public MigrateReplicas( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) { super(coreContainer, solrQueryRequest, solrQueryResponse); } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(COLL_EDIT_PERM) - @Operation(summary = "Migrate Replicas from a given set of nodes.") - public SolrJerseyResponse migrateReplicas( - @RequestBody(description = "Contains user provided parameters", required = true) - MigrateReplicasRequestBody requestBody) + public SolrJerseyResponse migrateReplicas(MigrateReplicasRequestBody requestBody) throws Exception { final SolrJerseyResponse response = instantiateJerseyResponse(SolrJerseyResponse.class); final CoreContainer coreContainer = fetchAndValidateZooKeeperAwareCoreContainer(); @@ -108,39 +95,4 @@ public ZkNodeProps createRemoteMessage(MigrateReplicasRequestBody requestBody) { return new ZkNodeProps(remoteMessage); } - - public static class MigrateReplicasRequestBody implements JacksonReflectMapWriter { - - public MigrateReplicasRequestBody() {} - - public MigrateReplicasRequestBody( - Set sourceNodes, Set targetNodes, Boolean waitForFinalState, String async) { - this.sourceNodes = sourceNodes; - this.targetNodes = targetNodes; - this.waitForFinalState = waitForFinalState; - this.async = async; - } - - @Schema(description = "The set of nodes which all replicas will be migrated off of.") - @JsonProperty(value = "sourceNodes", required = true) - public Set sourceNodes; - - @Schema( - description = - "A set of nodes to migrate the replicas to. If this is not provided, then the API will use the live data nodes not in 'sourceNodes'.") - @JsonProperty(value = "targetNodes") - public Set targetNodes; - - @Schema( - description = - "If true, the request will complete only when all affected replicas become active. " - + "If false, the API will return the status of the single action, which may be " - + "before the new replicas are online and active.") - @JsonProperty("waitForFinalState") - public Boolean waitForFinalState = false; - - @Schema(description = "Request ID to track this action which will be processed asynchronously.") - @JsonProperty("async") - public String async; - } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCoreAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java similarity index 62% rename from solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCoreAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java index b0252b83fa9..2210d43add1 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCoreAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ReloadCore.java @@ -17,37 +17,28 @@ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.parameters.RequestBody; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.ReloadCoreApi; +import org.apache.solr.client.api.model.ReloadCoreRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.admin.CoreAdminHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; /** - * V2 API for reloading an individual core. + * V2 API implementation for reloading an individual core. * *

The new API (POST /v2/cores/coreName/reload is analogous to the v1 /admin/cores?action=RELOAD * command. */ -@Path("/cores/{coreName}/reload") -public class ReloadCoreAPI extends CoreAdminAPIBase { +public class ReloadCore extends CoreAdminAPIBase implements ReloadCoreApi { @Inject - public ReloadCoreAPI( + public ReloadCore( SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse, CoreContainer coreContainer, @@ -55,15 +46,9 @@ public ReloadCoreAPI( super(coreContainer, coreAdminAsyncTracker, solrQueryRequest, solrQueryResponse); } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(CORE_EDIT_PERM) - public SolrJerseyResponse reloadCore( - @Parameter(description = "The name of the core to reload.", required = true) - @PathParam("coreName") - String coreName, - @Schema(description = "Additional parameters for reloading the core") @RequestBody - ReloadCoreAPI.ReloadCoreRequestBody reloadCoreRequestBody) + public SolrJerseyResponse reloadCore(String coreName, ReloadCoreRequestBody reloadCoreRequestBody) throws Exception { SolrJerseyResponse solrJerseyResponse = instantiateJerseyResponse(SolrJerseyResponse.class); return handlePotentiallyAsynchronousTask( @@ -76,10 +61,4 @@ public SolrJerseyResponse reloadCore( return solrJerseyResponse; }); } - - public static class ReloadCoreRequestBody implements JacksonReflectMapWriter { - @Schema(description = "Request ID to track this action which will be processed asynchronously.") - @JsonProperty("async") - public String async; - } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java similarity index 74% rename from solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java rename to solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java index fe80576fa67..858e42da9f6 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCoreAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCore.java @@ -16,45 +16,36 @@ */ package org.apache.solr.handler.admin.api; -import static org.apache.solr.client.solrj.impl.BinaryResponseParser.BINARY_CONTENT_TYPE_V2; import static org.apache.solr.security.PermissionNameProvider.Name.CORE_EDIT_PERM; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.Parameter; import java.net.URI; import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import org.apache.solr.client.api.endpoint.RestoreCoreApi; +import org.apache.solr.client.api.model.RestoreCoreRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.cloud.CloudDescriptor; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.Slice; -import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.SolrCore; import org.apache.solr.core.backup.ShardBackupId; import org.apache.solr.core.backup.repository.BackupRepository; -import org.apache.solr.handler.RestoreCore; import org.apache.solr.handler.admin.CoreAdminHandler; -import org.apache.solr.jersey.JacksonReflectMapWriter; import org.apache.solr.jersey.PermissionName; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; import org.apache.solr.update.UpdateLog; /** - * V2 API for restoring a previously taken backup to a core + * V2 API implementation for restoring a previously taken backup to a core * *

Only valid in SolrCloud mode. This API (POST /api/cores/coreName/restore {}) is analogous to * the v1 GET /solr/admin/cores?action=RESTORECORE command. */ -@Path("/cores/{coreName}/restore") -public class RestoreCoreAPI extends CoreAdminAPIBase { +public class RestoreCore extends CoreAdminAPIBase implements RestoreCoreApi { @Inject - public RestoreCoreAPI( + public RestoreCore( CoreContainer coreContainer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse, @@ -67,20 +58,16 @@ boolean isExpensive() { return true; } - @POST - @Produces({"application/json", "application/xml", BINARY_CONTENT_TYPE_V2}) + @Override @PermissionName(CORE_EDIT_PERM) - public SolrJerseyResponse restoreCore( - @Parameter(description = "The name of the core to be restored") @PathParam("coreName") - String coreName, - RestoreCoreRequestBody requestBody) + public SolrJerseyResponse restoreCore(String coreName, RestoreCoreRequestBody requestBody) throws Exception { final var response = instantiateJerseyResponse(SolrJerseyResponse.class); ensureRequiredParameterProvided("coreName", coreName); if (requestBody == null) { throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Missing required request body"); } - requestBody.validate(); + validateRequestBody(requestBody); AdminAPIBase.validateZooKeeperAwareCoreContainer(coreContainer); return handlePotentiallyAsynchronousTask( response, @@ -129,12 +116,16 @@ private void doRestore(String coreName, RestoreCoreRequestBody requestBody) thro + ", the core must be the only replica in its shard or it must be read only"); } - RestoreCore restoreCore; + org.apache.solr.handler.RestoreCore restoreCore; if (requestBody.shardBackupId != null) { final ShardBackupId shardBackupId = ShardBackupId.from(requestBody.shardBackupId); - restoreCore = RestoreCore.createWithMetaFile(repository, core, locationUri, shardBackupId); + restoreCore = + org.apache.solr.handler.RestoreCore.createWithMetaFile( + repository, core, locationUri, shardBackupId); } else { - restoreCore = RestoreCore.create(repository, core, locationUri, requestBody.name); + restoreCore = + org.apache.solr.handler.RestoreCore.create( + repository, core, locationUri, requestBody.name); } boolean success = restoreCore.doRestore(); if (!success) { @@ -156,25 +147,11 @@ private void doRestore(String coreName, RestoreCoreRequestBody requestBody) thro } } - public static class RestoreCoreRequestBody implements JacksonReflectMapWriter { - @JsonProperty public String name; - - @JsonProperty public String shardBackupId; - - @JsonProperty(CoreAdminParams.BACKUP_REPOSITORY) - public String backupRepository; - - @JsonProperty(CoreAdminParams.BACKUP_LOCATION) - public String location; - - @JsonProperty public String async; - - public void validate() { - if (shardBackupId == null && name == null) { - throw new SolrException( - SolrException.ErrorCode.BAD_REQUEST, - "Either 'name' or 'shardBackupId' must be specified"); - } + public static void validateRequestBody(RestoreCoreRequestBody requestBody) { + if (requestBody.shardBackupId == null && requestBody.name == null) { + throw new SolrException( + SolrException.ErrorCode.BAD_REQUEST, + "Either 'name' or 'shardBackupId' must be specified"); } } } diff --git a/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java index 0935770b9f5..0be4ca1746b 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java @@ -36,6 +36,7 @@ import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.ContentType; import org.apache.http.util.EntityUtils; +import org.apache.solr.client.api.model.MigrateReplicasRequestBody; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.impl.CloudLegacySolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; @@ -49,7 +50,6 @@ import org.apache.solr.common.util.StrUtils; import org.apache.solr.common.util.Utils; import org.apache.solr.embedded.JettySolrRunner; -import org.apache.solr.handler.admin.api.MigrateReplicasAPI; import org.apache.solr.metrics.MetricsMap; import org.apache.solr.metrics.SolrMetricManager; import org.junit.Before; @@ -125,7 +125,7 @@ public void test() throws Exception { Map response = callMigrateReplicas( cloudClient, - new MigrateReplicasAPI.MigrateReplicasRequestBody( + new MigrateReplicasRequestBody( Set.of(nodeToBeDecommissioned), Set.of(emptyNode), true, null)); assertEquals( "MigrateReplicas request was unsuccessful", @@ -153,7 +153,7 @@ public void test() throws Exception { response = callMigrateReplicas( cloudClient, - new MigrateReplicasAPI.MigrateReplicasRequestBody( + new MigrateReplicasRequestBody( Set.of(emptyNode), Set.of(nodeToBeDecommissioned), true, null)); assertEquals( "MigrateReplicas request was unsuccessful", @@ -277,7 +277,7 @@ public void testGoodSpreadDuringAssignWithNoTarget() throws Exception { Map response = callMigrateReplicas( cloudClient, - new MigrateReplicasAPI.MigrateReplicasRequestBody( + new MigrateReplicasRequestBody( new HashSet<>(nodesToBeDecommissioned), Collections.emptySet(), true, null)); assertEquals( "MigrateReplicas request was unsuccessful", @@ -327,8 +327,7 @@ public void testFailOnSingleNode() throws Exception { Map response = callMigrateReplicas( cloudClient, - new MigrateReplicasAPI.MigrateReplicasRequestBody( - Set.of(liveNode), Collections.emptySet(), true, null)); + new MigrateReplicasRequestBody(Set.of(liveNode), Collections.emptySet(), true, null)); assertNotNull( "No error in response, when the request should have failed", response.get("error")); assertEquals( @@ -337,8 +336,7 @@ public void testFailOnSingleNode() throws Exception { ((Map) response.get("error")).get("msg")); } - public Map callMigrateReplicas( - CloudSolrClient cloudClient, MigrateReplicasAPI.MigrateReplicasRequestBody body) + public Map callMigrateReplicas(CloudSolrClient cloudClient, MigrateReplicasRequestBody body) throws IOException { HttpEntityEnclosingRequestBase httpRequest = null; HttpEntity entity; @@ -351,7 +349,9 @@ public void testFailOnSingleNode() throws Exception { try { httpRequest = new HttpPost(uri); - httpRequest.setEntity(new ByteArrayEntity(Utils.toJSON(body), ContentType.APPLICATION_JSON)); + httpRequest.setEntity( + new ByteArrayEntity( + Utils.toJSON(Utils.getReflectWriter(body)), ContentType.APPLICATION_JSON)); httpRequest.setHeader("Accept", "application/json"); entity = ((CloudLegacySolrClient) cloudClient).getHttpClient().execute(httpRequest).getEntity(); diff --git a/solr/core/src/test/org/apache/solr/core/PluginBagTest.java b/solr/core/src/test/org/apache/solr/core/PluginBagTest.java index d3831489edb..b6a24ab366f 100644 --- a/solr/core/src/test/org/apache/solr/core/PluginBagTest.java +++ b/solr/core/src/test/org/apache/solr/core/PluginBagTest.java @@ -26,7 +26,7 @@ import org.apache.solr.api.JerseyResource; import org.apache.solr.handler.RequestHandlerBase; import org.apache.solr.handler.admin.ConfigSetsHandler; -import org.apache.solr.handler.admin.api.CollectionPropertyAPI; +import org.apache.solr.handler.admin.api.CollectionProperty; import org.apache.solr.handler.component.SearchComponent; import org.apache.solr.handler.configsets.ListConfigSets; import org.apache.solr.jersey.APIConfigProvider; @@ -149,7 +149,7 @@ public Boolean registerV2() { @Override public Collection> getJerseyResources() { // random pick of v2 api - return List.of(CollectionPropertyAPI.class); + return List.of(CollectionProperty.class); } @Override diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/CoreSnapshotAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/CoreSnapshotAPITest.java index 7f3f566bd8b..5ada271d324 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/CoreSnapshotAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/CoreSnapshotAPITest.java @@ -19,6 +19,9 @@ import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.CreateCoreSnapshotResponse; +import org.apache.solr.client.api.model.DeleteSnapshotResponse; +import org.apache.solr.client.api.model.ListCoreSnapshotsResponse; import org.apache.solr.common.SolrException; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.admin.CoreAdminHandler; @@ -31,7 +34,7 @@ public class CoreSnapshotAPITest extends SolrTestCaseJ4 { - private CoreSnapshotAPI coreSnapshotAPI; + private CoreSnapshot coreSnapshotAPI; @BeforeClass public static void initializeCoreAndRequestFactory() throws Exception { @@ -52,8 +55,7 @@ public void setUp() throws Exception { new CoreAdminHandler.CoreAdminAsyncTracker(); coreSnapshotAPI = - new CoreSnapshotAPI( - solrQueryRequest, solrQueryResponse, coreContainer, coreAdminAsyncTracker); + new CoreSnapshot(solrQueryRequest, solrQueryResponse, coreContainer, coreAdminAsyncTracker); } private List snapshotsToCleanup = new ArrayList<>(); @@ -71,7 +73,7 @@ public void deleteSnapshots() throws Exception { public void testCreateSnapshotReturnsValidResponse() throws Exception { final String snapshotName = "my-new-snapshot"; - final CoreSnapshotAPI.CreateSnapshotResponse response = + final CreateCoreSnapshotResponse response = coreSnapshotAPI.createSnapshot(coreName, snapshotName, null); snapshotsToCleanup.add(snapshotName); @@ -108,7 +110,7 @@ public void testListSnapshotsReturnsValidResponse() throws Exception { snapshotsToCleanup.add(snapshotName); } - final CoreSnapshotAPI.ListSnapshotsResponse response = coreSnapshotAPI.listSnapshots(coreName); + final ListCoreSnapshotsResponse response = coreSnapshotAPI.listSnapshots(coreName); assertEquals(5, response.snapshots.size()); } @@ -135,13 +137,13 @@ public void testDeleteSnapshotReturnsValidResponse() throws Exception { coreSnapshotAPI.createSnapshot(coreName, snapshotName, null); - final CoreSnapshotAPI.DeleteSnapshotResponse deleteResponse = + final DeleteSnapshotResponse deleteResponse = coreSnapshotAPI.deleteSnapshot(coreName, snapshotName, null); assertEquals(coreName, deleteResponse.coreName); assertEquals(snapshotName, deleteResponse.commitName); - final CoreSnapshotAPI.ListSnapshotsResponse response = coreSnapshotAPI.listSnapshots(coreName); + final ListCoreSnapshotsResponse response = coreSnapshotAPI.listSnapshots(coreName); assertEquals(0, response.snapshots.size()); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java index f9bf865d4e0..f6124c99703 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java @@ -27,6 +27,7 @@ import java.util.Optional; import java.util.Set; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.MigrateReplicasRequestBody; import org.apache.solr.cloud.OverseerSolrResponse; import org.apache.solr.cloud.api.collections.DistributedCollectionConfigSetCommandRunner; import org.apache.solr.common.SolrException; @@ -46,7 +47,7 @@ public class MigrateReplicasAPITest extends SolrTestCaseJ4 { private CoreContainer mockCoreContainer; private SolrQueryRequest mockQueryRequest; private SolrQueryResponse queryResponse; - private MigrateReplicasAPI migrateReplicasAPI; + private MigrateReplicas migrateReplicasAPI; private DistributedCollectionConfigSetCommandRunner mockCommandRunner; private ArgumentCaptor messageCapturer; @@ -68,7 +69,7 @@ public void setUp() throws Exception { .thenReturn(new OverseerSolrResponse(new NamedList<>())); mockQueryRequest = mock(SolrQueryRequest.class); queryResponse = new SolrQueryResponse(); - migrateReplicasAPI = new MigrateReplicasAPI(mockCoreContainer, mockQueryRequest, queryResponse); + migrateReplicasAPI = new MigrateReplicas(mockCoreContainer, mockQueryRequest, queryResponse); messageCapturer = ArgumentCaptor.forClass(ZkNodeProps.class); when(mockCoreContainer.isZooKeeperAware()).thenReturn(true); @@ -76,8 +77,8 @@ public void setUp() throws Exception { @Test public void testCreatesValidOverseerMessage() throws Exception { - MigrateReplicasAPI.MigrateReplicasRequestBody requestBody = - new MigrateReplicasAPI.MigrateReplicasRequestBody( + MigrateReplicasRequestBody requestBody = + new MigrateReplicasRequestBody( Set.of("demoSourceNode"), Set.of("demoTargetNode"), false, "async"); migrateReplicasAPI.migrateReplicas(requestBody); verify(mockCommandRunner).runCollectionCommand(messageCapturer.capture(), any(), anyLong()); @@ -94,9 +95,8 @@ public void testCreatesValidOverseerMessage() throws Exception { @Test public void testNoTargetNodes() throws Exception { - MigrateReplicasAPI.MigrateReplicasRequestBody requestBody = - new MigrateReplicasAPI.MigrateReplicasRequestBody( - Set.of("demoSourceNode"), null, null, null); + MigrateReplicasRequestBody requestBody = + new MigrateReplicasRequestBody(Set.of("demoSourceNode"), null, null, null); migrateReplicasAPI.migrateReplicas(requestBody); verify(mockCommandRunner).runCollectionCommand(messageCapturer.capture(), any(), anyLong()); @@ -109,13 +109,12 @@ public void testNoTargetNodes() throws Exception { @Test public void testNoSourceNodesThrowsError() throws Exception { - MigrateReplicasAPI.MigrateReplicasRequestBody requestBody1 = - new MigrateReplicasAPI.MigrateReplicasRequestBody( + MigrateReplicasRequestBody requestBody1 = + new MigrateReplicasRequestBody( Collections.emptySet(), Set.of("demoTargetNode"), null, null); assertThrows(SolrException.class, () -> migrateReplicasAPI.migrateReplicas(requestBody1)); - MigrateReplicasAPI.MigrateReplicasRequestBody requestBody2 = - new MigrateReplicasAPI.MigrateReplicasRequestBody( - null, Set.of("demoTargetNode"), null, null); + MigrateReplicasRequestBody requestBody2 = + new MigrateReplicasRequestBody(null, Set.of("demoTargetNode"), null, null); assertThrows(SolrException.class, () -> migrateReplicasAPI.migrateReplicas(requestBody2)); } } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/ReloadCoreAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/ReloadCoreAPITest.java index cd0fdc32324..304717a167a 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/ReloadCoreAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/ReloadCoreAPITest.java @@ -17,6 +17,7 @@ package org.apache.solr.handler.admin.api; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.api.model.ReloadCoreRequestBody; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.common.SolrException; import org.apache.solr.core.CoreContainer; @@ -30,7 +31,7 @@ public class ReloadCoreAPITest extends SolrTestCaseJ4 { - private ReloadCoreAPI reloadCoreAPI; + private ReloadCore reloadCoreAPI; private static final String NON_EXISTENT_CORE = "non_existent_core"; @BeforeClass @@ -49,14 +50,12 @@ public void setUp() throws Exception { CoreAdminHandler.CoreAdminAsyncTracker coreAdminAsyncTracker = new CoreAdminHandler.CoreAdminAsyncTracker(); reloadCoreAPI = - new ReloadCoreAPI( - solrQueryRequest, solrQueryResponse, coreContainer, coreAdminAsyncTracker); + new ReloadCore(solrQueryRequest, solrQueryResponse, coreContainer, coreAdminAsyncTracker); } @Test public void testValidReloadCoreAPIResponse() throws Exception { - SolrJerseyResponse response = - reloadCoreAPI.reloadCore(coreName, new ReloadCoreAPI.ReloadCoreRequestBody()); + SolrJerseyResponse response = reloadCoreAPI.reloadCore(coreName, new ReloadCoreRequestBody()); assertEquals(0, response.responseHeader.status); assertNotNull(response.responseHeader.qTime); } @@ -67,8 +66,7 @@ public void testNonExistentCoreExceptionResponse() { expectThrows( SolrException.class, () -> { - reloadCoreAPI.reloadCore( - NON_EXISTENT_CORE, new ReloadCoreAPI.ReloadCoreRequestBody()); + reloadCoreAPI.reloadCore(NON_EXISTENT_CORE, new ReloadCoreRequestBody()); }); assertEquals(400, solrException.code()); assertTrue(solrException.getMessage().contains("No such core: " + NON_EXISTENT_CORE)); From ba51f24f672675c14beb24fcbd80878cb5b638b0 Mon Sep 17 00:00:00 2001 From: aarrietagit <147324978+aarrietagit@users.noreply.github.com> Date: Sun, 8 Oct 2023 12:22:51 -0300 Subject: [PATCH 29/29] Fix upgrade notes Solr 9 (#1992) Add a note about Lucene's two-major-version upgrade limitation to make it a little more visible. --- .../modules/upgrade-notes/pages/major-changes-in-solr-9.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc index ad7649f6d54..ec709ca2162 100644 --- a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc +++ b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc @@ -59,7 +59,7 @@ A rolling upgrade from Solr 8 to Solr 9 requires the following multiple restart === Reindexing After Upgrade -It is always strongly recommended that you fully reindex your documents after a major version upgrade. For details, see the xref:indexing-guide:reindexing.adoc[] section, which covers several strategies for how to reindex. +It is always strongly recommended that you fully reindex your documents after a major version upgrade if collection was created in Solr 8. It is mandatory to reindex your documents if collection was created on Solr 7 or older. For details, see the xref:indexing-guide:reindexing.adoc[] section, which covers several strategies for how to reindex. In Solr 8, it was possible to add docValues to a schema without re-indexing via `UninvertDocValuesMergePolicy`, an advanced/expert utility. Due to changes in Lucene 9, that isn't possible any more.