mirror of https://github.com/dapr/dotnet-sdk.git
Fix the problem of determining whether there is a MetadataSeparator error (#900)
* add original topic metadata support Signed-off-by: saberwang <saberwang@hotmail.com> * Add topicmetadata sample Signed-off-by: saberwang <saberwang@hotmail.com> * fix: v2 route metadata acquisition error Signed-off-by: saberwang <saberwang@hotmail.com> * feat: Support setting metadata separator Signed-off-by: saberwang <saberwang@hotmail.com> * chore: Note modification Signed-off-by: saberwang <saberwang@hotmail.com> * style: Signed-off-by: saberwang <saberwang@hotmail.com> * commit Signed-off-by: saberwang <saberwang@hotmail.com> * fix: Whether there is a problem of MetadataSeparator judgment error Signed-off-by: saberwang <saberwang@hotmail.com> * TopicAttribute.Metadataseparator default should be null Signed-off-by: saberwang <saberwang@hotmail.com> * formatting code Signed-off-by: saberwang <saberwang@hotmail.com> Co-authored-by: halspang <70976921+halspang@users.noreply.github.com>
This commit is contained in:
parent
d061164ec8
commit
e58b1de56a
|
@ -97,7 +97,7 @@ namespace Microsoft.AspNetCore.Builder
|
|||
{
|
||||
var first = e.First();
|
||||
var rawPayload = e.Any(e => e.EnableRawPayload.GetValueOrDefault());
|
||||
var metadataSeparator = e.FirstOrDefault(e => string.IsNullOrEmpty(e.MetadataSeparator)).MetadataSeparator ?? ",";
|
||||
var metadataSeparator = e.FirstOrDefault(e => !string.IsNullOrEmpty(e.MetadataSeparator)).MetadataSeparator ?? ",";
|
||||
var rules = e.Where(e => !string.IsNullOrEmpty(e.Match)).ToList();
|
||||
var defaultRoutes = e.Where(e => string.IsNullOrEmpty(e.Match)).Select(e => RoutePatternToString(e.RoutePattern)).ToList();
|
||||
var defaultRoute = defaultRoutes.FirstOrDefault();
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace Dapr
|
|||
/// <param name="name">The topic name.</param>
|
||||
/// <param name="ownedMetadatas">The topic owned metadata ids.</param>
|
||||
/// <param name="metadataSeparator">Separator to use for metadata.</param>
|
||||
public TopicAttribute(string pubsubName, string name, string[] ownedMetadatas = null,string metadataSeparator = ",")
|
||||
public TopicAttribute(string pubsubName, string name, string[] ownedMetadatas = null, string metadataSeparator = null)
|
||||
{
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(pubsubName, nameof(pubsubName));
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(name, nameof(name));
|
||||
|
@ -47,7 +47,7 @@ namespace Dapr
|
|||
/// <param name="enableRawPayload">The enable/disable raw pay load flag.</param>
|
||||
/// <param name="ownedMetadatas">The topic owned metadata ids.</param>
|
||||
/// <param name="metadataSeparator">Separator to use for metadata.</param>
|
||||
public TopicAttribute(string pubsubName, string name, bool enableRawPayload, string[] ownedMetadatas = null, string metadataSeparator = ",")
|
||||
public TopicAttribute(string pubsubName, string name, bool enableRawPayload, string[] ownedMetadatas = null, string metadataSeparator = null)
|
||||
{
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(pubsubName, nameof(pubsubName));
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(name, nameof(name));
|
||||
|
@ -68,7 +68,7 @@ namespace Dapr
|
|||
/// <param name="priority">The priority of the rule (low-to-high values).</param>
|
||||
/// <param name="ownedMetadatas">The topic owned metadata ids.</param>
|
||||
/// <param name="metadataSeparator">Separator to use for metadata.</param>
|
||||
public TopicAttribute(string pubsubName, string name, string match, int priority, string[] ownedMetadatas = null, string metadataSeparator = ",")
|
||||
public TopicAttribute(string pubsubName, string name, string match, int priority, string[] ownedMetadatas = null, string metadataSeparator = null)
|
||||
{
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(pubsubName, nameof(pubsubName));
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(name, nameof(name));
|
||||
|
@ -91,7 +91,7 @@ namespace Dapr
|
|||
/// <param name="priority">The priority of the rule (low-to-high values).</param>
|
||||
/// <param name="ownedMetadatas">The topic owned metadata ids.</param>
|
||||
/// <param name="metadataSeparator">Separator to use for metadata.</param>
|
||||
public TopicAttribute(string pubsubName, string name, bool enableRawPayload, string match, int priority, string[] ownedMetadatas = null, string metadataSeparator = ",")
|
||||
public TopicAttribute(string pubsubName, string name, bool enableRawPayload, string match, int priority, string[] ownedMetadatas = null, string metadataSeparator = null)
|
||||
{
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(pubsubName, nameof(pubsubName));
|
||||
ArgumentVerifier.ThrowIfNullOrEmpty(name, nameof(name));
|
||||
|
|
|
@ -78,6 +78,14 @@ namespace Dapr.AspNetCore.IntegrationTest.App
|
|||
{
|
||||
}
|
||||
|
||||
[Topic("pubsub", "metadataseparator", metadataSeparator: "|")]
|
||||
[HttpPost("/topicmetadataseparatorattr")]
|
||||
[TopicMetadata("n1", "v1")]
|
||||
[TopicMetadata("n1", "v2")]
|
||||
public void TopicMetadataSeparator()
|
||||
{
|
||||
}
|
||||
|
||||
[Topic("pubsub", "splitTopicAttr", true)]
|
||||
[HttpPost("/splitTopics")]
|
||||
public void SplitTopic()
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace Dapr.AspNetCore.IntegrationTest
|
|||
var json = await JsonSerializer.DeserializeAsync<JsonElement>(stream);
|
||||
|
||||
json.ValueKind.Should().Be(JsonValueKind.Array);
|
||||
json.GetArrayLength().Should().Be(15);
|
||||
json.GetArrayLength().Should().Be(16);
|
||||
var subscriptions = new List<(string PubsubName, string Topic, string Route, string rawPayload, string match, string metadata)>();
|
||||
foreach (var element in json.EnumerateArray())
|
||||
{
|
||||
|
@ -107,7 +107,7 @@ namespace Dapr.AspNetCore.IntegrationTest
|
|||
subscriptions.Should().Contain(("pubsub", "metadata", "multiMetadataTopicAttr", string.Empty, string.Empty, "n1=v1;n2=v2,v3"));
|
||||
subscriptions.Should().Contain(("pubsub", "metadata.1", "multiMetadataTopicAttr", "true", string.Empty, "n1=v1"));
|
||||
subscriptions.Should().Contain(("pubsub", "splitMetadataTopicBuilder", "splitMetadataTopics", string.Empty, string.Empty, "n1=v1;n2=v1"));
|
||||
|
||||
subscriptions.Should().Contain(("pubsub", "metadataseparator", "topicmetadataseparatorattr", string.Empty, string.Empty, "n1=v1|v2"));
|
||||
// Test priority route sorting
|
||||
var eTopic = subscriptions.FindAll(e => e.Topic == "E");
|
||||
eTopic.Count.Should().Be(3);
|
||||
|
|
Loading…
Reference in New Issue