Author: markt Date: Fri Feb 1 13:25:42 2019 New Revision: 1852739 URL: http://svn.apache.org/viewvc?rev=1852739&view=rev Log: Fix compilation and test issues when using Java 11: - References to deprecated o.a.c.util.Base64 class updated to use replacement - Same class excluded from build when using Java 11+ - Remove use of bootclasspath as it breaks with Java 11 due to Java 11 using a different file structure and it was only present to prevent a warning
Modified: tomcat/tc7.0.x/trunk/build.xml tomcat/tc7.0.x/trunk/java/org/apache/catalina/websocket/WebSocketServlet.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/build.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/build.xml?rev=1852739&r1=1852738&r2=1852739&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/build.xml (original) +++ tomcat/tc7.0.x/trunk/build.xml Fri Feb 1 13:25:42 2019 @@ -184,6 +184,9 @@ <available file="/dev/urandom" property="test.jvmarg.egd" value="-Djava.security.egd=file:/dev/./urandom"/> <property name="test.jvmarg.egd" value="" /> + <!-- Check for Java 11 --> + <available classname="java.net.http.HttpClient" property="java11.present"/> + <!-- Include .gitignore in src distributions. --> <!-- .git, .gitattributes and .gitignore are in defaultexcludes since Ant 1.8.2 --> <defaultexcludes add="**/.git" /> @@ -661,6 +664,7 @@ <exclude name="org/apache/naming/factory/webservices/**" /> <!-- Exclude classes that require Java 7 to compile --> <exclude name="org/apache/catalina/startup/SafeForkJoinWorkerThreadFactory.java" /> + <exclude name="org/apache/catalina/util/Base64.java" if="java11.present" /> <exclude name="org/apache/tomcat/websocket/**" /> </javac> <!-- Copy static resource files --> @@ -700,12 +704,6 @@ <!-- Only include classes that require Java 7 to compile --> <include name="org/apache/catalina/startup/SafeForkJoinWorkerThreadFactory.java" /> <include name="org/apache/tomcat/websocket/**" /> - <!-- Not required but prevents a warning being displayed --> - <bootclasspath> - <fileset dir="${java.7.home}/jre/lib"> - <include name="*.jar"/> - </fileset> - </bootclasspath> </javac> </target> @@ -1341,6 +1339,7 @@ <include name="org/apache/**" /> <include name="javax/**" /> <include name="util/**" /> + <exclude name="org/apache/catalina/util/TesterBase64Performance.java" if="java11.present" /> <exclude unless="java.7.home" name="org/apache/catalina/websocket/**" /> <exclude unless="java.7.home" name="org/apache/tomcat/websocket/**" /> </javac> Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/websocket/WebSocketServlet.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/websocket/WebSocketServlet.java?rev=1852739&r1=1852738&r2=1852739&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/websocket/WebSocketServlet.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/websocket/WebSocketServlet.java Fri Feb 1 13:25:42 2019 @@ -34,17 +34,17 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpServletResponse; import org.apache.catalina.connector.RequestFacade; -import org.apache.catalina.util.Base64; import org.apache.tomcat.util.buf.B2CConverter; +import org.apache.tomcat.util.codec.binary.Base64; import org.apache.tomcat.util.res.StringManager; /** * Provides the base implementation of a Servlet for processing WebSocket * connections as per RFC6455. It is expected that applications will extend this * implementation and provide application specific functionality. - * + * * @deprecated Replaced by the JSR356 WebSocket 1.1 implementation and will be - * removed in Tomcat 8.0.x. + * removed in Tomcat 8.0.x. */ @Deprecated public abstract class WebSocketServlet extends HttpServlet { @@ -193,7 +193,7 @@ public abstract class WebSocketServlet e sha1Helper.reset(); sha1Helper.update(key.getBytes(B2CConverter.ISO_8859_1)); - String result = Base64.encode(sha1Helper.digest(WS_ACCEPT)); + String result = Base64.encodeBase64String(sha1Helper.digest(WS_ACCEPT)); sha1Helpers.add(sha1Helper); Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java?rev=1852739&r1=1852738&r2=1852739&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java Fri Feb 1 13:25:42 2019 @@ -44,11 +44,11 @@ import org.apache.catalina.deploy.Contex import org.apache.catalina.servlets.DefaultServlet; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; -import org.apache.catalina.util.Base64; import org.apache.tomcat.util.buf.B2CConverter; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.C2BConverter; import org.apache.tomcat.util.buf.CharChunk; +import org.apache.tomcat.util.codec.binary.Base64; import org.apache.tomcat.websocket.TesterEchoServer; /** @@ -258,12 +258,12 @@ public class TestWebSocket extends Tomca MessageDigest sha1Helper = MessageDigest.getInstance("SHA1"); sha1Helper.reset(); sha1Helper.update("TODO".getBytes(B2CConverter.ISO_8859_1)); - String source = Base64.encode(sha1Helper.digest(WS_ACCEPT)); + String source = Base64.encodeBase64String(sha1Helper.digest(WS_ACCEPT)); Assert.assertEquals(source,accept); sha1Helper.reset(); sha1Helper.update("TOD".getBytes(B2CConverter.ISO_8859_1)); - source = Base64.encode(sha1Helper.digest(WS_ACCEPT)); + source = Base64.encodeBase64String(sha1Helper.digest(WS_ACCEPT)); Assert.assertFalse(source.equals(accept)); // Finished with the socket client.close(); Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1852739&r1=1852738&r2=1852739&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Feb 1 13:25:42 2019 @@ -210,6 +210,12 @@ Update the packaged version of the Tomcat Native Library to 1.2.21 to pick up the memory leak fixes when using NIO/NIO2 with OpenSSL. (markt) </update> + <fix> + Enable compilation and test execution with Java 11. Note that the + deprecated class <code>org.apache.catalina.util.Base64</code> will be + excluded from the build in this case as it depends on JRE classes that + have been removed in Java 11 onwards. (markt) + </fix> </changelog> </subsection> </section> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org