Skip to content

Merge buffered producer into release/azure-messaging-eventhubs#30224

Merged
conniey merged 5 commits intorelease/azure-messaging-eventhubs_5.13.0-beta.1from
conniey/feature/buffered-producer
Aug 1, 2022
Merged

Merge buffered producer into release/azure-messaging-eventhubs#30224
conniey merged 5 commits intorelease/azure-messaging-eventhubs_5.13.0-beta.1from
conniey/feature/buffered-producer

Conversation

@conniey
Copy link
Member

@conniey conniey commented Aug 1, 2022

Description

Merge BufferedProducer feature into release/azure-messaging-eventhubs beta branch.

All SDK Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

conniey and others added 4 commits August 1, 2022 03:48
* Adding skeleton classes.

* Adding documentation to buffered producer models.

* Adding minor implementation for Event HubBufferedProducerClientBuilder.

* Adding some documentation to Event Hub Buffered Producer Client Builder.

* Adding suppression for PagedFlux
* Adding implementation of PartitionResolver

* Adding tests for PartitionResolver.

* Using unsigned right shift operator.

* Adding concurrent test cases.

* Add CHANGELOG
* Updating property name to getMaxEventBufferLengthPerPartition

* Adds an aggregator that publishes events based on full batches and time.

* Adding implementation for publishing events for a partition.

* Adding license info.

* Adding inline mock maker for final classes.

* Fixing recursive subscription.

* Do not get additional batches if the current instance is completed.

* Rename to EventHubBufferedPartitionProducer

* Applying retryWhen policy to Aggregator.

* Remove unused EventData field

* Adding documentation to mock helper.

* Hack around the blocking call.

* Adding tests for EventHubBufferedPartitionProducerTest

* Populating PartitionProcessors for each partition id.

* Creating private static class to hold PublishResults from buffered producer.

* Adding tests to ensure upstream requests are respected.

* Add suppression for fallthrough

* Use --no-cone in pipeline sparse checkout script (#29905)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Adding comments for cases meant to fallthrough

* Wrap synchronous lock.

* Adding documentation to EventDataAggregatora

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Adds flush to PartitionProcessor.

* Adds implementation to methods for async client.

* Fixes build breaks.

* Remove idempotent retries for next release.

* Connect asynchronous client.

* Closing producer client after test case.

* Make default retry options package-private.

* Adding integration test for BufferedProducerAsyncClient.

* Adding partition id to EventDataAggregator

* Adding defaults to builder and documentation.

* Remove localizedBy usages.

* Fixing switchMap logic.

* Have PartitionProducer throw an UncheckedInterruptedException when a batch creation occurs while the thread is interrrupted.

* Update PublishResultSubscriber to clear remaining queue items when closed.

* Delay computation of EventDataAggregator to prevent multiple instances being created.

* Adding support for flush().

* Add emitResult constant.

* Complete EventDataAggregator when it is cancelled.

* Implement flush and clean up logging.

* Add implementation for sync-client.

* Making non-implemented methods package-private.

* Add changelog entry.
@conniey
Copy link
Member Author

conniey commented Aug 1, 2022

/azp run java - eventhubs

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@azure-sdk
Copy link
Collaborator

API change check

APIView has identified API level changes in this PR and created following API reviews.

azure-messaging-eventhubs

@conniey conniey merged commit 1f7b47c into release/azure-messaging-eventhubs_5.13.0-beta.1 Aug 1, 2022
@conniey conniey deleted the conniey/feature/buffered-producer branch August 1, 2022 21:28
conniey added a commit to conniey/azure-sdk-for-java that referenced this pull request Sep 29, 2022
…#30224)

* Adding initial Buffered Producer APIs with documentation. (Azure#29525)

* Adding skeleton classes.

* Adding documentation to buffered producer models.

* Adding minor implementation for Event HubBufferedProducerClientBuilder.

* Adding some documentation to Event Hub Buffered Producer Client Builder.

* Adding suppression for PagedFlux

* Adds hashing algorithm for buffered producer (Azure#30012)

* Adding implementation of PartitionResolver

* Adding tests for PartitionResolver.

* Using unsigned right shift operator.

* Adding concurrent test cases.

* Add CHANGELOG

* Adding internal classes to support buffered producer. (Azure#30078)

* Updating property name to getMaxEventBufferLengthPerPartition

* Adds an aggregator that publishes events based on full batches and time.

* Adding implementation for publishing events for a partition.

* Adding license info.

* Adding inline mock maker for final classes.

* Fixing recursive subscription.

* Do not get additional batches if the current instance is completed.

* Rename to EventHubBufferedPartitionProducer

* Applying retryWhen policy to Aggregator.

* Remove unused EventData field

* Adding documentation to mock helper.

* Hack around the blocking call.

* Adding tests for EventHubBufferedPartitionProducerTest

* Populating PartitionProcessors for each partition id.

* Creating private static class to hold PublishResults from buffered producer.

* Adding tests to ensure upstream requests are respected.

* Add suppression for fallthrough

* Use --no-cone in pipeline sparse checkout script (Azure#29905)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Adding comments for cases meant to fallthrough

* Wrap synchronous lock.

* Adding documentation to EventDataAggregatora

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Connecting EventHubBufferedProducerClient to internal classes. (Azure#30194)

* Adds flush to PartitionProcessor.

* Adds implementation to methods for async client.

* Fixes build breaks.

* Remove idempotent retries for next release.

* Connect asynchronous client.

* Closing producer client after test case.

* Make default retry options package-private.

* Adding integration test for BufferedProducerAsyncClient.

* Adding partition id to EventDataAggregator

* Adding defaults to builder and documentation.

* Remove localizedBy usages.

* Fixing switchMap logic.

* Have PartitionProducer throw an UncheckedInterruptedException when a batch creation occurs while the thread is interrrupted.

* Update PublishResultSubscriber to clear remaining queue items when closed.

* Delay computation of EventDataAggregator to prevent multiple instances being created.

* Adding support for flush().

* Add emitResult constant.

* Complete EventDataAggregator when it is cancelled.

* Implement flush and clean up logging.

* Add implementation for sync-client.

* Making non-implemented methods package-private.

* Add changelog entry.

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
conniey added a commit that referenced this pull request Sep 30, 2022
* Remerge "Using new windowTimeout operator with backpressure support" (#30111)

* Using new windowTimeout operator with backpressure support

* Using Flux.class directly for windowTimeout lookup, using azure core libs defined to use v4.3.19 reactor-core

* Improving reflection logic and moving it to ReactorShim

* Replace inline reflection with ReactorShim

* Adding ReactorShim test for backpressure aware windowTimeout.

* Changelog update for ReactorShim

* Using ConcurrentLinkedQueue to avoid ConcurrentModificationException while iterating array.

Co-authored-by: Anu Thomas Chandy <anuamd@hotmail.com>

* Merge buffered producer into release/azure-messaging-eventhubs (#30224)

* Adding initial Buffered Producer APIs with documentation. (#29525)

* Adding skeleton classes.

* Adding documentation to buffered producer models.

* Adding minor implementation for Event HubBufferedProducerClientBuilder.

* Adding some documentation to Event Hub Buffered Producer Client Builder.

* Adding suppression for PagedFlux

* Adds hashing algorithm for buffered producer (#30012)

* Adding implementation of PartitionResolver

* Adding tests for PartitionResolver.

* Using unsigned right shift operator.

* Adding concurrent test cases.

* Add CHANGELOG

* Adding internal classes to support buffered producer. (#30078)

* Updating property name to getMaxEventBufferLengthPerPartition

* Adds an aggregator that publishes events based on full batches and time.

* Adding implementation for publishing events for a partition.

* Adding license info.

* Adding inline mock maker for final classes.

* Fixing recursive subscription.

* Do not get additional batches if the current instance is completed.

* Rename to EventHubBufferedPartitionProducer

* Applying retryWhen policy to Aggregator.

* Remove unused EventData field

* Adding documentation to mock helper.

* Hack around the blocking call.

* Adding tests for EventHubBufferedPartitionProducerTest

* Populating PartitionProcessors for each partition id.

* Creating private static class to hold PublishResults from buffered producer.

* Adding tests to ensure upstream requests are respected.

* Add suppression for fallthrough

* Use --no-cone in pipeline sparse checkout script (#29905)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Adding comments for cases meant to fallthrough

* Wrap synchronous lock.

* Adding documentation to EventDataAggregatora

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Connecting EventHubBufferedProducerClient to internal classes. (#30194)

* Adds flush to PartitionProcessor.

* Adds implementation to methods for async client.

* Fixes build breaks.

* Remove idempotent retries for next release.

* Connect asynchronous client.

* Closing producer client after test case.

* Make default retry options package-private.

* Adding integration test for BufferedProducerAsyncClient.

* Adding partition id to EventDataAggregator

* Adding defaults to builder and documentation.

* Remove localizedBy usages.

* Fixing switchMap logic.

* Have PartitionProducer throw an UncheckedInterruptedException when a batch creation occurs while the thread is interrrupted.

* Update PublishResultSubscriber to clear remaining queue items when closed.

* Delay computation of EventDataAggregator to prevent multiple instances being created.

* Adding support for flush().

* Add emitResult constant.

* Complete EventDataAggregator when it is cancelled.

* Implement flush and clean up logging.

* Add implementation for sync-client.

* Making non-implemented methods package-private.

* Add changelog entry.

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>

* Update CHANGELOG.md

* Fix CHANGELOG.

Co-authored-by: Anu Thomas Chandy <anuamd@hotmail.com>
Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants