Commit Graph

305 Commits

Author SHA1 Message Date
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
Olivier Lamy 9b7afd8a03
Happy new year!! (#3232)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 11:52:16 +10:00
Greg Wilkins 59dffebd1c
Revert backport of HttpClient executor bean handling. (#3088)
Revert to the not-so-good bean handling for the HttpClient executor
Added TODOs so that the bean handling can be updated in future.
Deprecated Websocket client setters that hide dependency on internal HttpClient instance.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-11 16:07:41 +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
Joakim Erdfelt ce6bc23ccb Issue #2817 - Client SSL Defaults
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-08-16 14:35:39 -05: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 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
Simone Bordet d846414c66 Issue #2625 - Test failure: websocket.client/ClientCloseTest.testStopLifecycle.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-06-05 20:09:31 +02:00
Simone Bordet 7a7aa0f1b1 Fixes #2536 - Broken ClientConnectTest.testConnectionTimeout_Concurrent.
Using try-with-resources to keep the Socket instance
from being GCd before the test finishes.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-16 14:48:05 +02:00
Simone Bordet 804b770581 Issue #2536 - Broken ClientConnectTest.testConnectionTimeout_Concurrent.
Updated the code to show more information when it fails.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-16 14:25:14 +02:00
Joakim Erdfelt 93b6877d72 Issue #2210 - fixing flaw in safety checks with JSR356 ClientContainer 2018-03-14 16:18:19 -05:00
Joakim Erdfelt 9322956512 Issue #2210 - adding httpclient safety checks.
+ ISE on non started HttpClient
+ ISE on use of wss:// URI with HttpClient without an SSL config
2018-03-14 10:28:56 -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 dd57cf0bf6 Issue #2282 - Simplifying BlockheadClient to drastically reduce CPU load during testing 2018-03-06 21:01:39 -06: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 6fa855e856 Fixes #2234 - Making assertion on reason phrase more resilient to race condition for Abnormal closure. 2018-02-26 13:26:03 -06: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
olivier lamy 1a49a6fb7e more javadoc fixes #2056
Signed-off-by: olivier lamy <olamy@webtide.com>
2018-01-08 12:28:12 +11:00
Greg Wilkins 41050cd8a4
Issue #2081 No idle timeout exception when dispatch is delayed (#2083)
Issue #2081 No idle timeout exception when dispatch is delayed
* Delegate the readtimeout handling to HttpChannel so that a delayed dispatch can be ended.
* Added unit test for delayed dispatch idle
* Now using HttpInput.onIdleTimeout() to fail the HttpInput, and then dispatching the request in case it has not been dispatched yet. This ensure consistent behavior independently of the value of HttpConfiguration.delayDispatchUntilContent.
* Fixed for both HTTP/1.1 and HTTP/2.
* Added tests for non-blocking reads.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-01-04 13:26:31 +01:00
Joakim Erdfelt 28d2f30769 Fixing compilation error 2017-09-06 10:24:47 -07:00
Joakim Erdfelt acc7c97969 Removing @Rule LeakTrackingBufferPoolRule - bad threading behavior / false positives 2017-09-06 10:16:32 -07:00
Lucas Fairchild-Madar b24c4e1a8a further match coding style 2017-08-25 12:36:48 -07:00
Lucas Fairchild-Madar 84ff1e3a66 Matching coding style; block potential race condition
Signed-off-by: Lucas Fairchild-Madar <lfairchildmadar@flightstats.com>
2017-08-25 12:35:45 -07:00
Lucas Fairchild-Madar 7d1d7a9724 Preserve delayed initialization semantics
Signed-off-by: Lucas Fairchild-Madar <lfairchildmadar@flightstats.com>
2017-08-25 12:33:41 -07:00
Lucas Fairchild-Madar b680d1deea Allow for configuring WebSocketClient JVM lifecycle
Signed-off-by: Lucas Fairchild-Madar <lfairchildmadar@flightstats.com>
2017-08-25 11:23:08 -07:00
Joakim Erdfelt 9f28d26cff Fixed #1766 - Fixing test case results 2017-08-23 15:58:22 -07:00
Joakim Erdfelt 796da084b4 Issue #1625 - Support new IANA declared websocket close status codes 2017-08-08 08:49:58 -07:00
Joakim Erdfelt e3bab3df22 Issue #1528 - Use WebSocketContainer out of current context
+ Interrogate ServletContext, ContextHandler, and Context
  for an active ServerContainer before returning a new ClientContainer
2017-05-19 13:50:40 -07:00
Joakim Erdfelt e001fe0355 Issue #1528 - pull preconfigured HttpClient from attributes
+ Search ServletContext attributes first
+ Search Server attributes next
2017-05-19 08:27:53 -07:00
Joakim Erdfelt 75101dfa0c Issue #1528 - WebSocketClient can use jetty-websocket-httpclient.xml
+ Will use XML resource (if jetty-xml is present, and resource found)
  to load the HttpClient configuration that should be used by the
  new WebSocketClient() instance.
2017-05-18 15:06:22 -07:00
Joakim Erdfelt c75e3c19d9 Issue #1516 - making WebSocket started thread pools have identifying names 2017-05-11 09:52:02 -07:00
Joakim Erdfelt a7b164e6b9 Fixing JSR356 Client tests 2017-05-10 07:46:56 -07:00
Joakim Erdfelt 753ed9e603 Issue #1516 - Delay starting of WebSocketClient 2017-05-09 12:58:22 -07:00
Greg Wilkins 23a9c6c1be Issue #1463 2017-04-12 14:54:18 +10:00
Joakim Erdfelt 01d539e2be Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-09 14:20:19 -07:00
Joakim Erdfelt 1eeac2af6b Fixing test 2017-03-09 14:17:05 -07:00
Greg Wilkins 64c2529fb9 fixed merge 2017-03-06 15:00:14 +11:00
Greg Wilkins 0a2da4822d Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-06 14:20:23 +11:00
Joakim Erdfelt 11b6e8ab49 Issue #609 - fixing testcase 2017-03-01 09:57:23 -07:00
Simone Bordet 0c8273f2ca Happy New Year 2017. 2017-01-19 19:26:41 +01:00
Simone Bordet 07838b057f Happy New Year 2017. 2017-01-19 18:54:03 +01:00