* Fixing links in Event Hubs README.md
Came across these links pointing to material for the Go libraries and updated them to the C++ materials.
* Updating links for event hubs checkpoint library
* Updated tests to support -UserAuth test resources switch to enable non-corpnet access.
* Try setting sample environment variables in sample script pipeline
# Significant rewrite of Eventhubs stress test.
## Cleaned up implementation of EventHubs stress/reliability test
* Reworked stress test layout to isolate stress test implementation from stress deployment elements.
* Added ability of stress test scenarios to be independently configured.
* Rewrote stress test app to be closer to the Go equivalent app.
* added apparg.hpp for command line parsing
* added scope_guard to test for scope_guard implementation.
## Added close methods to Consumer client and Producer client.
They don't do much currently, but will eventually.
## AI Generated summary of pull request
This pull request primarily focuses on the `azure-core-amqp` and `azure-messaging-eventhubs` packages, introducing changes to improve code efficiency and maintainability. The most significant changes include the removal of unnecessary `#include` directives in various files in the `azure-core-amqp` package, the addition of `Close` methods in `consumer_client.hpp` and `producer_client.hpp` in the `azure-messaging-eventhubs` package, and modifications to the `cgmanifest.json` files in the `azure-messaging-eventhubs-checkpointstore-blob` and `azure-messaging-eventhubs` directories.
Removal of unnecessary `#include` directives:
* [`sdk/core/azure-core-amqp/src/amqp/claim_based_security.cpp`](diffhunk://#diff-5acd7049cef5955540cc4253f264207e5a7d2701612e148c736ca5781e69d224L12-L14): Removed unnecessary `#include` directives for `iostream` and `sstream`.
* [`sdk/core/azure-core-amqp/src/amqp/connection.cpp`](diffhunk://#diff-fc3a6e5b11f1254c4fd344bcd1846c83ad4ca8e2a8a23b7db0657c2846f43937L18): Removed unnecessary `#include` directive for `azure/core/url.hpp`.
* [`sdk/core/azure-core-amqp/src/amqp/connection_string_credential.cpp`](diffhunk://#diff-14cf130dc5f0b51f698cca57724b733591d48fad0e5beb4745fc1cd78cbdaa72L7-L20): Removed unnecessary `#include` directives for `azure/core/amqp/internal/models/amqp_protocol.hpp`, `azure_c_shared_utility/azure_base64.h`, `azure_c_shared_utility/buffer_.h`, and `iostream`.
* [`sdk/core/azure-core-amqp/src/amqp/link.cpp`](diffhunk://#diff-249643f29ca2c0b1226e9d22ce90be83c77105f55221a1092fb605a5c7ead356L10-L21): Removed unnecessary `#include` directives for `azure/core/amqp/internal/message_receiver.hpp`, `azure/core/amqp/internal/message_sender.hpp`, `azure/core/amqp/internal/models/messaging_values.hpp`, and `azure_uamqp_c/amqp_definitions_sequence_no.h`.
* [`sdk/core/azure-core-amqp/src/amqp/management.cpp`](diffhunk://#diff-b03544340ff264961e045648c2c274dde9fa7ceb33b07b0c41a708128e28d40fL6-L16): Removed unnecessary `#include` directives for `azure/core/amqp/internal/connection.hpp`, `azure/core/amqp/internal/session.hpp`, and `azure_uamqp_c/amqp_management.h`.
Addition of `Close` methods:
* [`sdk/eventhubs/azure-messaging-eventhubs/inc/azure/messaging/eventhubs/consumer_client.hpp`](diffhunk://#diff-fad00d7bec0f12ef5e7d36387e866ab5291c6f5f57568845dfabe3f23320c899R152-R159): Added a `Close` method to the `ConsumerClient` class.
* [`sdk/eventhubs/azure-messaging-eventhubs/inc/azure/messaging/eventhubs/producer_client.hpp`](diffhunk://#diff-cba1fbd1d786b763c27123a2284476e1cc8093753abe6e3a6af9ca78aae4d594R96-R113): Added a `Close` method to the `ProducerClient` class.
Modification of `cgmanifest.json` files:
* [`sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/cgmanifest.json`](diffhunk://#diff-465b096c14ed240a8f14180f16e0924e3df69bd1c95934dca435c0b3c97468a0R1-R37): Added a new `cgmanifest.json` file specifying development dependencies.
* [`sdk/eventhubs/azure-messaging-eventhubs/cgmanifest.json`](diffhunk://#diff-f3e86a1f7be148625ac80b2151504461f3faff4d0564db588c6df9d0d9eb0986R1-R48): Added a new `cgmanifest.json` file specifying development dependencies.
*
---------
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
* Enabled multithreaded calls to eventhubs management APIs
* Added partition client properties tests, removed unused variables in consumer client tests
* Restructured properties APIs in eventhubs to simplify producer client and consumer client implementations
* Fixed test crash in LinkAttachDetach AMQP test
* Added test cases for management authn failures
* Don't emit body contents in AmqpMessage insertion operator
* Don't take numeric value parameters by value to ostream insertion operators
* Updated eventhubs dependency to match reality
* Added value based tests for enumeration stream inserters
* Implemented connection handle table to fix half closed session problem
* Correctly handle session begin after connection is open
* Split out amqp settle mode to separate header; added test coverage for AMQP Transfer and Detach performatives
* Use absolute path for settle mode header
* Fix spelling errors
* Exclusion list
* More updates for the exclusion list
* Even more updates for the exclusion list
* And even more updates for the exclusion list
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Move Azure::Core::_internal::UniqueHandleHelper to _detail
* Linux build fix
* More Linux fixes and clang-format
* Get back the @cond
* Revert one more @cond removal
* Linux fix: include necessary header
* Undo unnecessary clang-format
* Clang-format, again
* Trigger CI
* Trigger CI
* amqps, amqpvalue
* Update cspell.json
* Update curl.cpp
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Remove some usages of internal APIs in samples
* std::cerr => std::cout
* Two errors would actually go to stderr
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Make vcpkg.json comment multiline
* Update core-opentelemetry tests to be able to compile with opentelemetry-cpp version 1.12.0
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Return pointer to message rather than message; cleaned up API surface to remove uAMQP details
* ASAN configuration via CMAKE preset, not environment variable
* clang-tidy fixes
* Add link pollable; Fixed several memory leaks
* Rule of 5 fixes for AMQP and EventHubs types; moved message handle type to _detail namespace.
* Update sdk/core/azure-core-amqp/CHANGELOG.md
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Add a note to vcpkg manifest files that all changes made in the vcpkg repo alone might be lost.
* may => will
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Moved internal AMQP types to internal header directory
* Updated consumers of AMQP headers to match moved headers
* Updated changelog to reflect breaking change in AMQP
* Made includes explicit in event_data.hpp
* Reference non-package headers with angle braces not quotes
* Small cleanup around AMQP dependencies
* Update cfgmanifest.json to remove uamqp, and add umock, csharedutil, and macro-utils-c
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Prefix interal macros with _azure_ to 'remove' them from the public area
* PR feedback
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Increment package version after release of azure-messaging-eventhubs
* Increment package version after release of azure-messaging-eventhubs-checkpointstore-blob
* Added eventhubs test collateral to create and destroy eventhubs namespaces and eventhubs; Added peek message functionality to AMQP
* Use HTTP to talk to management APIs instead of az cli
There are two significant parts to this fix. The first is that the Connection object now has a method EnableAsyncOperation which registers the connection with a background thread which polls the connection. The EnableAsyncOperation needs to be callable from outside the connection because in normal client operation, the calls to open the connection are all internal to uAMQP. That means that the message sender and receiver need to call it when they're opened (and closed).
The other major part of this change is that the AsyncOperationQueue now has a WaitForRequest API which does not normally poll (there is a test hook which enables polling but that is not normally used in most scenarios).
The other part of this change fixes some concurrency issues associated with the Log::Stream functionality.
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Update sdk/core/azure-core/src/logger.cpp
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Update sdk/core/azure-core/test/ut/CMakeLists.txt
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Update sdk/core/azure-core/test/ut/logging_test.cpp
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Added ASAN as an option, converted transports to be bases to ensure consistancy
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Added link credit support to message sender and receiver; reworked message receiver creation to move to the partition client object
* Added round trip test, including filters; fixed a hang with the consumer client caused by no messages; fixed checkpoint store storage names.
* EventDataBatch is created from EventProducer. Fixes#4868
* SendEventDataBatch renamed to Send; pass in Context on methods which require a context
* Added producer client send APIs without requiring an explicit event data batch
* close message receiver in destructor if it is open
* Consumer client and producer client only create message sender and receiver when needed