diff --git a/build-shaded-dtest-jar.sh b/build-shaded-dtest-jar.sh
new file mode 100755
index 0000000000..efedcaa080
--- /dev/null
+++ b/build-shaded-dtest-jar.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+set -xe
+
+# Cassandra version that is specified in build.xml
+CASSANDRA_VERSION=$1
+# In-JVM dtest version that is specified in relocate-dependencies.pom
+DTEST_VERSION=$2
+ARTIFACT_NAME=cassandra-dtest
+REPO_DIR=~/.m2/repository
+
+ant clean
+ant dtest-jar
+
+# Install the version that will be shaded
+mvn install:install-file \
+ -Dfile=./build/dtest-${CASSANDRA_VERSION}.jar \
+ -DgroupId=org.apache.cassandra \
+ -DartifactId=${ARTIFACT_NAME}-local \
+ -Dversion=${DTEST_VERSION} \
+ -Dpackaging=jar \
+ -DgeneratePom=true \
+ -DlocalRepositoryPath=${REPO_DIR}
+
+# Create shaded artifact
+mvn -f relocate-dependencies.pom package -DskipTests -nsu
+
+# Deploy shaded artifact
+mvn install:install-file \
+ -Dfile=./target/${ARTIFACT_NAME}-shaded-${DTEST_VERSION}.jar \
+ -DgroupId=org.apache.cassandra \
+ -DartifactId=${ARTIFACT_NAME}-shaded \
+ -Dversion=${DTEST_VERSION} \
+ -Dpackaging=jar \
+ -DgeneratePom=true \
+ -DlocalRepositoryPath=${REPO_DIR}
+
+set +xe
diff --git a/build.xml b/build.xml
index e77dd0b988..8c9c49dfe4 100644
--- a/build.xml
+++ b/build.xml
@@ -583,7 +583,7 @@
-
+
diff --git a/lib/snakeyaml-1.11.jar b/lib/snakeyaml-1.11.jar
deleted file mode 100644
index 3e237cd29b..0000000000
Binary files a/lib/snakeyaml-1.11.jar and /dev/null differ
diff --git a/lib/snakeyaml-1.23.jar b/lib/snakeyaml-1.23.jar
new file mode 100644
index 0000000000..adcef4f72c
Binary files /dev/null and b/lib/snakeyaml-1.23.jar differ
diff --git a/relocate-dependencies.pom b/relocate-dependencies.pom
new file mode 100644
index 0000000000..0e5eabc963
--- /dev/null
+++ b/relocate-dependencies.pom
@@ -0,0 +1,132 @@
+
+ 4.0.0
+
+ org.apache.cassandra
+ cassandra-dtest-shaded
+ 4.0.1-SNAPSHOT
+ jar
+
+ Cassandra in-jvm dtests shaded jar
+
+
+ library
+ 1.8
+ src/test/unit/java
+ UTF-8
+ UTF-8
+
+ 4.12
+ ${java.version}
+ ${java.version}
+
+
+
+
+
+ org.apache.cassandra
+ cassandra-dtest-local
+ 4.0.0-SNAPSHOT
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+
+
+
+ ${test.source.directory}
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.1
+
+
+ false
+
+
+
+ org.apache.cassandra:cassandra-dtest-local
+
+
+
+
+
+ io.netty
+ relocated.shaded.io.netty
+
+
+
+ com.google
+ relocated.shaded.com.google
+
+
+
+ com.datastax
+ relocated.shaded.com.datastax
+
+
+
+
+
+ *:*
+
+ **/Log4j2Plugins.dat
+
+
+
+
+ io.netty:netty-*
+
+ META-INF/maven/
+ META-INF/io.netty.versions.properties
+
+
+
+
+ com.google.guava:guava
+
+ META-INF/maven/
+
+
+
+
+ com.google.guava:failureaccess
+
+ META-INF/maven/
+
+
+
+
+ com.datastax.cassandra:cassandra-driver-core
+
+ META-INF/maven/
+
+
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java b/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
index ca5e41a926..08dfd4c978 100644
--- a/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
+++ b/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
@@ -22,7 +22,9 @@ import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.annotation.Annotation;
import java.net.URL;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -146,11 +148,12 @@ public class YamlConfigurationLoader implements ConfigurationLoader
@Override
protected List