-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dependency com.github.tomakehurst:wiremock-jre8 to v2.35.0 #8027
base: 3.7.x
Are you sure you want to change the base?
Conversation
4d007e6
to
8c9eea5
Compare
SonarCloud Quality Gate failed. |
8c9eea5
to
95ca82a
Compare
95ca82a
to
919d401
Compare
919d401
to
32aca0b
Compare
SonarCloud Quality Gate failed. 3 Bugs |
32aca0b
to
414900f
Compare
414900f
to
ca71c65
Compare
ca71c65
to
df2c414
Compare
df2c414
to
c42dcfd
Compare
❌ GraalVM CE CI 17 dev failed: https://ge.micronaut.io/s/niy3gmavh5kq6 |
❌ Java CI failed: https://ge.micronaut.io/s/h4jv7u4it5txk |
c42dcfd
to
36760e6
Compare
69c4c9d
to
9382983
Compare
9382983
to
55207c8
Compare
SonarCloud Quality Gate failed. 9 Bugs |
This PR replaces the filter processing logic with a central `FilterRunner` class, and adds support for annotation-based filter methods (similar to controllers). Changes: - Replace most uses of `HttpFilter` with a new sealed `GenericHttpFilter` interface. `GenericHttpFilter`s are opaque, they are only processed by the `FilterRunner`. A `GenericHttpFilter` can be a legacy filter, a new annotation-based filter method, or one of a few special internal types. - Implement new annotation-based filter parsing in static methods in `FilterRunner`. It scans & validates filter arguments, assigns binders, validates the return value, etc, and finally stuffs the filter metadata into a record that extends `GenericHttpFilter`. This code is also used by a processor that validates filter methods at compile time. - Implement new filter logic in `FilterRunner`. The filter runner has a coroutine-inspired approach and tries to process filters sequentially, avoiding deep reactive call stacks. Reactive code is avoided altogether where possible.
#9128) This PR replaces the HttpStreamsServerHandler, HandlerPublisher, HttpRequestDecoder and HttpResponseDecoder by a new PipeliningServerHandler. PipeliningServerHandler directly receives netty HttpMessages, combines them into a FullHttpRequest or StreamedHttpRequest, and passes them on to a handler. It also takes care of pipelining, so that the responses for different requests are sent in the same order those requests came in, which fixes some old bugs in RoutingInboundHandler. PipeliningServerHandler optimizes the read and write operations. Concurrent reads are handled safely, removing the need for the FlowControlHandler even in the streaming case. Flushes are delayed until readComplete, so that multiple requests in the same TCP packet can be responded to in a single TCP packet as well. The biggest performance win comes from message aggregation, however. While PipeliningServerHandler can handle a FullHttpRequest from FULL_CONTENT, it can also do some basic aggregation on its own. Small requests commonly have the HttpRequest and HttpContent come in in the same read call. PipeliningServerHandler will "hold back" the HttpRequest until readComplete to merge it with the HttpContent if available, into a FullHttpRequest. This gives a performance benefit downstream, it's actually ~600ns faster in FullHttpStackBenchmark by default than 4.0.x with FULL_CONTENT. The big advantage over FULL_CONTENT is that this aggregation is always enabled and is not a compatibility issue. Large requests will still safely fall back to StreamedHttpRequest. FULL_CONTENT is still useful for customizers that want to observe the full HTTP message, however, and may give some perf benefit for medium-sized request bodies. The reason this PR is so big is that now, many small requests are processed using the FullHttpRequest APIs. There are many subtle differences in this code path. For example, form items are parsed immediately and then passed to FormRouteCompleter, where previously parsing and processing would be interleaved (the reactive code path). This exposed some bugs because it moves some `if (refCnt > 0) release` calls to before the processing.
This fails in 4.0.0 as the response is OK
Merge 3.9.x, fix TCK test and document breakage
* Use StringIntMap for propertyIndexOf This patch replaces the propertyIndexOf method generated for each introspection with an optimized String->int map. For cases where propertyIndexOf may be called for many different types, this avoids a megamorphic call site (benchmark about 5x as fast). On the other hand, for cases where propertyIndexOf is only called with one or two different introspections at the same call site, this is slightly slower (benchmark about 0.65x as fast). imo this tradeoff is acceptable, because the speedup for megamorphic case far exceeds the slowdown for the monomorphic case. Monomorphic call sites should also be less "hot" in practical code, so performance of propertyIndexOf matters less. Finally, the absolute performance difference is quite small for the monomorphic case, in the benchmark it's 70ns so roughly 1.5ns per item, while for the megamorphic case it's roughly 30ns per item. Benchmark results, before this change: Benchmark (itemCount) (typeCount) Mode Cnt Score Error Units PropertyIndexBenchmark.test 50 1 avgt 5 115.205 ± 1.016 ns/op PropertyIndexBenchmark.test 50 2 avgt 5 118.745 ± 0.106 ns/op PropertyIndexBenchmark.test 50 3 avgt 5 832.091 ± 8.271 ns/op After this change: Benchmark (itemCount) (typeCount) Mode Cnt Score Error Units PropertyIndexBenchmark.test 50 1 avgt 5 183.315 ± 0.435 ns/op PropertyIndexBenchmark.test 50 2 avgt 5 162.453 ± 0.881 ns/op PropertyIndexBenchmark.test 50 3 avgt 5 162.690 ± 1.004 ns/op * Use array instead of list --------- Co-authored-by: Denis Stepanov <[email protected]>
We had to disable Predictive Test Selection and Test Distribution for Kotest tests as Kotest was unsupported. As of micronaut-test-4.0.0-M2, we use a supported version of Kotest 5, so this pr reverses #8612 To re-enable these Gradle features
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4573757
to
07055d9
Compare
SonarCloud Quality Gate failed. 14 Bugs |
|
This PR contains the following updates:
2.33.2
->2.35.0
Release Notes
wiremock/wiremock
v2.35.0
Compare Source
Enhancements
Fixes
v2.34.0
Compare Source
This will be the final 2.x.x release and also the last to support Java 8.
Fixes
Enhancements
All dependencies brought up to date including Jetty to 9.4.48.v20220622.
Configuration
📅 Schedule: Branch creation - "every weekend" in timezone Europe/Prague, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.