diff --git a/docs/changelog/111225.yaml b/docs/changelog/111225.yaml
new file mode 100644
index 0000000000000..bcd344847cfd2
--- /dev/null
+++ b/docs/changelog/111225.yaml
@@ -0,0 +1,5 @@
+pr: 111225
+summary: Upgrade Azure SDK
+area: Snapshot/Restore
+type: upgrade
+issues: []
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 5e26d96c4ca17..e5fd9f124b444 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -119,29 +119,39 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -271,11 +281,6 @@
-
-
-
-
-
@@ -296,11 +301,6 @@
-
-
-
-
-
@@ -341,14 +341,9 @@
-
-
-
-
-
-
-
-
+
+
+
@@ -361,14 +356,9 @@
-
-
-
-
-
-
-
-
+
+
+
@@ -386,14 +376,9 @@
-
-
-
-
-
-
-
-
+
+
+
@@ -1471,19 +1456,19 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -1501,6 +1486,11 @@
+
+
+
+
+
diff --git a/modules/repository-azure/build.gradle b/modules/repository-azure/build.gradle
index d093816acd45f..5e1c294c1a30e 100644
--- a/modules/repository-azure/build.gradle
+++ b/modules/repository-azure/build.gradle
@@ -17,65 +17,51 @@ esplugin {
}
versions << [
- 'azure': '12.20.1',
- 'azureCommon': '12.19.1',
- 'azureCore': '1.34.0',
- 'azureCoreHttpNetty': '1.12.7',
- 'azureJackson': '2.15.4',
- 'azureJacksonDatabind': '2.13.4.2',
- 'azureAvro': '12.5.3',
-
- 'jakartaActivation': '1.2.1',
- 'jakartaXMLBind': '2.3.2',
- 'stax2API': '4.2.1',
- 'woodstox': '6.4.0',
-
- 'reactorNetty': '1.0.39',
- 'reactorCore': '3.4.34',
- 'reactiveStreams': '1.0.4',
+ 'azureReactorNetty': '1.0.45',
]
dependencies {
- api "com.azure:azure-storage-blob:${versions.azure}"
- api "com.azure:azure-storage-common:${versions.azureCommon}"
- api "com.azure:azure-core-http-netty:${versions.azureCoreHttpNetty}"
- api "com.azure:azure-core:${versions.azureCore}"
- // jackson
- api "com.fasterxml.jackson.core:jackson-core:${versions.azureJackson}"
- api "com.fasterxml.jackson.core:jackson-databind:${versions.azureJacksonDatabind}"
- api "com.fasterxml.jackson.core:jackson-annotations:${versions.azureJackson}"
-
- // jackson xml
- api "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.azureJackson}"
- api "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${versions.azureJackson}"
- api "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:${versions.azureJackson}"
- api "jakarta.activation:jakarta.activation-api:${versions.jakartaActivation}"
- // The SDK uses javax.xml bindings
- api "jakarta.xml.bind:jakarta.xml.bind-api:${versions.jakartaXMLBind}"
- api "org.codehaus.woodstox:stax2-api:${versions.stax2API}"
- api "com.fasterxml.woodstox:woodstox-core:${versions.woodstox}"
-
- // netty
+ // Microsoft
+ api "com.azure:azure-core-http-netty:1.15.1"
+ api "com.azure:azure-core:1.50.0"
+ api "com.azure:azure-json:1.1.0"
+ api "com.azure:azure-storage-blob:12.26.1"
+ api "com.azure:azure-storage-common:12.26.0"
+ api "com.azure:azure-storage-internal-avro:12.11.1"
+ api "com.azure:azure-xml:1.0.0"
+
+ // Jackson
+ api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}"
+ api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}"
+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
+ api "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.jackson}"
+ api "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${versions.jackson}"
+ api "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:${versions.jackson}"
+
+ // Netty
api "io.netty:netty-codec-dns:${versions.netty}"
api "io.netty:netty-codec-http2:${versions.netty}"
api "io.netty:netty-codec-socks:${versions.netty}"
api "io.netty:netty-handler-proxy:${versions.netty}"
api "io.netty:netty-resolver-dns:${versions.netty}"
- // reactor
- api "io.projectreactor.netty:reactor-netty-core:${versions.reactorNetty}"
- api "io.projectreactor.netty:reactor-netty-http:${versions.reactorNetty}"
- api "io.projectreactor:reactor-core:${versions.reactorCore}"
- api "org.reactivestreams:reactive-streams:${versions.reactiveStreams}"
+ // Reactor
+ api "io.projectreactor.netty:reactor-netty-core:${versions.azureReactorNetty}"
+ api "io.projectreactor.netty:reactor-netty-http:${versions.azureReactorNetty}"
+ api "io.projectreactor:reactor-core:3.4.38"
+ api "org.reactivestreams:reactive-streams:1.0.4"
+
+ // Others
+ api "com.fasterxml.woodstox:woodstox-core:6.4.0"
+ api "jakarta.activation:jakarta.activation-api:1.2.1"
+ api "jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
+ api "org.codehaus.woodstox:stax2-api:4.2.1"
implementation project(":modules:transport-netty4")
implementation("org.slf4j:slf4j-api:${versions.slf4j}")
runtimeOnly "org.slf4j:slf4j-nop:${versions.slf4j}"
// runtimeOnly("org.apache.logging.log4j:log4j-slf4j-impl:${versions.log4j}") https://github.com/elastic/elasticsearch/issues/93714
-
- runtimeOnly "com.azure:azure-storage-internal-avro:${versions.azureAvro}"
-
testImplementation project(':test:fixtures:azure-fixture')
yamlRestTestImplementation project(':test:fixtures:azure-fixture')
}
diff --git a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java
index 73d969ee31b19..f6b1c2775926c 100644
--- a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java
+++ b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java
@@ -27,6 +27,8 @@
import org.elasticsearch.threadpool.ScalingExecutorBuilder;
import org.elasticsearch.xcontent.NamedXContentRegistry;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -42,9 +44,8 @@ public class AzureRepositoryPlugin extends Plugin implements RepositoryPlugin, R
public static final String NETTY_EVENT_LOOP_THREAD_POOL_NAME = "azure_event_loop";
static {
- // Trigger static initialization with the plugin class loader
- // so we have access to the proper xml parser
- JacksonAdapter.createDefaultSerializerAdapter();
+ // Trigger static initialization with the plugin class loader so we have access to the proper xml parser
+ AccessController.doPrivileged((PrivilegedAction