* Update vcpkg baseline
* Make code to compile with either newer or older version of opentelemetry-cpp
* Clang-format
* Suppress otel warnings in stress test code
* Update CI to update vcpkg cache if the run is PR-initiated
* Turn SSL caching off by default
* Make code to compile with either newer or older version of opentelemetry-cpp
* Clang-format
* Integrate the exact copy of #6581 - to make sure we're testing the same change with libcurl >= 8.12, and also make future merging easier
* Update cspell
* Move feature to bugfix
* Update vcpkg.yml
* Copy #6582 to verify against the latest libcurl
* Undo unnecessary changes
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Use TokenCredential *const* everywhere
* Use left const where the surrounding code also uses it
* Use left const everywhere
* Clang-format
* More clang-format
* typos
* Clang-format
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Initial attempt at a Rust AMQP stack, merged against feature/rust_amqp for now. (#5942)
* Enabled building AMQP *without* uAMQP
* Start integrating Rust AMQP Value to C++ AMQP Value
* AMQP Value tests now pass
* Moved AmqpValueType ostream inserter to its original location
* Added Rust AMQP Message implementation
* Added start of message source tests
* Enabled building AMQP *without* uAMQP
* Start integrating Rust AMQP Value to C++ AMQP Value
* Moved AmqpValueType ostream inserter to its original location
* Message target support
* Message source and target support
* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features (#5986)
* Checkpoint of connection logic
* Started implementing Rust based Connection by pulling out uAMQP artifacts
* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.
* Don't leak runtime context on calls
* Refactor AMQP logic to better isolate rust AMQP code from uAMQP code. (#6008)
* refactor uAMQP and Rust AMQP into separate implementations for ease of use
* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features (#5986)
* Checkpoint of connection logic
* Started implementing Rust based Connection by pulling out uAMQP artifacts
* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.
* Don't leak runtime context on calls
* export UUID from AMQP
* Cleaned up some more elements; reduced scope of doxygen significantly
* runtime context needs to be process global not thread global; all tests pass or fail at this point
* Merged main into branch
* Implement AMQP Session APIs in Rust. (#6033)
* Checkpoint of rust session support
* Session begin/end now works
* Session tests pass
* Removed accidental regression
* Added rust per-call context (#6043)
* Reworked runtime context to be call context
* Added context parameter to blocking AMQP calls
* Added comments around the lifetime of the RustRuntimeContext captured in the CallContext object
* uAMQP changes corresponding to Rust changes
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* sync rust SDK fixes to C++
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Enable Rust ClaimsBasedSecurity interoperability; Converted EventHubs producer client to work with Rust AMQP changes. (#6059)
* canonicalized return values; initial CBS support
* Implementation of CBS for C++
* Amqp Authentication works; Integrate Rust AMQP into Eventhubs Producer client
* Implemented Rust AMQP message sender. (#6083)
* Initial sender implementation
* PR feedback
* Management APIs work (#6096)
* Management APIs work
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Converted builders to be compliant with Rust guidelines. (#6102)
* Converted builders to be compliant with Rust guidelines.
* Bring rust changes back to C++ repo
* Improved builder developer experience
* Removed builders from AMQP layer to conform to Rust guidelines; Fixed AMQP bug in message sender tests (#6208)
* Removed builders from AMQP layer to conform to Rust guidelines; Fixed AMQP related bug in message sender tests
* Pr feedback
* Implement receiving messages; Changes to eventhubs so that all eventhubs tests pass (#6254)
* Eventhubs tests pass
* Noise reduction; explain the task which spawns a task
* Update sdk/eventhubs/azure-messaging-eventhubs/src/producer_client.cpp
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* PR feedback
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Integrate Rust 2 step message receive code to C++ (#6349)
* Integrate Rust 2 step message receive code to C++
* If receiving a delivery failed, transmit the error to the message channel if at all possible
* Enable Rust based AMQP by default (#6362)
* AMQP tests now pass; Integrate TestAmqpBroker with CI pipeline
* Updated changelogs to reflect API changes made during AMQP updates
* Replace uAMQP with Rust AMQP as the default AMQP transport; Updated build configurationj to reflect that
* Test fixes
* PR feedback; test fixes
* Fixed uninitialized variable tanking some tests (#6381)
* Fixed uninitialized variable tanking some tests
* Fixed Rust AMQP tests
* Removed connection string support from Eventhubs and EH tests. (#6391)
* Removed the ability to use connection strings from EventHubs
* Enable Rust AMQP by default!!!
* Update CMakePresets.json
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Docs links coversion: docs.microsoft.com -> learn.microsoft.com
Some markdown formatting
* Adding "msrc" to cspell words
* Undoing things auto formatter did
* Appling Ahson's suggestions
* Move UserAgentGenerator to _internal
* Clang-format
* Update release date to November release (Core)
* Update release date to November release (EventHubs)
* _MSVC_LANG
* Move comment up
* Add /Zc:__cplusplus when building the SDK, and add unittest
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
The SONAME currently written to shared libraries is unversioned, e.g.
libazure-core.so. The SDK's ABI is unstable, so replacing these .so
files with newer versions will immediately break any consumers.
Setting the VERSION property results in libazure-core.so being a symlink
that is used at build time to point to the versioned library, e.g.
libazure-core.so.1.14.0. Consumers point directly to the versioned
library and continue to work against the older version when the library
is upgraded. Once rebuilt, they then point to the newer version instead.
It is more common to use an ABI version that is separate to the library
version, but it makes sense to use the latter when the ABI is unstable.
The Boost libraries do exactly this.
This change has no effect on static libraries, which is the more common
use case. See the CMake documentation for its wider effects.
https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html
* Re-enable running KeyVault samples on Ubuntu using AzureCliCredential.
* Re-enable running Attestation samples using AzureCliCredential.
* Re-enable running EventHubs samples using AzureCliCredential.
* Re-enable running Identity samples.
* Disable client_secret_credential_sample since it depends on env vars
that don't exist.
* Deprecated Azure::Core::ApplicationContext because its use is confusing and inconsistent with the original design.
---------
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Use GetTestCredentials in eventhubs admin client; updated samples to allow sample execution to be disabled
* Made sample execution optional
* re-enabled building keyvault samples
* Disabled RetrieveMultipleEvents test
* Disabled RetrieveMultipleEvents test
* Pull request feedback
* test1
* hgdfchg
* remove the remnants of azure client secret
* test KV with federated auth
* UseFederatedAuth
* fdsa
* kv template with managed
* try try again
* retry permissions
* add net acls
* blunt force replace the resource json
* put back stuff
* trey again with new method
* attempt
* missed something
* flip if else
* Temporarily use empty sub config file path for preview cloud
* remove client secret
* try to fix the identity tests
* live skip failing tests and return in samples
* samples for identity fix
* disable failing samples in identity
* fix winhttp failing test
* comment out code
* remove managed identity
* restore version from main
* revert readme changes
* PR comments
* test 2
* clang
* attempt default creds with pipeline chanined
* clangs
* identity test and clangs
* oops
* live
* cleanup
* reter
* test
* revert the DAC change
* missed one
* taking the samples to a farm upstate
* PR comments
* Fix bad merge
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Move up macos and xcode version
* first pass
* to trigger builds, some other issue
* rewrwe
* Remove MSVC compiler warning suppressions in KeyVault
The code within the `mocked_transport_adapter_test.hpp` file, specifically within the `Azure::Security::KeyVault::Keys` namespace, has been updated. The `#if defined(_MSC_VER)` preprocessor directive along with its associated `#pragma warning(push)` and `#pragma warning(disable : 4996)` directives have been removed. The corresponding `#pragma warning(pop)` directive has also been removed. The lines of code that were between these preprocessor directives remain unchanged. These changes remove specific compiler warning suppressions for MSVC compilers, but do not alter the functional behavior of the code.
* dassa
* Add UseDotNet@2 where test proxy might run on a macos agent
* test CI
* fsd
* dasdas
* gregre
* gerregr
* ffdsfsd
* fwefew
* fewfwew
* reter
* fewfew
* fwefwe
* rewrw
* rwe
* temp move build step to exec faster
* gdfgd
* fsdfd
* fdsfs
* dgdf
* Roll forward instead of installing .NET 6
* remove manual install
* rewrew
* gfdffg
* rewrwe
* gfdgd
* fdsfs
* gfdgdf
* tertre
* dasda
* try http for test proxy
* revert readmes
* rew
* rew
* fdsfsd
* ewrew
* revert storages
* KV
* opentelemetry
* remove warnbing
* anton comments
* unit tests
* clangs
* clang
* comment out some asserts
* restore originals
* updated tests
* clangs
* restore cmake
* test
* Remove manual workaround (eng/common change fixes this)
* test2
* the fix doesn't work, need to put back
* Remove DOTNET_ROLL_FORWARD
* annotate macro , put back DOTNET_ROLL_FORWARD
* remove leftover files
* reww
* update changelog
* remove left over file
* remove some doxygen comments
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* Align eventhubs connection property names with Go
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Changelog
* Fixed extra value caught by Anton
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Switched blob checkpoint store to use both connection string and token credentials; re-recorded tests using token credentials
* Added environment variable to ci.yml
* Try a slightly different storage url
* Fixed test deadlock in processor test
* Updated changelog; Changed fatal to error in test logs
* 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>
* Update vcpkg portfile.cmake of sdk to add parameter HEAD_REF
* Update vcpkg portfile.cmake of sdk to use variable VERSION
* Update eng\scripts\Initialize-VcpkgRelease.ps1 regex for quoted REF
* Re-trigger CI
* Revert unnecessary change
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Updated changelog after release
* Added dependency on azure core and updated amqp dependency
* Added azure core find_package to config.cmake.in
* Removed explicit core dependency for now
* Added blocking Open for message sender
* Blocking message sender open; added AZURE_NODISCARD to help ensure APIs that are likely to fail have their returns checked
* Update eventhubs stress test to use DefaultAzureCredential instead of ClientSecretCredential; Fixed stress test to correctly request client parameters; Removed hard coded resource name from producer client test
* Pull request feedback with link events; renamed AZURE_NODISCARD to _azure_NODISCARD
---------
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
* All eng/ folder changes necessary to enable 1es-templates for the azure-sdk-for-cpp
* Includes updates to all ci.yml files to reflect new syntax requirements from 1es-template changes to archetype-sdk-client
* 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