diff --git a/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/ClientVersion.java b/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/ClientVersion.java
index c32d878..9178b23 100644
--- a/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/ClientVersion.java
+++ b/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/ClientVersion.java
@@ -25,7 +25,8 @@
     public static final String OPENCMIS_USER_AGENT;
 
     static {
-        Package p = Package.getPackage("org.apache.chemistry.opencmis.client.bindings.impl");
+        Package p = ClientVersion.class.getClassLoader()
+                .getDefinedPackage("org.apache.chemistry.opencmis.client.bindings.impl");
         if (p == null) {
             OPENCMIS_VERSION = "?";
             OPENCMIS_CLIENT = "Apache-Chemistry-OpenCMIS";
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-archetype/src/main/resources/archetype-resources/pom.xml b/chemistry-opencmis-server/chemistry-opencmis-server-archetype/src/main/resources/archetype-resources/pom.xml
index 35dfe89..c0647ff 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-archetype/src/main/resources/archetype-resources/pom.xml
@@ -89,8 +89,8 @@
         </dependency>
         <dependency><!-- for development only -->
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.4</version>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/pom.xml b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/pom.xml
index cb1c748..a3b5766 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/pom.xml
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/pom.xml
@@ -67,13 +67,13 @@
         </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.7</version>
+            <artifactId>commons-text</artifactId>
+            <version>1.4</version>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.4</version>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
             <scope>provided</scope>
         </dependency>
          <!-- Test -->
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/ServerVersion.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/ServerVersion.java
index 386df1d..634206b 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/ServerVersion.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/ServerVersion.java
@@ -24,7 +24,7 @@
     public static final String OPENCMIS_SERVER;
 
     static {
-        Package p = Package.getPackage("org.apache.chemistry.opencmis.server.impl");
+        Package p = ServerVersion.class.getClassLoader().getDefinedPackage("org.apache.chemistry.opencmis.server.impl");
         if (p == null) {
             OPENCMIS_VERSION = "?";
             OPENCMIS_SERVER = "Apache-Chemistry-OpenCMIS";
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
index 26095bf..1d665ff 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
@@ -86,7 +86,7 @@
 import org.apache.chemistry.opencmis.server.shared.QueryStringHttpServletRequestWrapper;
 import org.apache.chemistry.opencmis.server.shared.ServiceCall;
 import org.apache.chemistry.opencmis.server.shared.TempStoreOutputStreamFactory;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ControlParser.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ControlParser.java
index 474f873..976e264 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ControlParser.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ControlParser.java
@@ -50,7 +50,6 @@
         parse();
     }
 
-    @SuppressWarnings("unchecked")
     private void parse() {
         // gather all controls
         Map<String, String[]> controls = request.getParameterMap();
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/POSTHttpServletRequestWrapper.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/POSTHttpServletRequestWrapper.java
index 6eb956b..f8c60a9 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/POSTHttpServletRequestWrapper.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/POSTHttpServletRequestWrapper.java
@@ -48,7 +48,6 @@
     private BigInteger size;
     private InputStream stream;
 
-    @SuppressWarnings("unchecked")
     public POSTHttpServletRequestWrapper(HttpServletRequest request, TempStoreOutputStreamFactory streamFactory)
             throws IOException {
         super(request);
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/CmisWebServicesServlet.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/CmisWebServicesServlet.java
index e625a58..f15862d 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/CmisWebServicesServlet.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/CmisWebServicesServlet.java
@@ -44,7 +44,7 @@
 import org.apache.chemistry.opencmis.server.shared.CallContextHandler;
 import org.apache.chemistry.opencmis.server.shared.CsrfManager;
 import org.apache.chemistry.opencmis.server.shared.Dispatcher;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/ProtectionRequestWrapper.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/ProtectionRequestWrapper.java
index a29fa74..8a06650 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/ProtectionRequestWrapper.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/webservices/ProtectionRequestWrapper.java
@@ -19,9 +19,9 @@
 package org.apache.chemistry.opencmis.server.impl.webservices;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.Locale;
 
+import javax.servlet.ReadListener;
 import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
@@ -42,7 +42,7 @@
     private static final byte DASH = 0x2D;
 
     private final int messageMax;
-    private final InputStream orgStream;
+    private final ServletInputStream orgStream;
     private final ServletInputStream checkedStream;
     private final byte[] boundary;
 
@@ -159,6 +159,21 @@
             orgStream.close();
         }
 
+        @Override
+        public boolean isFinished() {
+            return orgStream.isFinished();
+        }
+
+        @Override
+        public boolean isReady() {
+            return orgStream.isReady();
+        }
+
+        @Override
+        public void setReadListener(ReadListener readListener) {
+            orgStream.setReadListener(readListener);
+        }
+
         private void checkBoundary(int startPos) {
             int lastLineFeed = -1;
             for (int i = startPos; i < pos; i++) {
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java
index 5f6987b..595177f 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java
@@ -40,7 +40,6 @@
             return null;
         }
 
-        @SuppressWarnings("unchecked")
         Map<String, String[]> parameters = request.getParameterMap();
 
         if (parameters != null) {
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/NoBodyHttpServletResponseWrapper.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/NoBodyHttpServletResponseWrapper.java
index 59dce99..0022e27 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/NoBodyHttpServletResponseWrapper.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/NoBodyHttpServletResponseWrapper.java
@@ -24,6 +24,7 @@
 import java.io.UnsupportedEncodingException;
 
 import javax.servlet.ServletOutputStream;
+import javax.servlet.WriteListener;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponseWrapper;
 
@@ -66,5 +67,15 @@
         public void write(byte[] b, int off, int len) throws IOException {
             // ignore
         }
+
+        @Override
+        public boolean isReady() {
+            return true;
+        }
+
+        @Override
+        public void setWriteListener(WriteListener listener) {
+            // ignore
+        }
     }
 }
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestHeadMethodTest.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestHeadMethodTest.java
index d3ea3dd..7b71784 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestHeadMethodTest.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestHeadMethodTest.java
@@ -35,6 +35,7 @@
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
+import javax.servlet.WriteListener;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -152,5 +153,14 @@
         public void write(int i) throws IOException {
             os.write(i);
         }
+
+        @Override
+        public boolean isReady() {
+            return true;
+        }
+
+        @Override
+        public void setWriteListener(WriteListener writeListener) {
+        }
     }
 }
\ No newline at end of file
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestMockHelper.java b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestMockHelper.java
index 43bdcef..aca69ba 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestMockHelper.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/HttpRequestMockHelper.java
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 
+import javax.servlet.ReadListener;
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
 
@@ -87,5 +88,23 @@
         public int read(byte[] b) throws IOException {
             return stream.read(b);
         }
+
+        @Override
+        public boolean isFinished() {
+            try {
+                return stream.available() == 0;
+            } catch (IOException e) {
+                return true;
+            }
+        }
+
+        @Override
+        public boolean isReady() {
+            return true;
+        }
+
+        @Override
+        public void setReadListener(ReadListener readListener) {
+        }
     }
 }
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-extension-archetype/src/main/resources/archetype-resources/pom.xml b/chemistry-opencmis-server/chemistry-opencmis-server-extension-archetype/src/main/resources/archetype-resources/pom.xml
index ebd4463..27a4092 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-extension-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-extension-archetype/src/main/resources/archetype-resources/pom.xml
@@ -45,8 +45,8 @@
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.4</version>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java b/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
index 9132bf9..504d0b1 100644
--- a/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
+++ b/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
@@ -18,10 +18,6 @@
  */
 package org.apache.chemistry.opencmis.server.support.query;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.antlr.runtime.ANTLRInputStream;
 import org.antlr.runtime.ANTLRStringStream;
 import org.antlr.runtime.CharStream;
 import org.antlr.runtime.CommonTokenStream;
diff --git a/pom.xml b/pom.xml
index f91aa01..9b71249 100644
--- a/pom.xml
+++ b/pom.xml
@@ -159,7 +159,7 @@
         <slf4j.version>1.7.25</slf4j.version>
         <log4j.version>2.11.0</log4j.version>
         <apacheclient.version>4.2.6</apacheclient.version>
-        <cxf.version>3.2.4</cxf.version>
+        <cxf.version>3.2.5</cxf.version>
         <okhttp.version>3.10.0</okhttp.version>
     </properties>
 
