Skip to content
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

Merge from Azure/master #1

Merged
merged 83 commits into from
Jul 30, 2019
Merged

Merge from Azure/master #1

merged 83 commits into from
Jul 30, 2019

Conversation

nemakam
Copy link
Owner

@nemakam nemakam commented Jul 30, 2019

No description provided.

JonathanCrd and others added 30 commits July 12, 2019 16:31
* .NET smoke Test Sample

Performs functionalities with Key Vault, Identity, Event Hubs and Blob Storage Track 2 SDKs.

* Env Variables names changed

The names were changed to match the name convention for environment variables.

* Update .gitignore

* gitignore updated

A gitignore file was created in the SmokeTest folder, and now all launchSettings.json files are being ignored.

* Exit Codes, PascalCase and refactoring of the static methods.

Work based on the reviews from the PR #6652. The public methods are now in PascalCase, the methods does not longer return English strings, instead they return booleans or Exceptions.  And Exit Codes handling was implemented.

* Class names changed

Class names were changed to match the following pattern: <service>Test. Example: BlobStorage -> BlobStorageTest.

* Comments

XML comments were added and some unnecesary comments were deleted.

* Higher order functions

Use of higher order functions to dry up the code.

* Test classes refactured

Drying up the code by using high order functions.

* Create CosmosDBTest.cs

* Cosmos DB implementation

Tests done with Mirosoft.Azure.DocumentDB SDK.

* Update CosmosDBTest.cs

* Update CosmosDBTest.cs

* Unnecessary blank lines removed

* ExecuteTest typo

* Base class deleted

The samples not longer need the "TestBase" class to run.

* BlobTestSource.tst deleted

This text file is not going to be needed any more since the test Blob is being created within the code.

* Static Classes

All classes are now static.

* Pair programming comments
* update CODEOWNERS links to point to sync documentation

* update documentation link, add EngSys config, add commented catch all and example configs

* update engsys entries in CODEOWNERS

* move EngSys section down so that its rules match LAST

* add track 2 sdk locations

* remove extra documentation link
* added new swagger

* updated tests

* updated package version and tests

* Updated Recording Tests

* rebuild
* Regenerate code

* Update version and release note
* [Azure Search] Refactor FieldBuilder to use sum type for DataTypeInfo

The logic for detecting different kinds of data types will get more complex
in the future. To prepare, this change replaces the DataTypeInfo struct with
the C# equivalent of a "sum type" (a.k.a. "discriminated union"), implemented
via the IDataTypeInfo interface and its companion classes. This will allow
modeling of more mutually-exclusive cases for data types that may carry
different properties.

This change also necessitated removing one of the "continue" statements from
the inner loop. It belongs to a case that only applies to complex fields, so
logically the "continue" belongs in one of the lambdas passed to Match, but
since that's not possible, CreateComplexField just returns null for that case
instead.

* [Azure Search] Replacing explicit loop in FieldBuilder with function pipeline

This change cleans up the core logic of FieldBuilder, removing the last
"continue" and making it easier to reason about and extend.

* [Azure Search] Make FieldBuilder fail gracefully on unknown types

We can't just assume that properties of types we don't recognize must be
complex types. Instead, FieldBuilder now uses the JSON contract resolver to
determine whether a property is of a complex type. If not, it throws an
exception with a helpful error message.

Rather than repeatedly call the contract resolver (once at the beginning of
BuildForTypeRecursive and once in GetDataTypeInfo), DataTypeInfo.Complex has
been extended to carry the JsonObjectContract for the type as a performance
optimization. The signature of BuildForTypeRecursive has been modified
accordingly so it's now the caller's responsibility to provide the
JsonObjectContract.

* [Azure Search] Add top-level validation to FieldBuilder

Now FieldBuilder will fail with a helpful error message if a type that
clearly isn't a DTO is passed. This is determined by whether or not the type
resolves to a JsonObjectContract.

* [Azure Search] Add FieldBuilder test coverage for ICollection properties

* [Azure Search] Ignore key attribute on sub-fields

* [Azure Search] Refactor FieldBuilderTests to use fewer callbacks

Callbacks make tests harder to reason about. They were there primarily to
support calling FieldBuilder with and without a custom contract resolver.
Instead, a flag is now passed to each test to indicate whether to pass a
contract resolver to FieldBuilder.

Also, the tests now more explicitly call FieldBuilder and then assert on
the result using a new helper class, FieldMap. This makes the data flow in
the tests more obvious and more closely follows the arrange-act-assert
pattern.

* [Azure Search] Add missing docs to FieldBuilder-related attributes

* [Azure Search] Add new FieldBuilderIgnoreAttribute

Sometimes model classes have properties of types (like enums) that make sense
for application code, but don't automatically map to an Azure Search data
type. Using [JsonIgnore] is not an option in scenarios when such properties
actually are a part of the index. This commit introduces [FieldBuilderIgnore]
which FieldBuilder treats just like [JsonIgnore]. That way, you can opt out
of FieldBuilder without opting out of JSON serialization/deserialization.

* [Azure Search] Factor out data plane version into props file

* Update session record for live FieldBuilder test

* [Azure Search] Replace CRLF with Environment.NewLine

* [Azure Search] Rename a parameter per PR feedback
…eption when you try to create a session/link at the same time when connection/session is being closed. (#6940)

Throw ServiceBusCommunicationException instead of InvalidOperationException when you try to create a session/link at the same time when connection/session is being closed.
Multiple errors can happen when link/session is closing. Throw ServiceBusCommunicationException instead of ServiceBusException.

Fixes #6097
…as Exception in AppInsights (DiagnosticSource) (#6919)

fixes issue #6813
Fixing bug when timeout helper was not initialized correctly and hence client side timeouts were not behaving as expected.

Without the `true` argument, the timer doesn't start. For example in `RetryPolicy` which is used everywhere, the timer doesn't start till the first operation is completed. That results in unexpected behavior, and the operations being called for the second time though the timer has expired.
…on (#6951)

Mentioning that there could be false-negative lockLost exceptions that could be raised.
Related to #6723
…er (#6941)

Fixing #6031 
In the case of Via-Sender defined by 
`viaSender = new MessageSender(connection, "path", "via")`,

1. Path will now point to wherever the amqp-link is created to.
2. viaEntityPath will point to via entity.
3. TransferDestinationPath will point to the final destination of the message
updated release Notes
updated versioning
brjohnstmsft and others added 27 commits July 22, 2019 14:00
…erge" operation (#7011)

* Fix the request content being disposed betweeen .NET Core and .Net framework

* Add SessionRecord for the new test
  General
    - Ran formatting over the project, which now impacts the track one code,
      since it is embedded an no longer an external reference.

    - Adopted and revised the diagnostic event source used for logging in the
      track one code; the areas of instrumentation were maintained for
      consistency, but the messaging and data has been refactored for
      track two conventions.

    - Tweak to event consumer example in ReadMe, in response to feedback
      from the "Getting Started" review.

  Event Batching
    - Created infrastructure for an event batch, delegating to a transport-
      specific batch implementation.

    - Implemented batching for the AMQP transport.

  Publishing Events
    - Enhanced event publishing to accept an event batch as the set of
      events to be published.

  Live Tests
    - Tweaked some timing and sizing for large message tests to help
      stablize during nightly runs on non-Windows platforms.

    - Loosened criteria for invalid proxy tests, as the exception types are
      not consistent across different operating systems.

  AMQP Foundation
    - Translated message and infrastructure-related constants, grouping them
      into containing classes intended to be semantically relevant to their
      intended use and meaning.

    - Implemented translation of Event Data into the corresponding AMQP
      message format.
…Minor Tweaks)

  General
    - Ran spell checking over comments and strings for the project, fixing
      errors.

    - Ran formatting over the project, which now impacts the track one code,
      since it is embedded an no longer an external reference.

    - Converted `new byte[0]` calls to `Array.Empty<byte>()` in the AMQP
      Message Converter and Track One Event Producer to reduce unnecessary
      allocations.

    - Trimmed a parameter to limit copying of event properties in the AMQP
      Message Converter, as it was determined to not be on an active code path.
- Downloads may occasionally fail due to server or network issues
* Added unit tests for dynamic metric alert

* Don't exclude from build and test

* Increase version to publish an updated nuget version
* Align recent changes with Swagger

* Fix CR comments

* Minor CR fixes

* Changes done by generate.ps1
* Adding DeviceCodeCredential to Azure.Identity

* updates addressing PR feedback
* Add new records

* Update Indexer and ServiceStats Limits

* Bumping version to 10.0.0
* Add release build configuration to release pipeline

* add conditional for not equals
ConcurrentExpiringSet -> Lock-free solution to make ConcurrentExpiringSet not leak the cleanup task for the period of delayBetweenCleanups

Properly cancels the `Task.Delay` if cleanup was scheduled to not leak the task for the duration of the timeout
Removes the `.Keys` access that locks the whole concurrent dictionary
Makes sure to remove the key only if the snapshot matches by using collection remove
@nemakam nemakam merged commit a180dc3 into nemakam:master Jul 30, 2019
nemakam pushed a commit that referenced this pull request Oct 25, 2019
…8219)

* SDK refresh to support new API version (#1)

* Refreshing SDK with support for new API version

* Added recorded sessions to fix CI (#2)


* Added recorded tests

* Coder review fix

* SDK refresh to support new API version (#1)

* Refreshing SDK with support for new API version

* Added recorded sessions to fix CI (#2)


* Added recorded tests

* Adding SDK changes

* code review fix to downgrade the version

* reverting assembly version
nemakam pushed a commit that referenced this pull request Dec 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.