smallrye-reactive-messaging icon indicating copy to clipboard operation
smallrye-reactive-messaging copied to clipboard

Mutiny 2.0 with Flow support

Open ozangunalp opened this issue 2 years ago • 12 comments

Mutiny 2.0.0 is based on java.util.concurrent.Flow interfaces instead of Reactive Streams APIs. This change bumps mutiny to 2.0.0 along with supporting Flow interfaces on method and channel types.

  • [x] Needs more tests for support of Flow interfaces
  • [x] Replace usages of via(Processor) with an alternative
  • [ ] Bump to Mutiny 2.0.0 final

ozangunalp avatar Sep 16 '22 13:09 ozangunalp

Codecov Report

Merging #1896 (ed3446d) into main (928a739) will decrease coverage by 19.94%. The diff coverage is 74.40%.

:exclamation: Current head ed3446d differs from pull request most recent head d18181d. Consider uploading reports for the commit d18181d to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@              Coverage Diff              @@
##               main    #1896       +/-   ##
=============================================
- Coverage     77.02%   57.08%   -19.94%     
+ Complexity     3462     2667      -795     
=============================================
  Files           288      288               
  Lines         11680    11767       +87     
  Branches       1493     1510       +17     
=============================================
- Hits           8996     6717     -2279     
- Misses         1986     4598     +2612     
+ Partials        698      452      -246     
Impacted Files Coverage Δ
...lrye/reactive/messaging/MediatorConfiguration.java 0.00% <ø> (ø)
...mallrye/reactive/messaging/amqp/AmqpConnector.java 0.00% <0.00%> (-82.56%) :arrow_down:
...reactive/messaging/amqp/AmqpCreditBasedSender.java 0.00% <ø> (-75.00%) :arrow_down:
...reactive/messaging/gcp/pubsub/PubSubConnector.java 0.00% <0.00%> (-41.56%) :arrow_down:
...e/reactive/messaging/memory/InMemoryConnector.java 0.00% <0.00%> (-87.96%) :arrow_down:
...llrye/reactive/messaging/kafka/KafkaConnector.java 88.54% <ø> (ø)
...ging/kafka/impl/KafkaRecordStreamSubscription.java 81.10% <ø> (+0.78%) :arrow_up:
...ive/messaging/kafka/impl/KafkaSenderProcessor.java 75.47% <ø> (ø)
...llrye/reactive/messaging/kafka/impl/KafkaSink.java 92.81% <ø> (ø)
...mallrye/reactive/messaging/mqtt/MqttConnector.java 0.00% <0.00%> (-100.00%) :arrow_down:
... and 110 more

codecov-commenter avatar Sep 16 '22 15:09 codecov-commenter

@jponge @cescoffier please take a look at this, I think it is ready to go.

ozangunalp avatar Sep 27 '22 07:09 ozangunalp

Fantastic @ozangunalp. Looking at the code it looks ok, I'm going to run some local tests.

jponge avatar Sep 27 '22 08:09 jponge

I ran a few tests with this branch and the drafts from https://github.com/jponge/quarkus/tree/scratchpad/rs-publisher-to-flow, and it seems to work great.

First time with a flow-ified Quarkus that compiles and seems to pass common extensions tests 🎉

jponge avatar Sep 28 '22 08:09 jponge

What's next folks?

I eventually need a -milestone1 release of RM so I can align milestones across projects and draft a proper Quarkus PR to run checks (and eventually plan final releases up to Quarkus).

jponge avatar Sep 30 '22 08:09 jponge

I can release an RC today on top of this branch.

ozangunalp avatar Sep 30 '22 09:09 ozangunalp

It's a breaking change BTW, so you might need to branch a maintenance branch (we did this for Mutiny / Vert.x bindings, etc)

jponge avatar Sep 30 '22 09:09 jponge

Yes, this might be considered a major breaking change, even though we still support the same signatures.

I am thinking more about how to manage this with jakarta release, which will be 4.0.0. Should this release be 5.0.0 when merged ? wdyt @cescoffier ?

ozangunalp avatar Sep 30 '22 09:09 ozangunalp

Yes, it should be 5.0.

cescoffier avatar Sep 30 '22 18:09 cescoffier

4.0?

On Fri, Sep 30, 2022 at 8:06 PM Clement Escoffier @.***> wrote:

Yes, it should be 5.0.

— Reply to this email directly, view it on GitHub https://github.com/smallrye/smallrye-reactive-messaging/pull/1896#issuecomment-1263868453, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAGK2OKJVT7MZTDEVEU743WA4T3HANCNFSM6AAAAAAQOKMHQY . You are receiving this because you were mentioned.Message ID: @.***>

jponge avatar Oct 01 '22 07:10 jponge

We've been using 4 for Jakarta and will release a final next week for Wildly.

ozangunalp avatar Oct 01 '22 10:10 ozangunalp

I think the next step is to have a -milestone1 for the next major release, so we can start to align milestones and open a draft PR for CI in Quarkus. We might spot other issues there.

jponge avatar Oct 11 '22 08:10 jponge

Rebased to 635990c3a34e723b9f189c8a06f8a1e4ba21d108

ozangunalp avatar Nov 02 '22 17:11 ozangunalp

I did a run yesterday in Quarkus CI land of our various milestones / release candidates. We can go ahead and make progress, no issue on the Quarkus code base itself 👍

jponge avatar Nov 03 '22 18:11 jponge

Rebased to fea0a41a0c686fcc596fd16d96cd1331425ad4e1 – 3.22.0 release

ozangunalp avatar Nov 10 '22 15:11 ozangunalp

Rebased to 853cb811d80751df464efb704519ad0f65bcaf8e @jponge

ozangunalp avatar Nov 29 '22 10:11 ozangunalp

Great!

jponge avatar Nov 29 '22 10:11 jponge

@cescoffier ready to merge this!

ozangunalp avatar Feb 06 '23 16:02 ozangunalp

@ozangunalp there is a conflict :-D

But yes, let's merge it.

cescoffier avatar Feb 06 '23 16:02 cescoffier

🥳

On Mon, Feb 6, 2023 at 5:13 PM Clement Escoffier @.***> wrote:

@ozangunalp https://github.com/ozangunalp there is a conflict :-D

But yes, let's merge it.

— Reply to this email directly, view it on GitHub https://github.com/smallrye/smallrye-reactive-messaging/pull/1896#issuecomment-1419342589, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAGK2M3TWOUMIONGKUEEHLWWEPJNANCNFSM6AAAAAAQOKMHQY . You are receiving this because you were mentioned.Message ID: @.***>

jponge avatar Feb 06 '23 16:02 jponge

:D ok after the rebase

ozangunalp avatar Feb 06 '23 16:02 ozangunalp