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: [email protected]
For additional commands, e-mail: [email protected]