diff --git a/contrib/storage-elasticsearch/pom.xml b/contrib/storage-elasticsearch/pom.xml
index 40f4a86..74840fe 100644
--- a/contrib/storage-elasticsearch/pom.xml
+++ b/contrib/storage-elasticsearch/pom.xml
@@ -68,7 +68,7 @@
     <dependency>
       <groupId>org.elasticsearch.client</groupId>
       <artifactId>elasticsearch-rest-client</artifactId>
-      <version>8.6.0</version>
+      <version>8.9.1</version>
       <exclusions>
         <exclusion>
           <groupId>commons-logging</groupId>
diff --git a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/TestElasticsearchSuite.java b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/TestElasticsearchSuite.java
index 12fbe72..258034e 100644
--- a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/TestElasticsearchSuite.java
+++ b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/TestElasticsearchSuite.java
@@ -68,7 +68,7 @@
   protected static ElasticsearchContainer elasticsearch;
   public static final String ELASTICSEARCH_USERNAME = "elastic";
   public static final String ELASTICSEARCH_PASSWORD = "s3cret";
-  private static final String IMAGE_NAME = "docker.elastic.co/elasticsearch/elasticsearch:8.6.0";
+  private static final String IMAGE_NAME = "docker.elastic.co/elasticsearch/elasticsearch:8.9.1";
 
   private static final AtomicInteger initCount = new AtomicInteger(0);
 
@@ -164,7 +164,8 @@
         .withPassword(ELASTICSEARCH_PASSWORD)
         .withEnv("xpack.security.enabled", "true")
         .withEnv("xpack.security.transport.ssl.enabled", "false")
-        .withEnv("ES_JAVA_OPTS", "-Xmx1g"); // ES gobbles up lots of RAM under defaults.
+        .withEnv("discovery.type", "single-node")
+        .withEnv("ES_JAVA_OPTS", "-Xmx2g"); // ES gobbles up lots of RAM under defaults.
 
     HttpsURLConnection.setDefaultSSLSocketFactory(SslUtils.trustAllSSLContext().getSocketFactory());
     elasticsearch.start();
diff --git a/contrib/storage-hive/core/pom.xml b/contrib/storage-hive/core/pom.xml
index d491c97..ce88952 100644
--- a/contrib/storage-hive/core/pom.xml
+++ b/contrib/storage-hive/core/pom.xml
@@ -258,10 +258,6 @@
           <groupId>ch.qos.reload4j</groupId>
         </exclusion>
         <exclusion>
-          <groupId>org.mortbay.jetty</groupId>
-          <artifactId>servlet-api-2.5</artifactId>
-        </exclusion>
-        <exclusion>
           <groupId>tomcat</groupId>
           <artifactId>jasper-compiler</artifactId>
         </exclusion>
diff --git a/contrib/storage-kafka/pom.xml b/contrib/storage-kafka/pom.xml
index 040a2ec..35cb602 100644
--- a/contrib/storage-kafka/pom.xml
+++ b/contrib/storage-kafka/pom.xml
@@ -32,7 +32,7 @@
 
   <properties>
     <kafka.version>2.8.2</kafka.version>
-    <kafka.TestSuite>**/TestKafkaSuit.class</kafka.TestSuite>
+    <kafka.TestSuite>**/TestKafkaSuite.class</kafka.TestSuite>
   </properties>
 
   <repositories>
diff --git a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaFilterPushdownTest.java b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaFilterPushdownTest.java
index c9277f9..f1dd78b 100644
--- a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaFilterPushdownTest.java
+++ b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaFilterPushdownTest.java
@@ -24,8 +24,8 @@
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import static org.apache.drill.exec.store.kafka.TestKafkaSuit.NUM_JSON_MSG;
-import static org.apache.drill.exec.store.kafka.TestKafkaSuit.embeddedKafkaCluster;
+import static org.apache.drill.exec.store.kafka.TestKafkaSuite.NUM_JSON_MSG;
+import static org.apache.drill.exec.store.kafka.TestKafkaSuite.embeddedKafkaCluster;
 import static org.junit.Assert.assertEquals;
 
 @Category({KafkaStorageTest.class, SlowTest.class})
@@ -36,7 +36,7 @@
 
   @BeforeClass
   public static void setup() throws Exception {
-    TestKafkaSuit.createTopicHelper(TestQueryConstants.JSON_PUSHDOWN_TOPIC, NUM_PARTITIONS);
+    TestKafkaSuite.createTopicHelper(TestQueryConstants.JSON_PUSHDOWN_TOPIC, NUM_PARTITIONS);
     KafkaMessageGenerator generator = new KafkaMessageGenerator(embeddedKafkaCluster.getKafkaBrokerList(),
       StringSerializer.class);
     generator.populateJsonMsgWithTimestamps(TestQueryConstants.JSON_PUSHDOWN_TOPIC, NUM_JSON_MSG);
diff --git a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaMessageGenerator.java b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaMessageGenerator.java
index f4e4730..ef2ea8f 100644
--- a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaMessageGenerator.java
+++ b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaMessageGenerator.java
@@ -87,7 +87,7 @@
       String key1Schema = "{\"type\":\"record\"," +
               "\"name\":\"key1record\"," +
               "\"fields\":[" +
-              "{\"name\":\"key1\",\"type\":\"string\"}]}\"";
+              "{\"name\":\"key1\",\"type\":\"string\"}]}";
       Schema keySchema = parser.parse(key1Schema);
       GenericRecordBuilder keyBuilder = new GenericRecordBuilder(keySchema);
 
diff --git a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaQueriesTest.java b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaQueriesTest.java
index e913036..327962f 100644
--- a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaQueriesTest.java
+++ b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaQueriesTest.java
@@ -41,7 +41,7 @@
 import java.util.Map;
 import java.util.Set;
 
-import static org.apache.drill.exec.store.kafka.TestKafkaSuit.embeddedKafkaCluster;
+import static org.apache.drill.exec.store.kafka.TestKafkaSuite.embeddedKafkaCluster;
 import static org.junit.Assert.fail;
 
 @FixMethodOrder(MethodSorters.JVM)
@@ -76,7 +76,7 @@
   @Test
   public void testResultCount() {
     String queryString = String.format(TestQueryConstants.MSG_SELECT_QUERY, TestQueryConstants.JSON_TOPIC);
-    runKafkaSQLVerifyCount(queryString, TestKafkaSuit.NUM_JSON_MSG);
+    runKafkaSQLVerifyCount(queryString, TestKafkaSuite.NUM_JSON_MSG);
   }
 
   @Test
@@ -91,7 +91,7 @@
               KafkaAvroDeserializer.class.getName());
 
       String queryString = String.format(TestQueryConstants.MSG_SELECT_QUERY, TestQueryConstants.AVRO_TOPIC);
-      runKafkaSQLVerifyCount(queryString, TestKafkaSuit.NUM_JSON_MSG);
+      runKafkaSQLVerifyCount(queryString, TestKafkaSuite.NUM_JSON_MSG);
     } finally {
       client.resetSession(ExecConstants.KAFKA_RECORD_READER);
     }
@@ -209,7 +209,7 @@
   @Test
   public void testOneMessageTopic() throws Exception {
     String topicName = "topicWithOneMessage";
-    TestKafkaSuit.createTopicHelper(topicName, 1);
+    TestKafkaSuite.createTopicHelper(topicName, 1);
     KafkaMessageGenerator generator = new KafkaMessageGenerator(embeddedKafkaCluster.getKafkaBrokerList(), StringSerializer.class);
     generator.populateMessages(topicName, "{\"index\": 1}");
 
@@ -224,7 +224,7 @@
   @Test
   public void testMalformedRecords() throws Exception {
     String topicName = "topicWithMalFormedMessages";
-    TestKafkaSuit.createTopicHelper(topicName, 1);
+    TestKafkaSuite.createTopicHelper(topicName, 1);
     try {
       KafkaMessageGenerator generator = new KafkaMessageGenerator(embeddedKafkaCluster.getKafkaBrokerList(), StringSerializer.class);
       generator.populateMessages(topicName, "Test");
@@ -259,7 +259,7 @@
   @Test
   public void testNanInf() throws Exception {
     String topicName = "topicWithNanInf";
-    TestKafkaSuit.createTopicHelper(topicName, 1);
+    TestKafkaSuite.createTopicHelper(topicName, 1);
     try {
       KafkaMessageGenerator generator = new KafkaMessageGenerator(embeddedKafkaCluster.getKafkaBrokerList(), StringSerializer.class);
       generator.populateMessages(topicName, "{\"nan_col\":NaN, \"inf_col\":Infinity}");
@@ -287,7 +287,7 @@
   @Test
   public void testEscapeAnyChar() throws Exception {
     String topicName = "topicWithEscapeAnyChar";
-    TestKafkaSuit.createTopicHelper(topicName, 1);
+    TestKafkaSuite.createTopicHelper(topicName, 1);
     try {
       KafkaMessageGenerator generator = new KafkaMessageGenerator(embeddedKafkaCluster.getKafkaBrokerList(), StringSerializer.class);
       generator.populateMessages(topicName, "{\"name\": \"AB\\\"\\C\"}");
diff --git a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaTestBase.java b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaTestBase.java
index c426b06..0af4821 100644
--- a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaTestBase.java
+++ b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/KafkaTestBase.java
@@ -43,11 +43,11 @@
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
     // Make sure this test is only running as part of the suit
-    Assume.assumeTrue(TestKafkaSuit.isRunningSuite());
+    Assume.assumeTrue(TestKafkaSuite.isRunningSuite());
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher);
     startCluster(builder);
-    TestKafkaSuit.initKafka();
-    initKafkaStoragePlugin(TestKafkaSuit.embeddedKafkaCluster);
+    TestKafkaSuite.initKafka();
+    initKafkaStoragePlugin(TestKafkaSuite.embeddedKafkaCluster);
   }
 
   public static void initKafkaStoragePlugin(EmbeddedKafkaCluster embeddedKafkaCluster) throws Exception {
@@ -76,8 +76,8 @@
 
   @AfterClass
   public static void tearDownKafkaTestBase() {
-    if (TestKafkaSuit.isRunningSuite()) {
-      TestKafkaSuit.tearDownCluster();
+    if (TestKafkaSuite.isRunningSuite()) {
+      TestKafkaSuite.tearDownCluster();
     }
   }
 }
\ No newline at end of file
diff --git a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/MessageIteratorTest.java b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/MessageIteratorTest.java
index 12db4c3..ed5f1e6 100644
--- a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/MessageIteratorTest.java
+++ b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/MessageIteratorTest.java
@@ -48,7 +48,7 @@
     consumerProps.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class);
     consumerProps.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, "4");
     kafkaConsumer = new KafkaConsumer<>(consumerProps);
-    subScanSpec = new KafkaPartitionScanSpec(TestQueryConstants.JSON_TOPIC, 0, 0, TestKafkaSuit.NUM_JSON_MSG);
+    subScanSpec = new KafkaPartitionScanSpec(TestQueryConstants.JSON_TOPIC, 0, 0, TestKafkaSuite.NUM_JSON_MSG);
   }
 
   @After
@@ -105,6 +105,6 @@
       Assert.assertNotNull(consumerRecord);
       ++messageCount;
     }
-    Assert.assertEquals(TestKafkaSuit.NUM_JSON_MSG, messageCount);
+    Assert.assertEquals(TestKafkaSuite.NUM_JSON_MSG, messageCount);
   }
 }
diff --git a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/TestKafkaSuit.java b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/TestKafkaSuite.java
similarity index 96%
rename from contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/TestKafkaSuit.java
rename to contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/TestKafkaSuite.java
index 73384d2..a8a75f1 100644
--- a/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/TestKafkaSuit.java
+++ b/contrib/storage-kafka/src/test/java/org/apache/drill/exec/store/kafka/TestKafkaSuite.java
@@ -54,11 +54,11 @@
 @Category({KafkaStorageTest.class, SlowTest.class})
 @RunWith(Suite.class)
 @SuiteClasses({KafkaQueriesTest.class, MessageIteratorTest.class, MessageReaderFactoryTest.class, KafkaFilterPushdownTest.class})
-public class TestKafkaSuit extends BaseTest {
+public class TestKafkaSuite extends BaseTest {
 
-  private static final Logger logger = LoggerFactory.getLogger(TestKafkaSuit.class);
+  private static final Logger logger = LoggerFactory.getLogger(TestKafkaSuite.class);
 
-  private static final String LOGIN_CONF_RESOURCE_PATHNAME = "login.conf";
+  private static final String LOGIN_CONF_RESOURCE_PATHNAME = "login.jaasconf";
 
   public static EmbeddedKafkaCluster embeddedKafkaCluster;
 
@@ -76,7 +76,7 @@
 
   @BeforeClass
   public static void initKafka() throws Exception {
-    synchronized (TestKafkaSuit.class) {
+    synchronized (TestKafkaSuite.class) {
       if (initCount.get() == 0) {
         ZookeeperTestUtil.setZookeeperSaslTestConfigProps();
         System.setProperty(JaasUtils.JAVA_LOGIN_CONFIG_PARAM, ClassLoader.getSystemResource(LOGIN_CONF_RESOURCE_PATHNAME).getFile());
@@ -104,7 +104,7 @@
 
   @AfterClass
   public static void tearDownCluster() {
-    synchronized (TestKafkaSuit.class) {
+    synchronized (TestKafkaSuite.class) {
       if (initCount.decrementAndGet() == 0) {
         if (zkClient != null) {
           zkClient.close();
diff --git a/contrib/storage-kafka/src/test/resources/login.conf b/contrib/storage-kafka/src/test/resources/login.jaasconf
similarity index 99%
rename from contrib/storage-kafka/src/test/resources/login.conf
rename to contrib/storage-kafka/src/test/resources/login.jaasconf
index 0916120..56a10c4 100644
--- a/contrib/storage-kafka/src/test/resources/login.conf
+++ b/contrib/storage-kafka/src/test/resources/login.jaasconf
@@ -22,4 +22,4 @@
 hadoop_simple {
   org.apache.hadoop.security.login.GenericOSLoginModule required;
   org.apache.hadoop.security.login.HadoopLoginModule required;
-};
\ No newline at end of file
+};
diff --git a/distribution/docker-cluster-mode/Dockerfile b/distribution/docker-compose/Dockerfile
similarity index 100%
rename from distribution/docker-cluster-mode/Dockerfile
rename to distribution/docker-compose/Dockerfile
diff --git a/distribution/docker-cluster-mode/README b/distribution/docker-compose/README.txt
similarity index 100%
rename from distribution/docker-cluster-mode/README
rename to distribution/docker-compose/README.txt
diff --git a/distribution/docker-cluster-mode/docker-compose.yml b/distribution/docker-compose/docker-compose.yml
similarity index 100%
rename from distribution/docker-cluster-mode/docker-compose.yml
rename to distribution/docker-compose/docker-compose.yml
diff --git a/distribution/docker-cluster-mode/drill-override.conf b/distribution/docker-compose/drill-override.conf
similarity index 100%
rename from distribution/docker-cluster-mode/drill-override.conf
rename to distribution/docker-compose/drill-override.conf
diff --git a/distribution/docker-cluster-mode/logback.xml b/distribution/docker-compose/logback.xml
similarity index 100%
rename from distribution/docker-cluster-mode/logback.xml
rename to distribution/docker-compose/logback.xml
diff --git a/distribution/src/assemble/component.xml b/distribution/src/assemble/component.xml
index e2b2552..6e6473a 100644
--- a/distribution/src/assemble/component.xml
+++ b/distribution/src/assemble/component.xml
@@ -114,7 +114,7 @@
         <include>org.glassfish.jersey.core</include>
         <include>org.reflections</include>
         <include>org.glassfish.hk2.external</include>
-        <include>org.mortbay.jetty</include>
+        <include>org.eclipse.jetty</include>
         <include>javax.activation</include>
         <include>javax.annotation</include>
         <include>org.glassfish.jersey.containers</include>
@@ -155,7 +155,7 @@
         <exclude>org.glassfish.jersey.core</exclude>
         <exclude>org.reflections</exclude>
         <exclude>org.glassfish.hk2.external</exclude>
-        <exclude>org.mortbay.jetty</exclude>
+        <exclude>org.eclipse.jetty</exclude>
         <exclude>javax.activation</exclude>
         <exclude>javax.annotation</exclude>
         <exclude>org.glassfish.jersey.containers</exclude>
diff --git a/drill-yarn/src/main/java/org/apache/drill/yarn/core/ClusterDef.java b/drill-yarn/src/main/java/org/apache/drill/yarn/core/ClusterDef.java
index 223b606..825da7c 100644
--- a/drill-yarn/src/main/java/org/apache/drill/yarn/core/ClusterDef.java
+++ b/drill-yarn/src/main/java/org/apache/drill/yarn/core/ClusterDef.java
@@ -22,13 +22,17 @@
 import java.util.Map;
 
 import org.apache.drill.yarn.appMaster.TaskSpec;
-import org.mortbay.log.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.typesafe.config.Config;
 import com.typesafe.config.ConfigList;
 import com.typesafe.config.ConfigValue;
 
 public class ClusterDef {
+
+  private static Logger logger = LoggerFactory.getLogger(ClusterDef.class);
+
   // The following keys are relative to the cluster group definition
 
   public static final String GROUP_NAME = "name";
@@ -139,7 +143,7 @@
       super(pool, index, GroupType.LABELED);
       drillbitLabelExpr = (String) pool.get(DRILLBIT_LABEL);
       if (drillbitLabelExpr == null) {
-        Log.warn("Labeled pool is missing the drillbit label expression ("
+        logger.warn("Labeled pool is missing the drillbit label expression ("
             + DRILLBIT_LABEL + "), will treat pool as basic.");
       }
     }
diff --git a/exec/java-exec/pom.xml b/exec/java-exec/pom.xml
index b2f4e1f..6d0a06d 100644
--- a/exec/java-exec/pom.xml
+++ b/exec/java-exec/pom.xml
@@ -359,9 +359,8 @@
       <artifactId>protobuf-java</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.mortbay.jetty</groupId>
+      <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-util</artifactId>
-      <version>6.1.26</version>
     </dependency>
     <dependency>
       <groupId>joda-time</groupId>
@@ -444,10 +443,6 @@
         </exclusion>
         <exclusion>
           <groupId>org.eclipse.jetty</groupId>
-          <artifactId>jetty-servlets</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
         </exclusion>
         <exclusion>
@@ -845,9 +840,9 @@
                   <goal>unpack</goal>
                 </goals>
                 <configuration>
-                  <overWrite>false</overWrite>
                   <artifactItems>
                     <artifactItem>
+                      <overWrite>false</overWrite>
                       <groupId>${calcite.groupId}</groupId>
                       <artifactId>calcite-core</artifactId>
                       <type>jar</type>
diff --git a/exec/java-exec/src/main/codegen/templates/Parser.jj b/exec/java-exec/src/main/codegen/templates/Parser.jj
index ccd2091..0040e97 100644
--- a/exec/java-exec/src/main/codegen/templates/Parser.jj
+++ b/exec/java-exec/src/main/codegen/templates/Parser.jj
@@ -1,10 +1,11 @@
 /*
- * 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
+ * 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
  *
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionInitializer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionInitializer.java
index dfaf380..442c158 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionInitializer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionInitializer.java
@@ -30,7 +30,7 @@
 import org.codehaus.janino.Java.CompilationUnit;
 import org.codehaus.janino.Parser;
 import org.codehaus.janino.Scanner;
-import org.mortbay.util.IO;
+import org.eclipse.jetty.util.IO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java
index 98a76cb..c6ba0c1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/DrillSpnegoLoginService.java
@@ -28,7 +28,6 @@
 import org.eclipse.jetty.security.DefaultIdentityService;
 import org.eclipse.jetty.security.SpnegoLoginService;
 import org.eclipse.jetty.server.UserIdentity;
-import org.eclipse.jetty.util.B64Code;
 import org.ietf.jgss.GSSContext;
 import org.ietf.jgss.GSSCredential;
 import org.ietf.jgss.GSSException;
@@ -42,6 +41,7 @@
 import java.lang.reflect.Field;
 import java.security.Principal;
 import java.security.PrivilegedExceptionAction;
+import java.util.Base64;
 
 /**
  * Custom implementation of DrillSpnegoLoginService to avoid the need of passing targetName in a config file,
@@ -94,7 +94,7 @@
   private UserIdentity spnegoLogin(Object credentials, ServletRequest request) {
 
     String encodedAuthToken = (String) credentials;
-    byte[] authToken = B64Code.decode(encodedAuthToken);
+    byte[] authToken = Base64.getDecoder().decode(encodedAuthToken);
     GSSManager manager = GSSManager.getInstance();
 
     try {
@@ -149,4 +149,3 @@
     return null;
   }
 }
-
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
index 3a74549..89421c6 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
@@ -66,14 +66,14 @@
    * @return new configured sslContextFactory
    * @throws Exception when generation of self-signed certificate failed
    */
-  public SslContextFactory configureNewSslContextFactory() throws Exception {
+  public SslContextFactory.Server configureNewSslContextFactory() throws Exception {
     SSLConfig sslConf = new SSLConfigBuilder()
         .config(config)
         .mode(SSLConfig.Mode.SERVER)
         .initializeSSLContext(false)
         .validateKeyStore(true)
         .build();
-    final SslContextFactory sslContextFactory = new SslContextFactory();
+    SslContextFactory.Server sslContextFactory = new SslContextFactory.Server();
     if (sslConf.isSslValid()) {
       useOptionsConfiguredByUser(sslContextFactory, sslConf);
     } else {
@@ -82,7 +82,7 @@
     return sslContextFactory;
   }
 
-  private void useOptionsConfiguredByUser(SslContextFactory sslFactory, SSLConfig sslConf) {
+  private void useOptionsConfiguredByUser(SslContextFactory.Server sslFactory, SSLConfig sslConf) {
     logger.info("Using configured SSL settings for web server");
     sslFactory.setKeyStorePath(sslConf.getKeyStorePath());
     sslFactory.setKeyStorePassword(sslConf.getKeyStorePassword());
@@ -159,7 +159,7 @@
   }
 
 
-  private void useAutoGeneratedSelfSignedCertificate(SslContextFactory sslContextFactory) throws Exception {
+  private void useAutoGeneratedSelfSignedCertificate(SslContextFactory.Server sslContextFactory) throws Exception {
     logger.info("Using generated self-signed SSL settings for web server");
     final SecureRandom random = new SecureRandom();
 
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/ZookeeperTestUtil.java b/exec/java-exec/src/test/java/org/apache/drill/exec/ZookeeperTestUtil.java
index 7256a60..c83ae5a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/ZookeeperTestUtil.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/ZookeeperTestUtil.java
@@ -25,7 +25,7 @@
 
 public class ZookeeperTestUtil {
 
-  private static final String LOGIN_CONF_RESOURCE_PATHNAME = "login.conf";
+  private static final String LOGIN_CONF_RESOURCE_PATHNAME = "login.jaasconf";
 
   /**
    * Sets zookeeper server and client SASL test config properties.
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/TestOutputBatchSize.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/TestOutputBatchSize.java
index d7b6170..d1562ee 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/TestOutputBatchSize.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/TestOutputBatchSize.java
@@ -132,7 +132,7 @@
 
     Long[] baseLineValues = {(5l + 100l)}; // a + c.amount
     for (int i = 0; i < numRows; i++) {
-      opTestBuilder.baselineValues(baseLineValues);
+      opTestBuilder.baselineValues((Object[]) baseLineValues);
     }
     opTestBuilder.go();
   }
@@ -208,7 +208,7 @@
 
       String[] baseLineValues = {operationResult}; //operation(a, a)
       for (int i = 0; i < numRows; i++) {
-        opTestBuilder.baselineValues(baseLineValues);
+        opTestBuilder.baselineValues((Object[]) baseLineValues);
       }
       opTestBuilder.go();
     }
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
index f7dbdd7..fdc37bc 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
@@ -62,7 +62,7 @@
 
   @Test
   public void configureNewSslContextFactory() throws Exception {
-    SslContextFactory sslContextFactory = sslContextFactoryConfigurator.configureNewSslContextFactory();
+    SslContextFactory.Server sslContextFactory = sslContextFactoryConfigurator.configureNewSslContextFactory();
 
     assertEquals(30, sslContextFactory.getSslSessionTimeout());
     assertTrue(sslContextFactory.getWantClientAuth());
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestInfoSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestInfoSchema.java
index 7619ea0..ceda39e 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestInfoSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestInfoSchema.java
@@ -111,7 +111,7 @@
         .unOrdered()
         .baselineColumns("TABLE_SCHEMA", "TABLE_NAME");
     for (String[] expectedRow : expected) {
-      t1.baselineValues(expectedRow);
+      t1.baselineValues((Object[]) expectedRow);
     }
     t1.go();
 
@@ -120,7 +120,7 @@
         .unOrdered()
         .baselineColumns("TABLE_SCHEMA", "TABLE_NAME");
     for (String[] expectedRow : expected) {
-      t2.baselineValues(expectedRow);
+      t2.baselineValues((Object[]) expectedRow);
     }
     t2.go();
   }
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java
index f150978..cdb5780 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java
@@ -139,8 +139,8 @@
       .sqlQuery("select b from dfs.`vector/complex/writer/schemaChange/`")
       .unOrdered()
       .baselineColumns("b")
-      .baselineValues(null)
-      .baselineValues(null)
+      .baselineValues((Object[]) null)
+      .baselineValues((Object[]) null)
       .baselineValues(mapOf())
       .baselineValues(mapOf("x", 1L, "y", 2L))
       .build()
diff --git a/exec/java-exec/src/test/resources/login.conf b/exec/java-exec/src/test/resources/login.conf
deleted file mode 100644
index 0916120..0000000
--- a/exec/java-exec/src/test/resources/login.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * simple login, just get OS creds
- */
-hadoop_simple {
-  org.apache.hadoop.security.login.GenericOSLoginModule required;
-  org.apache.hadoop.security.login.HadoopLoginModule required;
-};
\ No newline at end of file
diff --git a/contrib/storage-kafka/src/test/resources/login.conf b/exec/java-exec/src/test/resources/login.jaasconf
similarity index 99%
copy from contrib/storage-kafka/src/test/resources/login.conf
copy to exec/java-exec/src/test/resources/login.jaasconf
index 0916120..56a10c4 100644
--- a/contrib/storage-kafka/src/test/resources/login.conf
+++ b/exec/java-exec/src/test/resources/login.jaasconf
@@ -22,4 +22,4 @@
 hadoop_simple {
   org.apache.hadoop.security.login.GenericOSLoginModule required;
   org.apache.hadoop.security.login.HadoopLoginModule required;
-};
\ No newline at end of file
+};
diff --git a/exec/java-exec/src/test/resources/vault/read-vault-secrets.hcl b/exec/java-exec/src/test/resources/vault/read-vault-secrets.hcl
index 62bbdd3..098bafb 100644
--- a/exec/java-exec/src/test/resources/vault/read-vault-secrets.hcl
+++ b/exec/java-exec/src/test/resources/vault/read-vault-secrets.hcl
@@ -1,3 +1,4 @@
+//
 // 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
@@ -13,6 +14,7 @@
 // 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.
+//
 
 path "secret/*"
 {
diff --git a/exec/jdbc-all/pom.xml b/exec/jdbc-all/pom.xml
index e689853..d66822b 100644
--- a/exec/jdbc-all/pom.xml
+++ b/exec/jdbc-all/pom.xml
@@ -33,7 +33,7 @@
        "package.namespace.prefix" equals to "oadd.". It can be overridden if necessary within any profile -->
   <properties>
     <package.namespace.prefix>oadd.</package.namespace.prefix>
-    <jdbc-all-jar.maxsize>48000000</jdbc-all-jar.maxsize>
+    <jdbc-all-jar.maxsize>46500000</jdbc-all-jar.maxsize>
   </properties>
 
   <dependencies>
@@ -176,7 +176,7 @@
         </exclusion>
         <exclusion>
           <artifactId>jetty-util</artifactId>
-          <groupId>org.mortbay.jetty</groupId>
+          <groupId>org.eclipse.jetty</groupId>
         </exclusion>
         <exclusion>
           <artifactId>freemarker</artifactId>
@@ -413,7 +413,7 @@
               <exclude>org.tukaani:*</exclude>
               <exclude>org.apache.velocity:*</exclude>
               <exclude>net.hydromatic:linq4j</exclude>
-              <exclude>org.mortbay.jetty:*</exclude>
+              <exclude>org.eclipse.jetty:*</exclude>
               <exclude>org.slf4j:jul-to-slf4j</exclude>
               <exclude>org.hamcrest:hamcrest-core</exclude>
               <exclude>org.mockito:mockito-core</exclude>
@@ -870,7 +870,7 @@
                   <exclude>org.apache.velocity:*</exclude>
                   <exclude>net.hydromatic:linq4j</exclude>
                   <exclude>org.codehaus.janino:*</exclude>
-                  <exclude>org.mortbay.jetty:*</exclude>
+                  <exclude>org.eclipse.jetty:*</exclude>
                   <exclude>org.slf4j:jul-to-slf4j</exclude>
                   <exclude>org.slf4j:log4j-over-slf4j</exclude>
                   <exclude>org.hamcrest:hamcrest-core</exclude>
diff --git a/exec/jdbc/pom.xml b/exec/jdbc/pom.xml
index a00fc93..6f02d45 100644
--- a/exec/jdbc/pom.xml
+++ b/exec/jdbc/pom.xml
@@ -42,7 +42,7 @@
       <groupId>org.apache.drill</groupId>
       <artifactId>drill-logical</artifactId>
       <version>${project.version}</version>
-    </dependency>    
+    </dependency>
     <dependency>
       <groupId>org.apache.drill.exec</groupId>
       <artifactId>drill-java-exec</artifactId>
@@ -66,7 +66,6 @@
       <artifactId>foodmart-data-json</artifactId>
       <version>0.4</version>
     </dependency>
-
     <dependency>
       <groupId>sqlline</groupId>
       <artifactId>sqlline</artifactId>
@@ -137,8 +136,12 @@
               <groupId>commons-logging</groupId>
             </exclusion>
             <exclusion>
-              <groupId>org.mortbay.jetty</groupId>
-              <artifactId>servlet-api-2.5</artifactId>
+              <groupId>org.eclipse.jetty</groupId>
+              <artifactId>jetty-server</artifactId>
+            </exclusion>
+            <exclusion>
+              <groupId>org.eclipse.jetty</groupId>
+              <artifactId>jetty-servlet</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
diff --git a/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java b/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java
index 186c9f8..b233ab9 100644
--- a/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java
+++ b/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java
@@ -22,7 +22,7 @@
 import org.apache.drill.exec.record.MaterializedField;
 import org.apache.drill.exec.record.TransferPair;
 import org.apache.drill.exec.vector.complex.BaseRepeatedValueVector;
-import org.mortbay.jetty.servlet.Holder;
+import org.eclipse.jetty.servlet.Holder;
 
 <@pp.dropOutputFile />
 <#list vv.types as type>
diff --git a/pom.xml b/pom.xml
index 93d524e..5f25bef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,7 +63,7 @@
     <mapr.release.version>6.1.0-mapr</mapr.release.version>
     <ojai.version>3.0-mapr-1808</ojai.version>
     <kerby.version>1.0.0</kerby.version>
-    <findbugs.version>3.0.0</findbugs.version>
+    <findbugs.version>3.0.5</findbugs.version>
     <netty.tcnative.classifier />
     <commons.io.version>2.7</commons.io.version>
     <commons.collections.version>4.4</commons.collections.version>
@@ -80,56 +80,56 @@
     -->
     <hive.version>3.1.3</hive.version>
     <hadoop.version>3.2.4</hadoop.version>
-    <hbase.version>2.4.9</hbase.version>
+    <hbase.version>2.5.5-hadoop3</hbase.version>
     <fmpp.version>1.0</fmpp.version>
     <freemarker.version>2.3.30</freemarker.version>
     <javassist.version>3.29.2-GA</javassist.version>
     <msgpack.version>0.6.6</msgpack.version>
     <reflections.version>0.9.10</reflections.version>
-    <avro.version>1.11.1</avro.version>
-    <metrics.version>4.2.10</metrics.version>
-    <jetty.version>9.4.44.v20210927</jetty.version>
-    <jersey.version>2.34</jersey.version>
+    <avro.version>1.11.2</avro.version>
+    <metrics.version>4.2.19</metrics.version>
+    <jetty.version>9.4.51.v20230217</jetty.version>
+    <jersey.version>2.40</jersey.version>
     <javax.validation.api>2.0.1.Final</javax.validation.api>
-    <asm.version>9.2</asm.version>
+    <asm.version>9.5</asm.version>
     <excludedGroups />
     <memoryMb>2500</memoryMb>
     <directMemoryMb>4500</directMemoryMb>
     <rat.skip>true</rat.skip>
     <license.skip>true</license.skip>
     <docker.repository>apache/drill</docker.repository>
-    <antlr.version>4.8-1</antlr.version>
+    <antlr.version>4.9.3</antlr.version>
     <maven.version>3.8.4</maven.version>
     <maven.min.version>3.6.3</maven.min.version>
     <commons.net.version>3.9.0</commons.net.version>
-    <commons.validator.version>1.6</commons.validator.version>
+    <commons.validator.version>1.7</commons.validator.version>
     <commons.text.version>1.10.0</commons.text.version>
     <protobuf.version>3.16.3</protobuf.version>
-    <protostuff.version>1.7.1</protostuff.version>
+    <protostuff.version>1.8.0</protostuff.version>
     <codemodel.version>2.6</codemodel.version>
-    <joda.version>2.10.14</joda.version>
+    <joda.version>2.12.5</joda.version>
     <javax.el.version>3.0.0</javax.el.version>
-    <surefire.version>3.0.0-M8</surefire.version>
-    <jna.version>5.8.0</jna.version>
-    <commons.compress.version>1.21</commons.compress.version>
+    <surefire.version>3.1.2</surefire.version>
+    <jna.version>5.13.0</jna.version>
+    <commons.compress.version>1.23.0</commons.compress.version>
     <hikari.version>4.0.3</hikari.version>
     <netty.version>4.1.73.Final</netty.version>
-    <httpclient.version>4.5.13</httpclient.version>
-    <libthrift.version>0.14.0</libthrift.version>
+    <httpclient.version>4.5.14</httpclient.version>
+    <libthrift.version>0.18.1</libthrift.version>
     <derby.version>10.14.2.0</derby.version>
     <commons.cli.version>1.4</commons.cli.version>
-    <snakeyaml.version>2.0</snakeyaml.version>
+    <snakeyaml.version>2.1</snakeyaml.version>
     <commons.lang3.version>3.10</commons.lang3.version>
-    <testcontainers.version>1.17.3</testcontainers.version>
+    <testcontainers.version>1.18.3</testcontainers.version>
     <typesafe.config.version>1.4.2</typesafe.config.version>
     <commons.codec.version>1.14</commons.codec.version>
     <xerces.version>2.12.2</xerces.version>
     <commons.configuration.version>1.10</commons.configuration.version>
     <commons.beanutils.version>1.9.4</commons.beanutils.version>
-    <httpdlog-parser.version>5.8</httpdlog-parser.version>
+    <httpdlog-parser.version>5.10.0</httpdlog-parser.version>
     <yauaa.version>7.19.2</yauaa.version>
-    <log4j.version>2.19.0</log4j.version>
-    <aircompressor.version>0.20</aircompressor.version>
+    <log4j.version>2.20.0</log4j.version>
+    <aircompressor.version>0.25</aircompressor.version>
     <iceberg.version>0.12.1</iceberg.version>
     <univocity-parsers.version>2.8.3</univocity-parsers.version>
     <mongo.version>4.3.3</mongo.version>
@@ -225,7 +225,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
-        <version>3.4.1</version>
         <configuration>
           <sourceFileExcludes>
             <!-- Don't include codegen -->
@@ -659,6 +658,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-jar-plugin</artifactId>
+          <version>3.3.0</version>
           <executions>
             <execution>
               <goals>
@@ -668,145 +668,156 @@
           </executions>
         </plugin>
         <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>3.3.1</version>
+        </plugin>
+        <plugin>
+          <groupId>pl.project13.maven</groupId>
+          <artifactId>git-commit-id-plugin</artifactId>
+          <version>4.0.5</version>
+        </plugin>
+        <plugin>
           <groupId>com.mycila</groupId>
           <artifactId>license-maven-plugin</artifactId>
-          <version>3.0</version>
+          <version>4.2</version>
           <configuration>
             <aggregate>true</aggregate>
             <!--suppress UnresolvedMavenProperty -->
             <header>${maven.multiModuleProjectDirectory}/header</header>
             <excludes>
-              <exclude>**/clientlib/y2038/*.c</exclude> <!-- All the files here should have MIT License -->
-              <exclude>**/clientlib/y2038/*.h</exclude> <!-- All the files here should have MIT License -->
-              <exclude>**/resources/parquet/**/*</exclude>
-              <exclude>**/.asf.yaml</exclude>
-              <exclude>**/*.woff2</exclude>
-              <exclude>**/*.ks</exclude>
-              <exclude>**/*.pcap</exclude>
-              <exclude>**/*.sas7bdat</exclude>
-              <exclude>**/*.sav</exclude>
-              <exclude>**/*.log1</exclude>
-              <exclude>**/*.log2</exclude>
-              <exclude>**/*.h5</exclude>
-              <exclude>**/*.sqllog</exclude>
-              <exclude>**/*.sqllog2</exclude>
-              <exclude>**/*.syslog</exclude>
-              <exclude>**/*.xls</exclude>
-              <exclude>**/*.xlsx</exclude>
-              <exclude>**/*.mdb</exclude>
               <exclude>**/*.accdb</exclude>
-              <exclude>**/*.syslog1</exclude>
-              <exclude>**/*.ssdlog</exclude>
-              <exclude>**/*.ltsv</exclude>
-              <exclude>**/*.log</exclude>
-              <exclude>**/*.css</exclude>
-              <exclude>**/*.js</exclude>
-              <exclude>**/*.map</exclude>
-              <exclude>**/*.md</exclude>
-              <exclude>**/*.eps</exclude>
-              <exclude>**/*.json</exclude>
-              <exclude>**/*.seq</exclude>
-              <exclude>**/*.parquet</exclude>
+              <exclude>**/*.access_log</exclude>
+              <exclude>**/.asf.yaml</exclude>
+              <exclude>**/*.autotools</exclude>
+              <exclude>**/*.avi</exclude>
               <exclude>**/*.avro</exclude>
-              <exclude>**/*.sql</exclude>
-              <exclude>**/git.properties</exclude>
-              <exclude>**/*.csv</exclude>
-              <exclude>**/*.csvh</exclude>
-              <exclude>**/*.pdf</exclude>
-              <exclude>**/*.csvh-test</exclude>
-              <exclude>**/*.tsv</exclude>
-              <exclude>**/*.txt</exclude>
-              <exclude>**/*.ssv</exclude>
               <exclude>**/.buildpath</exclude>
-              <exclude>**/target/**</exclude>
-              <exclude>**/*.iml</exclude>
-              <exclude>**/.idea/**</exclude>
-              <exclude>**/*.project</exclude>
-              <exclude>**/TAGS</exclude>
               <exclude>**/*.checkstyle</exclude>
               <exclude>**/.classpath</exclude>
-              <exclude>**/.settings/**</exclude>
+              <exclude>**/client/*build*/**</exclude>
+              <exclude>**/clientlib/y2038/*.c</exclude> <!-- All the files here should have MIT License -->
+              <exclude>**/clientlib/y2038/*.h</exclude> <!-- All the files here should have MIT License -->
+              <exclude>**/client/tags</exclude>
+              <exclude>**/cmake_install.cmake</exclude>
+              <exclude>**/control</exclude>
+              <exclude>**/*.cproject</exclude>
+              <exclude>**/.*.crc</exclude>
+              <exclude>**/*.css</exclude>
+              <exclude>**/*.csv</exclude>
+              <exclude>**/*.csvh</exclude>
+              <exclude>**/*.csvh-test</exclude>
+              <exclude>**/*.dbf</exclude>
+              <!-- TODO DRILL-4336: try to avoid the need to add this -->
+              <exclude>dependency-reduced-pom.xml</exclude>
+              <exclude>**/*.drill</exclude>
+              <exclude>**/.drill.parquet_metadata</exclude>
+              <exclude>**/*.eps</exclude>
+              <exclude>**/git.properties</exclude>
+              <exclude>**/*.h5</exclude>
+              <exclude>header</exclude>
+              <exclude>**/*.httpd</exclude>
+              <exclude>**/.idea/**</exclude>
+              <exclude>**/*.iml</exclude>
+              <exclude>**/*.js</exclude>
+              <exclude>**/*.json</exclude>
+              <exclude>KEYS</exclude>
+              <exclude>**/*.ks</exclude>
+              <exclude>**/LICENSE</exclude>
+              <exclude>**/*.log1</exclude>
+              <exclude>**/*.log1</exclude>
+              <exclude>**/*.log2</exclude>
+              <exclude>**/*.log2</exclude>
+              <exclude>**/*.log</exclude>
+              <exclude>**/*.ltsv</exclude>
+              <exclude>**/*.ltsv</exclude>
+              <exclude>**/*.map</exclude>
+              <exclude>**/*.mdb</exclude>
+              <exclude>**/*.md</exclude>
+              <exclude>**/*.mov</exclude>
+              <exclude>**/*.mp4</exclude>
+              <exclude>**/NOTICE</exclude>
+              <exclude>**/*.parquet</exclude>
               <exclude>**/*.patch</exclude>
               <exclude>**/*.pb.cc</exclude>
               <exclude>**/*.pb.h</exclude>
-              <exclude>**/client/*build*/**</exclude>
-              <exclude>**/client/tags</exclude>
-              <exclude>**/cmake_install.cmake</exclude>
-              <exclude>**/ssl/*.csr</exclude>
-              <exclude>**/ssl/*.pem</exclude>
-              <exclude>**/ssl/*.p12</exclude>
-              <exclude>**/*.tbl</exclude>
-              <exclude>**/*.httpd</exclude>
-              <exclude>**/*.autotools</exclude>
-              <exclude>**/*.cproject</exclude>
-              <exclude>**/*.drill</exclude>
-              <exclude>**/LICENSE</exclude>
-              <exclude>**/NOTICE</exclude>
-              <exclude>KEYS</exclude>
-              <exclude>header</exclude>
-              <exclude>**/.drill.parquet_metadata</exclude>
-              <exclude>**/*.mov</exclude>
-              <exclude>**/*.mp4</exclude>
-              <exclude>**/*.avi</exclude>
-              <exclude>**/*.pcx</exclude>
-              <exclude>**/*.webp</exclude>
+              <exclude>**/*.pcap</exclude>
               <exclude>**/*.pcapng</exclude>
-              <exclude>**/*.psd</exclude>
               <exclude>**/*.pcx</exclude>
-              <exclude>**/*.log1</exclude>
-              <exclude>**/*.log2</exclude>
-              <exclude>**/*.sqllog</exclude>
-              <exclude>**/*.sqllog2</exclude>
-              <exclude>**/*.ltsv</exclude>
-              <exclude>**/*.wav</exclude>
-              <exclude>**/control</exclude>
-              <!-- TODO DRILL-4336: try to avoid the need to add this -->
-              <exclude>dependency-reduced-pom.xml</exclude>
+              <exclude>**/*.pcx</exclude>
+              <exclude>**/*.pdf</exclude>
               <exclude>**/*.prj</exclude>
+              <exclude>**/*.project</exclude>
+              <exclude>**/*.psd</exclude>
+              <exclude>**/resources/parquet/**/*</exclude>
+              <exclude>**/*.sas7bdat</exclude>
+              <exclude>**/*.sav</exclude>
+              <exclude>**/*.seq</exclude>
+              <exclude>**/.settings/**</exclude>
               <exclude>**/*.shp</exclude>
-              <exclude>**/*.dbf</exclude>
-              <exclude>**/*.access_log</exclude>
+              <exclude>**/*.sql</exclude>
+              <exclude>**/*.sqllog2</exclude>
+              <exclude>**/*.sqllog2</exclude>
+              <exclude>**/*.sqllog</exclude>
+              <exclude>**/*.sqllog</exclude>
+              <exclude>**/*.ssdlog</exclude>
+              <exclude>**/ssl/*.csr</exclude>
+              <exclude>**/ssl/*.p12</exclude>
+              <exclude>**/ssl/*.pem</exclude>
+              <exclude>**/*.ssv</exclude>
+              <exclude>**/*.syslog1</exclude>
+              <exclude>**/*.syslog</exclude>
+              <exclude>**/TAGS</exclude>
+              <exclude>**/target/**</exclude>
+              <exclude>**/*.tbl</exclude>
+              <exclude>**/*.tsv</exclude>
+              <exclude>**/*.txt</exclude>
+              <exclude>**/*.wav</exclude>
+              <exclude>**/*.webp</exclude>
+              <exclude>**/*.woff2</exclude>
+              <exclude>**/*.xls</exclude>
+              <exclude>**/*.xlsx</exclude>
             </excludes>
             <mapping>
-              <java>SLASHSTAR_STYLE</java>
+              <boost>SLASHSTAR_STYLE</boost>
+              <build>SCRIPT_STYLE</build>
+              <cmake>SCRIPT_STYLE</cmake>
+              <cnf>SCRIPT_STYLE</cnf>
+              <conf>SCRIPT_STYLE</conf>
+              <conffiles>SCRIPT_STYLE</conffiles>
+              <config>SCRIPT_STYLE</config>
               <cpp>SLASHSTAR_STYLE</cpp>
+              <cql>SLASHSTAR_STYLE</cql>
+              <dockerignore>SCRIPT_STYLE</dockerignore>
+              <drillbit>SCRIPT_STYLE</drillbit>
+              <drill-conf>SCRIPT_STYLE</drill-conf>
+              <drill-embedded>SCRIPT_STYLE</drill-embedded>
+              <drill-localhost>SCRIPT_STYLE</drill-localhost>
+              <dumpcat>SCRIPT_STYLE</dumpcat>
+              <env>SCRIPT_STYLE</env>
+              <fmpp>SCRIPT_STYLE</fmpp>
+              <g4>SLASHSTAR_STYLE</g4>
+              <hcl>DOUBLESLASH_STYLE</hcl>
               <hpp>SLASHSTAR_STYLE</hpp>
               <in>SLASHSTAR_STYLE</in>
               <ipp>SLASHSTAR_STYLE</ipp>
-              <sasl>SLASHSTAR_STYLE</sasl>
-              <ssl>SLASHSTAR_STYLE</ssl>
-              <txt>SLASHSTAR_STYLE</txt>
-              <macos>SLASHSTAR_STYLE</macos>
+              <jaasconf>SLASHSTAR_STYLE</jaasconf>
+              <java>SLASHSTAR_STYLE</java>
+              <jj>SLASHSTAR_STYLE</jj>
               <linux>SLASHSTAR_STYLE</linux>
-              <boost>SLASHSTAR_STYLE</boost>
-              <cmake>SCRIPT_STYLE</cmake>
-              <g4>SLASHSTAR_STYLE</g4>
-              <runbit>SCRIPT_STYLE</runbit>
-              <runexec>SCRIPT_STYLE</runexec>
-              <drill-conf>SCRIPT_STYLE</drill-conf>
-              <sqlline>SCRIPT_STYLE</sqlline>
-              <drillbit>SCRIPT_STYLE</drillbit>
-              <dumpcat>SCRIPT_STYLE</dumpcat>
-              <drill-localhost>SCRIPT_STYLE</drill-localhost>
-              <submit_plan>SCRIPT_STYLE</submit_plan>
-              <drill-embedded>SCRIPT_STYLE</drill-embedded>
-              <conffiles>SCRIPT_STYLE</conffiles>
-              <!-- license format for login.conf files should precede the license format for *.conf files-->
-              <login.conf>SLASHSTAR_STYLE</login.conf>
-              <conf>SCRIPT_STYLE</conf>
+              <macos>SLASHSTAR_STYLE</macos>
+              <plist>XML_STYLE</plist>
               <props>SCRIPT_STYLE</props>
               <proto>DOUBLESLASH_STYLE</proto>
-              <fmpp>SCRIPT_STYLE</fmpp>
-              <tdd>SCRIPT_STYLE</tdd>
-              <linux>SLASHSTAR_STYLE</linux>
-              <plist>XML_STYLE</plist>
-              <cql>SLASHSTAR_STYLE</cql>
-              <cnf>SCRIPT_STYLE</cnf>
-              <env>SCRIPT_STYLE</env>
-              <config>SCRIPT_STYLE</config>
-              <dockerignore>SCRIPT_STYLE</dockerignore>
-              <build>SCRIPT_STYLE</build>
               <push>SCRIPT_STYLE</push>
+              <runbit>SCRIPT_STYLE</runbit>
+              <runexec>SCRIPT_STYLE</runexec>
+              <sasl>SLASHSTAR_STYLE</sasl>
+              <sqlline>SCRIPT_STYLE</sqlline>
+              <ssl>SLASHSTAR_STYLE</ssl>
+              <submit_plan>SCRIPT_STYLE</submit_plan>
+              <tdd>SCRIPT_STYLE</tdd>
+              <txt>SLASHSTAR_STYLE</txt>
             </mapping>
           </configuration>
           <executions>
@@ -820,21 +831,21 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.8.1</version>
+          <version>3.11.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-enforcer-plugin</artifactId>
-          <version>3.0.0-M2</version>
+          <version>3.3.0</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>build-helper-maven-plugin</artifactId>
-          <version>3.0.0</version>
+          <version>3.4.0</version>
         </plugin>
         <plugin> <!-- classpath scanning  -->
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>exec-maven-plugin</artifactId>
-          <version>1.6.0</version>
+          <version>3.1.0</version>
           <executions>
             <execution>
               <phase>process-classes</phase>
@@ -915,7 +926,7 @@
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>xml-maven-plugin</artifactId>
-          <version>1.0</version>
+          <version>1.1.0</version>
         </plugin>
 
         <!--This plugin's configuration is used to store Eclipse m2e settings
@@ -1001,7 +1012,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-shade-plugin</artifactId>
-          <version>3.2.4</version>
+          <version>3.5.0</version>
           <executions>
             <execution>
               <phase>package</phase>
@@ -1027,17 +1038,17 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-assembly-plugin</artifactId>
-          <version>3.2.0</version>
+          <version>3.6.0</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>3.1.1</version>
+          <version>3.3.0</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-javadoc-plugin</artifactId>
-          <version>3.1.1</version>
+          <version>3.5.0</version>
           <configuration>
             <doclint>none</doclint>
           </configuration>
@@ -1392,8 +1403,12 @@
         <version>${avro.version}</version>
         <exclusions>
           <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
@@ -1404,8 +1419,12 @@
         <scope>compile</scope>
         <exclusions>
           <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
           </exclusion>
           <exclusion>
             <groupId>commons-logging</groupId>
@@ -1460,10 +1479,6 @@
             <artifactId>servlet-api</artifactId>
           </exclusion>
           <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api-2.5</artifactId>
-          </exclusion>
-          <exclusion>
             <groupId>org.apache.hadoop</groupId>
             <artifactId>hadoop-mapreduce-client-core</artifactId>
           </exclusion>
@@ -1511,8 +1526,12 @@
             <artifactId>commons-logging-api</artifactId>
           </exclusion>
           <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
           </exclusion>
           <exclusion>
             <groupId>org.apache.hive</groupId>
@@ -1685,8 +1704,12 @@
             <artifactId>asm</artifactId>
           </exclusion>
           <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api-2.5</artifactId>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
           </exclusion>
           <exclusion>
             <groupId>org.json</groupId>
@@ -2095,23 +2118,15 @@
             <version>${hadoop.version}</version>
             <exclusions>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -2266,23 +2281,19 @@
             <classifier>tests</classifier>
             <exclusions>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -2373,8 +2384,12 @@
                 <artifactId>commons-logging</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
@@ -2409,8 +2424,12 @@
                 <artifactId>commons-logging</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
@@ -2453,15 +2472,15 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -2604,8 +2623,12 @@
                 <groupId>io.netty</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <artifactId>slf4j-log4j12</artifactId>
@@ -2738,20 +2761,12 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>servlet-api-2.5</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>jsp-2.1</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jsp-api-2.1</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jetty-sslengine</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <artifactId>jamon-runtime</artifactId>
@@ -2803,8 +2818,12 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <artifactId>commons-logging</artifactId>
@@ -2937,20 +2956,19 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
                 <artifactId>servlet-api</artifactId>
               </exclusion>
-
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -3037,19 +3055,19 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -3264,8 +3282,12 @@
                 <artifactId>commons-logging</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
@@ -3287,8 +3309,12 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>servlet-api-2.5</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>commons-logging</groupId>
@@ -3350,20 +3376,16 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>servlet-api-2.5</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>jsp-2.1</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>jsp-api-2.1</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jetty-sslengine</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>jetty-jsp</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
               </exclusion>
               <exclusion>
                 <artifactId>jamon-runtime</artifactId>
@@ -3415,8 +3437,12 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <artifactId>commons-logging</artifactId>
@@ -3525,12 +3551,12 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>dnsjava</groupId>
@@ -3552,12 +3578,12 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
             </exclusions>
           </dependency>
@@ -3649,12 +3675,12 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>dnsjava</groupId>
@@ -3676,12 +3702,12 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
             </exclusions>
           </dependency>
@@ -3902,6 +3928,7 @@
       </activation>
       <properties>
         <hadoop.version>2.10.2</hadoop.version>
+        <hbase.version>2.5.5</hbase.version>
       </properties>
       <dependencyManagement>
         <dependencies>
@@ -3915,19 +3942,19 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -4006,19 +4033,19 @@
                 <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>javax.servlet</groupId>
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
               </exclusion>
               <exclusion>
@@ -4304,12 +4331,12 @@
                 <artifactId>commons-logging</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>log4j</groupId>
@@ -4323,12 +4350,12 @@
             <version>${hbase.version}</version>
             <exclusions>
               <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>servlet-api-2.5</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <groupId>commons-logging</groupId>
@@ -4390,20 +4417,16 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>servlet-api-2.5</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>jsp-2.1</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
-                <artifactId>jsp-api-2.1</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jetty-sslengine</artifactId>
-                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>jetty-jsp</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
               </exclusion>
               <exclusion>
                 <artifactId>jamon-runtime</artifactId>
@@ -4455,8 +4478,12 @@
                 <artifactId>servlet-api</artifactId>
               </exclusion>
               <exclusion>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>servlet-api-2.5</artifactId>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
               </exclusion>
               <exclusion>
                 <artifactId>commons-logging</artifactId>
