Commit Graph

198 Commits

Author SHA1 Message Date
Joakim Erdfelt a3f1592c50 Issue #2431 - Upgrade to Junit 5 (#2436)
+ Changes needed for new Junit 5
+ Migrating from Vintage junit API to Jupiter junit API
+ Relies on SNAPSHOT jetty-test-helper
  - this will be a formal release once this issue has been
    resolved satisfactory
+ Have jenkins always pull latest SNAPSHOT for each build
+ Adding jetty.snapshots repository
+ Using surefire 2.22.0 per advice from junit
+ Ensuring <reuseForks>true</reuseForks> to work around issue junit-team/junit5#801
+ Disabling <forkMode>always</forkMode> in maven-surefire-plugin
  due to bug https://github.com/junit-team/junit5/issues/801
+ OSGi tests must remain at vintage due to PaxExam
+ Moving from vintage TestingDir to jupiter WorkDir
+ Fixing imports to use jupiter, not vintage
+ Migrating vintage ExpectedException to jupiter assertThrows
+ Migrating vintage TestName to jupiter TestInfo
+ Migrating @RunWith(Parameterized.class)
  to @ParameterizedTest with Argument Sources
+ Migrating assertTrue(val.contains(needle))
  to assertThat(val, containsString(needle))
+ Aligning junit versions per recommendations from @sormuras
+ Adjusting parameter order change for assertEquals()
+ Test LifeCycle Annotation Migration

junit 4      | junit 5 / jupiter
------------ | -----------
@Before      | @BeforeEach
@After       | @AfterEach
@BeforeClass | @BeforeAll
@AfterClass  | @AfterAll

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-09-05 10:07:17 +10:00
Simone Bordet 5e9a45eca1
Merge pull request #2742 from lachlan-roberts/jetty-9.4.x-2679-h2spec_compliance
Issue #2679 - h2spec compliance Huffman encoding
2018-07-21 14:16:48 +02:00
lachan-roberts b5e607068f Issue #2679 - HTTP/2 Spec Compliance
now handling padding over 7 bits with Exception
throwing CompressionExceptions instead of StreamExceptions
fixed issue with non terminal encoded strings

Signed-off-by: lachan-roberts <lachlan@webtide.com>
2018-07-21 22:10:12 +10:00
Simone Bordet 4ace2e4d8d Issue #2679 - h2spec compliance.
Integrated HPACK modifications to comply with the specification.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-21 11:42:31 +02:00
Lachlan Roberts da213d5876 Issue #2679 - HTTP/2 Spec Compliance
Now throwing exceptions for incorrect padding and EOS in content in Huffman.decode()

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-07-21 11:32:34 +10:00
Lachlan Roberts a72fe7e3c7 Issue #2679 - HTTP/2 Spec Compliance
Added tests for the problems with the Huffman encoding

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-07-20 22:40:05 +10:00
Greg Wilkins 0da9225056 dynamic table resize
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-19 13:49:40 +02:00
Greg Wilkins 971ca22367 8.1.2.3
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-19 12:50:54 +02:00
Greg Wilkins fa46013cf7 8.1.2.2
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-19 12:24:24 +02:00
Greg Wilkins 98ea112fd3 wip
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-18 12:26:55 +02:00
Greg Wilkins 42844f2c5f WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-18 11:08:05 +02:00
Greg Wilkins 0ad4b4483b WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-15 19:22:31 +02:00
Greg Wilkins a9819ebb01 review fixes
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-12 11:50:53 +02:00
Greg Wilkins 44801d8ff3 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 18:08:36 +00:00
Greg Wilkins 9fd80e8524 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 15:17:39 +00:00
Greg Wilkins 10ec53319a WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 14:56:42 +00:00
Greg Wilkins b42017b942 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 14:44:38 +00:00
Greg Wilkins 4d09806d4e
Issue #2571 HPACK table overflow (#2589)
When an entry that is too large for the dynamic table is added, the entire table should be evicted as per the RFC.  Previously we were throwing a 431 Bad Message.   This will require that the OP should retest #1134.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-30 09:22:00 +02:00
Greg Wilkins 953611fb72 reverted inadvertant commit with #2585
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 17:31:56 +02:00
Greg Wilkins 436c00b0af Fixed #2585
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 15:48:53 +02:00
Greg Wilkins bcb9fa3b32
Merge pull request #2257 from lachlan-roberts/jetty-9.4.x-2206-ReferenceEquality
Resolved errorprone ReferenceEquality warnings #2206
2018-03-07 11:11:40 +11:00
Lachlan Roberts 020ebde77c found additional ReferenceEquality warnings which have been resolved
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-06 14:28:11 +11:00
Lachlan Roberts a639ee9275 Resolved errorprone MissingOverride warnings #2206
`@Override` was added to methods which were missing the annotation #2206

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-01 13:59:25 +11:00
Greg Wilkins ec51926622 reduce fragility of tests
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-02-19 19:22:32 +11:00
Joakim Erdfelt fa4c7b0ca9 Issue #2108 - Updating license headers for year 2018 2018-01-09 08:39:37 -06:00
Simone Bordet 07838b057f Happy New Year 2017. 2017-01-19 18:54:03 +01:00
Simone Bordet 347c48d657 Revert "resolve merge and update license headers"
This reverts commit 53b31b03dd, reversing
changes made to 4565c186d7.
2017-01-19 18:26:43 +01:00
Jesse McConnell 53b31b03dd resolve merge and update license headers 2017-01-19 09:33:16 -06:00
Simone Bordet bc3c3ff9c8 Improved logging. 2016-12-12 16:00:12 +01:00
Greg Wilkins ec0b1ea847 Issue #1134 HPACK
Improved exceptions when receiving unknown index or a field that cannot be indexed.
2016-12-02 13:40:58 +11:00
Greg Wilkins b6b33bd679 Issue #1134 HPACK
Added test that demonstrates large headers are incorrectly indexed
Do not index fields if too large to fit
2016-12-02 10:27:14 +11:00
Simone Bordet 33eb768d69 Fixes #1029 - Restore Request.setHttpVersion().
Also cleaned up the asymmetry in MetaData between the setter
(setHttpVersion()) and the getter (getVersion()).
2016-10-25 15:45:29 +02:00
Greg Wilkins e53ea55f48 Issue #752 SETTINGS_MAX_HEADER_LIST_SIZE
Defined missing status codes (removed old/wrong javadoc)
Changed use of 413 to 431
Received SETTINGS_MAX_HEADER_LIST_SIZE is set on hpack encoded and warning generated only for large responses.
2016-07-23 12:17:50 +10:00
Greg Wilkins 2f4a6f29b7 Do not use ArrayQueue for HPACK #751 2016-07-21 11:07:55 +10:00
Simone Bordet a3b5e7ebb7 Added guards against NPE in case HttpField.getValue() returns null. 2016-07-15 15:45:50 +02:00
Simone Bordet 389eb68c3c Code cleanups. 2016-07-15 15:45:50 +02:00
Greg Wilkins 45ead1bb29 jetty http2 client parse error #726 2016-07-15 13:47:41 +10:00
Simone Bordet 6306f06e2f Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-02-09 18:12:04 +01:00
Joakim Erdfelt cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Simone Bordet cbb7be040f 480260 - HPack decode error for buffers with offset.
Fixed calculations to advance the ByteBuffer.
2015-10-20 23:19:10 +02:00
Simone Bordet c367ea8a85 441020 - Support HEADERS followed by CONTINUATION+. 2015-07-08 18:55:47 +02:00
Joakim Erdfelt 9e6c8eade1 464727 - Update Javadoc for Java 8 DocLint 2015-04-22 12:43:22 -07:00
Greg Wilkins 1cb0449be3 Organised imports 2015-03-26 12:32:15 +11:00
Joakim Erdfelt 08b4bd439e Fixing tests on http2-hpack
+ HttpField.nameHashCode() fixed to actually be US-ASCII case
  insensitive per documentation
+ Since removal of MetaData equals/hashcode, the comparison
  of the MetaData and MetaData.Response is now done entirely
  within the HpackTest
2015-02-20 10:16:03 -07:00
Greg Wilkins a147cee480 459731 - Update for drafts hpack-11 and http2-17 2015-02-12 14:45:12 +11:00
Greg Wilkins e1cc5fb487 Merge remote-tracking branch 'origin/master' into jetty-9.3-ewyk
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/QueuedHttpInput.java
	jetty-util/src/main/java/org/eclipse/jetty/util/thread/NonBlockingThread.java
2015-01-08 15:21:01 +01:00
Joakim Erdfelt a3201a3c81 Happy New Year 2015 2015-01-07 17:06:59 -07:00
Simone Bordet 1c2c83e962 Added TODO to remove references to ByteBuffer.array() without
checking whether the ByteBuffer does have a backing array.
2014-12-18 17:14:34 +01:00
Greg Wilkins c3472f01c4 updated hpack for draft 10 name changes 2014-12-04 10:27:14 +01:00
Greg Wilkins 4296d84a7b updated hpack for draft 10 name changes 2014-12-04 10:17:06 +01:00
Greg Wilkins 31e448ffd6 Removed duplication of HttpGenerator$Info vs http.MetaData
Use MetaData throughout code base
2014-10-24 15:51:20 +11:00
Greg Wilkins ec79a6f88e Improve HTTP header pre-encoding
The HttpContent class has been reworked to store HttpField instances, we may be generated on
demand or instances of PreEncodedHttpField.

The encoding of HTTP2 fields has been generalized to handle both indexed and literal fields, selected
by header enum set.

Default servlet and response classes have been cleaned up in how they set response headers.
2014-10-16 12:31:37 +11:00
Greg Wilkins 8c85b2f591 improved http2 static entry generation 2014-10-15 14:04:54 +11:00
Simone Bordet c7987b154a Reverted logging of HTTP2 tests from DEBUG to INFO. 2014-08-15 17:29:38 +02:00
Greg Wilkins 68a3ca8e31 improved debug logging of settings 2014-08-13 12:00:32 +10:00
Greg Wilkins 64e49a1fe5 work around classloaders for field preencoders 2014-08-07 09:10:35 +10:00
Greg Wilkins 17f46665df preencoded httpfield optimisation 2014-08-06 21:09:26 +10:00
Greg Wilkins d7f2c42e2d misc optimisation of http2 field creation 2014-08-05 12:55:37 +10:00
Greg Wilkins 48d68a4916 handle http/1 host header in http/2 2014-08-05 09:21:27 +10:00
Simone Bordet a2faa030cc Improved logging. 2014-08-04 12:09:35 +02:00
Greg Wilkins 1fb07644a1 Use HttpHeader enum for :path and similar h2 fields 2014-08-02 16:37:43 +10:00
Greg Wilkins cd59d0085e improve known header handling in hpack encoding 2014-08-02 15:40:15 +10:00
Greg Wilkins 1873b306b3 Improved hpack encoder handling of custom fields 2014-08-02 12:56:12 +10:00
Greg Wilkins 9c3eedfea8 Updates to hpack for hpack-09 draft 2014-07-31 13:26:23 +10:00
Greg Wilkins a1696c0139 updates for hpack huffman and examples 2014-07-25 19:38:16 +10:00
Greg Wilkins c13be6d932 Merge branch 'jetty-http2' into refset
Conflicts:
	jetty-http2/http2-hpack/src/test/java/org/eclipse/jetty/http2/hpack/HpackEncoderTest.java
2014-07-25 18:33:10 +10:00
Greg Wilkins 30123607c6 Major refactor of metadata and HttpURI
This refactor strives to remove duplication between the Metadata class and the HttpURI class.

Both classes have been made mutable (as they partially were anyway so best not to pretend).

HttpURI now holds the decomposed strings rather than a single string with indexes. This allows it to be rebuilt after changing just parts of the URI. It is now a lot more similar to the
JVM URI class and we could consider replacing it (after checking peformance).

Next step is to refactor the Request class to prevent it duplicating these fields.
2014-07-24 15:49:52 +10:00
Greg Wilkins d6f841bb87 fixed refactor uri issue 2014-07-23 09:03:52 +10:00
Greg Wilkins 7f62f2600b refactored URI handling 2014-07-20 10:23:47 +10:00
Greg Wilkins a639359a7b do not index content-length 2014-07-18 17:23:44 +10:00
Greg Wilkins d4e7c0a279 update encoding strategy for no ref-set 2014-07-18 15:59:41 +10:00
Greg Wilkins 89a816843f removed refset from hpack 2014-07-18 15:59:41 +10:00
Greg Wilkins f9ffefbe13 refactored to avoid copying MetaData.Request instances 2014-07-11 16:35:25 +10:00
Simone Bordet 4c2c7e8352 Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-06-25 12:37:05 +02:00
Greg Wilkins c0629b6e04 encoding debug 2014-06-19 15:32:27 +02:00
Greg Wilkins 9acf971cc1 cache path URI in table 2014-06-18 15:26:33 +02:00
Simone Bordet 4dca6a71d3 Update Parser constructor to take additional parameters needed by
HpackDecoder.
2014-06-18 11:40:11 +02:00
Greg Wilkins 30affa57c7 HpackDecoder implements 413 limit 2014-06-18 11:11:23 +02:00
Greg Wilkins 140e7ed0c5 encoder headers as lowercase 2014-06-18 10:22:23 +02:00
Greg Wilkins e115dee62f improved static encoding strategy 2014-06-17 19:54:21 +02:00
Greg Wilkins 7fa4f1e9f8 cleaned up authority handling 2014-06-17 19:40:09 +02:00
Greg Wilkins 4c2a3dfbe6 better hpack debug 2014-06-17 11:04:10 +02:00
Greg Wilkins 25295456ae renamed HTTP/2.0 to HTTP/2 2014-06-17 00:12:57 +02:00
Greg Wilkins 272e1d8da5 Refactored HttpChannel to not have direct HttpParser dependency 2014-06-17 00:02:50 +02:00
Greg Wilkins 116d654426 cleaned up debug 2014-06-12 15:08:46 +02:00
Greg Wilkins 1666f54b50 revert httpfields 2014-06-11 17:41:52 +02:00
Greg Wilkins f258ff1565 improved debug 2014-06-11 17:05:39 +02:00
Greg Wilkins c319c19125 convert MetaData to HttpField as a list 2014-06-11 16:53:17 +02:00
Greg Wilkins bbd61f8e19 Multiple mixed in changes and improvements
Simplified HttpParser as per rfc7230
implemented local/remote hpack max table sizes
2014-06-11 15:16:40 +02:00
Greg Wilkins 70223cbda9 add status 200 and method GET to ref set 2014-06-11 10:23:29 +02:00
Simone Bordet 630bee5887 Implemented HTTP2 connection preface. 2014-06-10 18:33:13 +02:00
Greg Wilkins c8184077c7 added logging to hpack 2014-06-10 15:26:54 +02:00
Greg Wilkins 073ad924b0 improve value handling on known literal fields 2014-06-10 14:05:41 +02:00
Greg Wilkins b55dba82a5 use scheme cache 2014-06-10 13:13:38 +02:00
Greg Wilkins 19c4939ede flip encode buffer 2014-06-10 13:05:28 +02:00
Greg Wilkins ab5461d73e fixed hpack literal encoding bug 2014-06-10 12:56:20 +02:00
Greg Wilkins 3c321e9b8f split authority field and hold results in header table 2014-06-09 15:34:09 +02:00
Simone Bordet c1247ff677 Reorganized HTTP2 modules. 2014-06-09 14:01:16 +02:00