Commit Graph

431 Commits

Author SHA1 Message Date
Simone Bordet c4b2621f56
Merge pull request #3480 from eclipse/jetty-9.4.x-3464-split_sslcontextfactory
Issue #3464 - Split SslContextFactory into Client and Server
2019-04-02 12:39:37 +02:00
Lachlan Roberts 97ff7ed9c0 Issue #3106 - changes from review, adding javadoc
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-03-28 14:30:11 +11:00
Lachlan Roberts 45b2c548b0 Issue #3106 - backport WebSocket connection stats from jetty-10
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-03-28 14:30:11 +11:00
Simone Bordet 6fb243ff6c Issue #3464 - Split SslContextFactory into Client and Server
Introduced SslContextFactory subclasses Client and Server.
Replaced all usages of SslContextFactory with either Client or Server
as required.

Refactored configuration checking so that warnings are not emitted
when non necessary.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-03-21 14:42:42 +01:00
Joakim Erdfelt 76de1c0f24 Issue #3422 - WebSocket wss CLOSE_WAIT on aborted client connection
+ Adding testcase to replicate
+ Fixing CLOSE_WAIT by issuing wsclose + disconnect on eof

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-03-15 11:52:14 -05:00
Joakim Erdfelt 6444446652 Issue #3159 - Ensuring we follow permessage-deflate RSV1 rules in RFC7692
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-03-01 16:56:29 -05:00
Joakim Erdfelt 8dba440317 Issue #3279 - WebSocket Close Refactoring
+ FrameFlusher "close" frames are detected during
  enqueue and sets the state properly for failing
  other frames after it
+ Moving away from Blockhead(Client|Server) to using actual implementations
+ Moved tests to /jetty-websocket-tests/ to be able to use actual impl
  for both sides of testcase (client and server)
+ Corrected FrameFlusher terminate/close to not fail the close frame
  itself, but only frames that arrive AFTER the close frame.
+ Moving WebSocketCloseTest to jetty-websocket-tests to avoid
  using BlockheadClient / BlockheadServer in testing
+ Cleanup of unnecessary modifiers on interface
+ Logging error if @OnWebSocketError is undeclared
+ IOState removed
+ New ConnectionState tracks connection basics in a simpler
  method then IOState did.
+ No tracking of Remote close initiated (not needed)
+ IncomingFrames.incomingError() removed
+ Session delegates to Connection for all state changes
+ Errors can be communicated to application multiple times
+ Close is only communicated once

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-02-15 10:07:24 -05:00
Simone Bordet 6aa917080f Issue #3347 - Fix race condition between onFillable() and resume().
Renamed Suspender -> ReadState.
Reworked the implementation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-02-12 16:15:07 +01:00
Shawn Smith e16e836aa6 Fix race condition between onFillable() and resume()
Signed-off-by: Shawn Smith <shawn@thena.net>
2019-02-11 18:08:53 -06:00
Joakim Erdfelt 1b7ae00be3 Issue #3242 - Post-review cleanup of AbstractWebSocketConnection dump of EndPoint
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-01-11 11:27:10 -06:00
Joakim Erdfelt 478e5ac593 Issue #3242 - Post-review cleanup of WebSocket dump
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-01-11 10:16:46 -06:00
Joakim Erdfelt 689fab4979 Issue #3242 - Cleaning up WebSocket dump
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-01-08 15:47:49 -06:00
Olivier Lamy 9b7afd8a03
Happy new year!! (#3232)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 11:52:16 +10:00
Simone Bordet f814354bb5 Issue #3085 - Restore Dump methods for backwards compatibility reasons.
Restored removed methods to maintain backwards compatibility.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-09 17:47:46 +01:00
Greg Wilkins 15e1c73f9c
Cleanup the dump implementation (#2998)
* Cleanup the dump implementation
* improved the clarity of utility methods for dump and updated most dump methods
* fixed upgrade filter dump
* Improved dump after review
* Moved dumpObjects to Dumpable
* implemented dumpBeans with dumpObjects
* less verbose dump
* Dump streams
* fixed dump test

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-22 11:53:59 +11:00
Joakim Erdfelt ae169aa624 Fixing #2875 - WebSocketClient upgrade with redirect support
+ Using HttpClient fixes from #2901 to allow upgrader to be
  held for entire conversation regardless of authentication
  or redirect behaviors.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-09-12 15:57:31 -05:00
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
Kazuhiro Sera 96218e8bc4 Fix typos detected by github.com/client9/misspell
Signed-off-by: Kazuhiro Sera <seratch@gmail.com>
2018-08-10 23:52:16 +09:00
Joakim Erdfelt 9a4b780781 Issue #2767 - WebSocket Policy on JSR356 ClientContainer not represented correctly
+ Added Client unit tests for large messages
+ Re-enabled Server unit tests for large messages
+ Added more Server unit tests for large messages
+ In case of JSR356 Server with policy (and Behavior of SERVER)
  is controlling javax.websocker.server.ServerContainer
  and a user chooses to use that ServerContainer to
  connect to a remote websocket endpoint (using ServerContainer
  as a client), then the policy is delegated down to the
  Client Container with a different behavior (only).

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-08-06 15:21:22 -05:00
Joakim Erdfelt 33c497a883 Issue #2683 - FrameFlusher.toString() isn't thread safe
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-06-27 07:06:38 -05:00
Joakim Erdfelt 2e5f106285 Issue #2655 - Applying changes requested from review.
+ WebSocketClient all constructors now delegate down into one
  implementation
+ NativeWebSocketServletConfiguration is now managed properly
+ WebSocketServletFactory can find Executor as bean too

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-06-20 12:59:23 -05:00
Joakim Erdfelt 870c87f2f7 Issue #2655 - Removing closed WebSocket Session's from WebSocketClient
+ Correcting Native WebSocketConfiguration impact.
+ CDI requires a customized DecoratedObjectFactory, which is bound
  later in the lifecycle, which means we cannot rely on it being
  provided directly in the constructors, but rather have to look
  for it in the ServletContext.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-06-13 16:53:14 -05:00
Joakim Erdfelt 1269419b32 Issue #2603 - Improving ByteAccumulator max size calc
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-05-31 07:21:03 -05:00
Joakim Erdfelt 277912864f Issue #2604 - Improving ByteAccumulator testing and errors
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-05-31 07:20:16 -05:00
Joakim Erdfelt d20e19af77 Merge branch 'jetty-9.4.x' of github.com:eclipse/jetty.project into jetty-9.4.x 2018-05-02 13:38:58 -05:00
Joakim Erdfelt 57b9f2ef22 Minor typo
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-04-27 08:27:31 -05:00
Joakim Erdfelt 76dec16fde Issue #2491 - minor revert based on review 2018-04-26 16:12:29 -05:00
Joakim Erdfelt c596fcaac1 Issue #2491 - FragmentExtension produces out of order frames
+ Adding testcase to ensure no regression
+ All data frames that arrive, are now sent through the
  IteratingCallback to ensure that that input frame order
  is preserved.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-04-26 12:54:15 -05:00
Joakim Erdfelt 440d89750a Track frameCount for tests now
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-04-26 12:51:49 -05:00
Joakim Erdfelt 5d83d98e96 AbstractExtension properly handles Callback error now
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-04-26 12:51:18 -05:00
Joakim Erdfelt 9b8540aef4 OpCode.isDataFrame(byte) missing CONTINUATION
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-04-26 12:50:32 -05:00
Joakim Erdfelt 5add914942 Issue #2491 - Fragmented Messages arrive out of order.
+ Adding testcase for RemoteEndpoint
+ Adding testcase for FrameFlusher

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-04-26 11:19:19 -05:00
Olivier Lamy f36eba4577
class.newInstance is deprecated #2435 (#2437)
* Class.newInstance() is deprecated in Java 9+ #2435

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-17 19:07:20 +10:00
Joakim Erdfelt eaefc6a9c2 Merge branch 'jetty-9.4.x-2282-websocket-test-remove-eventqueue' into jetty-9.4.x 2018-03-12 12:12:02 -05:00
Joakim Erdfelt e76f6d7baf Issue #2282 - more websocket test stablization
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-03-07 17:42:02 -06:00
Joakim Erdfelt abf1262848 Issue #2282 - More work on websocket server side tests 2018-03-07 14:29:22 -06:00
Joakim Erdfelt bca53be4f4 Fixes #2282 - Fixing Fuzzer.
+ Client lifecycle now honored
+ Slow write now possible
2018-03-07 07:55:05 -06:00
Joakim Erdfelt dd57cf0bf6 Issue #2282 - Simplifying BlockheadClient to drastically reduce CPU load during testing 2018-03-06 21:01:39 -06: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
Joakim Erdfelt e4ad88aaf1 Issue #2282 - simplifying EventCapture 2018-03-06 09:18:18 -06:00
Greg Wilkins a272fb6e39
Improve executorSizedThreadPool (#2253)
Improve executorSizedThreadPool (#2253)

* Improve executorSizedThreadPool

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Improved implementation.

Implemented name, thread priorities, thread group and daemon properties.
Implemented toString(), dump() and using a thread factory.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* added threadpool benchmark;

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Renamed ExecutorSizedThreadPool to ExecutorThreadPool

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-03-06 19:07:41 +11:00
Lachlan Roberts 31347db71b changes after second review from gregw
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-06 17:21:15 +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
Joakim Erdfelt 1373025dff Issue #2282 - removing EventQueue from websocket tests 2018-03-05 17:52:23 -06: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
Joakim Erdfelt 21365234f8 Issue #2108 - Updating license headers for year 2018 2018-01-09 09:44:41 -06:00
Joakim Erdfelt 41ed9f29f4 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2018-01-09 09:37:25 -06:00
Joakim Erdfelt fa4c7b0ca9 Issue #2108 - Updating license headers for year 2018 2018-01-09 08:39:37 -06:00
Joakim Erdfelt 067fc5d2d8 Issue #2108 - Upgrade licenses for 2018 2018-01-09 07:42:06 -06:00
Greg Wilkins 88cf4603c5
Merge branch 'jetty-9.4.x' into bugfix/javadoc_fixes_2056 2018-01-08 21:31:48 +01:00