Author: violetagg Date: Tue Sep 16 19:37:54 2014 New Revision: 1625362 URL: http://svn.apache.org/r1625362 Log: Merged revision 1604810 from tomcat/trunk: Add the initial implementation for the permessage-deflate implementation This is a work-in-progress - There are still multiple Autobahn failures (or rather there will be once it is plumbed in) - No support (yet) for compression of outgoing messages
Added: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java - copied, changed from r1604810, tomcat/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/TransformationFactory.java - copied unchanged from r1604810, tomcat/trunk/java/org/apache/tomcat/websocket/TransformationFactory.java Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Constants.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Reverse-merged /tomcat/trunk:r1622434 Merged /tomcat/trunk:r1604810 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Constants.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Constants.java?rev=1625362&r1=1625361&r2=1625362&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Constants.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Constants.java Tue Sep 16 19:37:54 2014 @@ -16,8 +16,13 @@ */ package org.apache.tomcat.websocket; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Locale; +import javax.websocket.Extension; + /** * Internal implementation constants. */ @@ -61,6 +66,14 @@ public class Constants { Boolean.getBoolean( "org.apache.tomcat.websocket.STRICT_SPEC_COMPLIANCE"); + public static final List<Extension> INSTALLED_EXTENSIONS; + + static { + List<Extension> installed = new ArrayList<Extension>(1); + installed.add(new WsExtension("permessage-deflate")); + INSTALLED_EXTENSIONS = Collections.unmodifiableList(installed); + } + private Constants() { // Hide default constructor } Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1625362&r1=1625361&r2=1625362&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Tue Sep 16 19:37:54 2014 @@ -28,6 +28,10 @@ asyncChannelWrapperSecure.wrongStateWrit backgroundProcessManager.processFailed=A background process failed +perMessageDeflate.deflateFailed=Failed to decompress a compressed WebSocket frame +perMessageDeflate.invalidWindowSize=An invalid windows of [{1}] size was specified for [{0}]. Valid values are whole numbers from 8 to 15 inclusive. +perMessageDeflate.unknownParameter=An unknown extension parameter [{0}] was defined + util.notToken=An illegal extension parameter was specified with name [{0}] and value [{1}] util.invalidMessageHandler=The message handler provided does not have an onMessage(Object) method util.invalidType=Unable to coerce value [{0}] to type [{1}]. That type is not supported. Copied: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java (from r1604810, tomcat/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java) URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java?p2=tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java&p1=tomcat/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java&r1=1604810&r2=1625362&rev=1625362&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/PerMessageDeflate.java Tue Sep 16 19:37:54 2014 @@ -36,7 +36,7 @@ public class PerMessageDeflate implement private static final String SERVER_MAX_WINDOW_BITS = "server_max_window_bits"; private static final String CLIENT_MAX_WINDOW_BITS = "client_max_window_bits"; - private static final int RSV_BITMASK = 0b100; + private static final int RSV_BITMASK = 0x4; private static final byte[] EOM_BYTES = new byte[] {0, 0, -1, -1}; public static final String NAME = "permessage-deflate"; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org