You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/12/23 09:25:02 UTC

[rocketmq-clients] branch master updated (5a6a16c6 -> 423c8248)

This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git


    from 5a6a16c6 Bump golang version to 5.0.1-rc1
     new 8f4c0c4d Add missing unsubscribe in dotnet SimpleConsumer
     new a80ef58a Minor optimization
     new a44608e2 dotnet use project versioning
     new 423c8248 Update csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 csharp/rocketmq-client-csharp/Client.cs            | 35 ++++++++++------------
 csharp/rocketmq-client-csharp/ClientConfig.cs      | 12 ++------
 csharp/rocketmq-client-csharp/ClientManager.cs     |  8 ++---
 csharp/rocketmq-client-csharp/MetadataConstants.cs |  6 ++++
 csharp/rocketmq-client-csharp/Producer.cs          |  4 +--
 csharp/rocketmq-client-csharp/Signature.cs         |  2 +-
 csharp/rocketmq-client-csharp/SimpleConsumer.cs    |  6 ++++
 .../rocketmq-client-csharp.csproj                  |  3 +-
 8 files changed, 38 insertions(+), 38 deletions(-)


[rocketmq-clients] 03/04: dotnet use project versioning

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit a44608e25e6e5db3d49f4a034705720c5650da99
Author: colprog <co...@gmail.com>
AuthorDate: Tue Dec 20 23:27:06 2022 +0800

    dotnet use project versioning
---
 csharp/rocketmq-client-csharp/Client.cs                     | 2 +-
 csharp/rocketmq-client-csharp/MetadataConstants.cs          | 6 ++++++
 csharp/rocketmq-client-csharp/Signature.cs                  | 2 +-
 csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/csharp/rocketmq-client-csharp/Client.cs b/csharp/rocketmq-client-csharp/Client.cs
index bcd6b21f..dc1418e6 100644
--- a/csharp/rocketmq-client-csharp/Client.cs
+++ b/csharp/rocketmq-client-csharp/Client.cs
@@ -61,7 +61,7 @@ namespace Org.Apache.Rocketmq
             ClientSettings.UserAgent = new rmq.UA
             {
                 Language = rmq::Language.DotNet,
-                Version = "5.0.0",
+                Version = MetadataConstants.CLIENT_VERSION,
                 Platform = Environment.OSVersion.ToString(),
                 Hostname = System.Net.Dns.GetHostName()
             };
diff --git a/csharp/rocketmq-client-csharp/MetadataConstants.cs b/csharp/rocketmq-client-csharp/MetadataConstants.cs
index 53815957..d61f0294 100644
--- a/csharp/rocketmq-client-csharp/MetadataConstants.cs
+++ b/csharp/rocketmq-client-csharp/MetadataConstants.cs
@@ -16,6 +16,7 @@
  */
 
 using System;
+using System.Reflection;
 
 namespace Org.Apache.Rocketmq
 {
@@ -37,5 +38,10 @@ namespace Org.Apache.Rocketmq
         public const string REQUEST_ID_KEY = "x-mq-request-id";
 
         public const string CLIENT_ID_KEY = "x-mq-client-id";
+
+        public static readonly string CLIENT_VERSION = Assembly
+            .GetAssembly(typeof(MetadataConstants))
+            .GetCustomAttribute<AssemblyInformationalVersionAttribute>()
+            .InformationalVersion;
     }
 }
\ No newline at end of file
diff --git a/csharp/rocketmq-client-csharp/Signature.cs b/csharp/rocketmq-client-csharp/Signature.cs
index ec781716..729640b8 100644
--- a/csharp/rocketmq-client-csharp/Signature.cs
+++ b/csharp/rocketmq-client-csharp/Signature.cs
@@ -26,7 +26,7 @@ namespace Org.Apache.Rocketmq
         public static void Sign(IClientConfig clientConfig, grpc::Metadata metadata)
         {
             metadata.Add(MetadataConstants.LANGUAGE_KEY, "DOTNET");
-            metadata.Add(MetadataConstants.CLIENT_VERSION_KEY, "5.0.0");
+            metadata.Add(MetadataConstants.CLIENT_VERSION_KEY, MetadataConstants.CLIENT_VERSION);
             metadata.Add(MetadataConstants.CLIENT_ID_KEY, clientConfig.clientId());
 
             if (!String.IsNullOrEmpty(clientConfig.resourceNamespace()))
diff --git a/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj b/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
index 737b231d..93e92a5f 100644
--- a/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
+++ b/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <PackageId>RocketMQ-Client-CSharp</PackageId>
-    <Version>1.0.0</Version>
+    <Version>5.0.0</Version>
     <Authors>Zhanhui Li</Authors>
     <Company>Apache Software Foundation</Company>
     <TargetFramework>net5.0</TargetFramework>


[rocketmq-clients] 01/04: Add missing unsubscribe in dotnet SimpleConsumer

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 8f4c0c4d99decaabcc6f69941a8d5960dddb1595
Author: colprog <co...@gmail.com>
AuthorDate: Tue Dec 20 23:12:49 2022 +0800

    Add missing unsubscribe in dotnet SimpleConsumer
---
 csharp/rocketmq-client-csharp/Client.cs         | 15 ++++++++-------
 csharp/rocketmq-client-csharp/Producer.cs       |  4 ++--
 csharp/rocketmq-client-csharp/SimpleConsumer.cs |  6 ++++++
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/csharp/rocketmq-client-csharp/Client.cs b/csharp/rocketmq-client-csharp/Client.cs
index 217479d9..bd9fdef1 100644
--- a/csharp/rocketmq-client-csharp/Client.cs
+++ b/csharp/rocketmq-client-csharp/Client.cs
@@ -148,11 +148,7 @@ namespace Org.Apache.Rocketmq
 
         private async Task UpdateTopicRoute()
         {
-            HashSet<string> topics = new HashSet<string>();
-            foreach (var topic in _topicsOfInterest)
-            {
-                topics.Add(topic);
-            }
+            HashSet<string> topics = new HashSet<string>(_topicsOfInterest.Keys);
 
             foreach (var item in _topicRouteTable)
             {
@@ -518,11 +514,16 @@ namespace Org.Apache.Rocketmq
 
         protected readonly IClientManager Manager;
 
-        protected readonly HashSet<string> _topicsOfInterest = new HashSet<string>();
+        protected readonly ConcurrentDictionary<string, bool> _topicsOfInterest = new ();
 
         public void AddTopicOfInterest(string topic)
         {
-            _topicsOfInterest.Add(topic);
+            _topicsOfInterest.TryAdd(topic, true);
+        }
+
+        public void RemoveTopicOfInterest(string topic)
+        {
+            _topicsOfInterest.TryRemove(topic, out var _);
         }
 
         private readonly ConcurrentDictionary<string, TopicRouteData> _topicRouteTable;
diff --git a/csharp/rocketmq-client-csharp/Producer.cs b/csharp/rocketmq-client-csharp/Producer.cs
index 77016571..39e39b8e 100644
--- a/csharp/rocketmq-client-csharp/Producer.cs
+++ b/csharp/rocketmq-client-csharp/Producer.cs
@@ -94,7 +94,7 @@ namespace Org.Apache.Rocketmq
             {
                 var resource = new rmq.Resource()
                 {
-                    Name = topic,
+                    Name = topic.Key,
                     ResourceNamespace = ResourceNamespace
                 };
                 publishing.Topics.Add(resource);
@@ -105,7 +105,7 @@ namespace Org.Apache.Rocketmq
 
         public async Task<SendReceipt> Send(Message message)
         {
-            _topicsOfInterest.Add(message.Topic);
+            _topicsOfInterest.TryAdd(message.Topic, true);
 
             if (!_loadBalancer.TryGetValue(message.Topic, out var publishLb))
             {
diff --git a/csharp/rocketmq-client-csharp/SimpleConsumer.cs b/csharp/rocketmq-client-csharp/SimpleConsumer.cs
index 12e5d8cf..efe38211 100644
--- a/csharp/rocketmq-client-csharp/SimpleConsumer.cs
+++ b/csharp/rocketmq-client-csharp/SimpleConsumer.cs
@@ -180,6 +180,12 @@ namespace Org.Apache.Rocketmq
             AddTopicOfInterest(topic);
         }
 
+        public void Unsubscribe(string topic)
+        {
+            _subscriptions.TryRemove(topic, out var _);
+            RemoveTopicOfInterest(topic);
+        }
+
         internal override void OnSettingsReceived(rmq.Settings settings)
         {
             base.OnSettingsReceived(settings);


[rocketmq-clients] 02/04: Minor optimization

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit a80ef58ab17acdeb60f34a84ff0cd29ff51a2242
Author: colprog <co...@gmail.com>
AuthorDate: Sat Dec 17 06:21:06 2022 +0800

    Minor optimization
---
 csharp/rocketmq-client-csharp/Client.cs        | 18 ++++++------------
 csharp/rocketmq-client-csharp/ClientConfig.cs  | 12 ++----------
 csharp/rocketmq-client-csharp/ClientManager.cs |  8 ++++----
 3 files changed, 12 insertions(+), 26 deletions(-)

diff --git a/csharp/rocketmq-client-csharp/Client.cs b/csharp/rocketmq-client-csharp/Client.cs
index bd9fdef1..bcd6b21f 100644
--- a/csharp/rocketmq-client-csharp/Client.cs
+++ b/csharp/rocketmq-client-csharp/Client.cs
@@ -227,10 +227,10 @@ namespace Org.Apache.Rocketmq
         protected async Task<TopicRouteData> GetRouteFor(string topic, bool direct)
         {
             Logger.Debug($"Get route for topic={topic}, direct={direct}");
-            if (!direct && _topicRouteTable.ContainsKey(topic))
+            if (!direct && _topicRouteTable.TryGetValue(topic, out var routeData))
             {
                 Logger.Debug($"Return cached route for {topic}");
-                return _topicRouteTable[topic];
+                return routeData;
             }
 
             // We got one or more name servers available.
@@ -243,13 +243,10 @@ namespace Org.Apache.Rocketmq
                 },
                 Endpoints = new rmq::Endpoints
                 {
-                    Scheme = AccessPointScheme
+                    Scheme = AccessPointScheme,
+                    Addresses = { AccessPointEndpoints },
                 }
             };
-            foreach (var address in AccessPointEndpoints)
-            {
-                request.Endpoints.Addresses.Add(address);
-            }
 
             var metadata = new grpc.Metadata();
             Signature.Sign(this, metadata);
@@ -337,14 +334,11 @@ namespace Org.Apache.Rocketmq
                 },
                 Endpoints = new rmq::Endpoints
                 {
-                    Scheme = AccessPointScheme
+                    Scheme = AccessPointScheme,
+                    Addresses = { AccessPointEndpoints },
                 }
             };
             
-            foreach (var endpoint in AccessPointEndpoints)
-            {
-                request.Endpoints.Addresses.Add(endpoint);
-            }
             try
             {
                 var metadata = new grpc::Metadata();
diff --git a/csharp/rocketmq-client-csharp/ClientConfig.cs b/csharp/rocketmq-client-csharp/ClientConfig.cs
index bdba0284..beca1067 100644
--- a/csharp/rocketmq-client-csharp/ClientConfig.cs
+++ b/csharp/rocketmq-client-csharp/ClientConfig.cs
@@ -149,21 +149,13 @@ namespace Org.Apache.Rocketmq
         {
             get
             {
-                List<rmq::Address> addresses = new List<rmq::Address>();
-                foreach (var item in access_point_.Addresses)
-                {
-                    addresses.Add(item);
-                }
-                return addresses;
+                return new List<rmq::Address>(access_point_.Addresses);
             }
 
             set
             {
                 access_point_.Addresses.Clear();
-                foreach (var item in value)
-                {
-                    access_point_.Addresses.Add(item);
-                }
+                access_point_.Addresses.AddRange(value);
             }
         }
 
diff --git a/csharp/rocketmq-client-csharp/ClientManager.cs b/csharp/rocketmq-client-csharp/ClientManager.cs
index e3bda5d2..64955b76 100644
--- a/csharp/rocketmq-client-csharp/ClientManager.cs
+++ b/csharp/rocketmq-client-csharp/ClientManager.cs
@@ -44,9 +44,9 @@ namespace Org.Apache.Rocketmq
             try
             {
                 // client exists, return in advance.
-                if (_rpcClients.ContainsKey(target))
+                if (_rpcClients.TryGetValue(target, out var cachedClient))
                 {
-                    return _rpcClients[target];
+                    return cachedClient;
                 }
             }
             finally
@@ -58,9 +58,9 @@ namespace Org.Apache.Rocketmq
             try
             {
                 // client exists, return in advance.
-                if (_rpcClients.ContainsKey(target))
+                if (_rpcClients.TryGetValue(target, out var cachedClient))
                 {
-                    return _rpcClients[target];
+                    return cachedClient;
                 }
 
                 // client does not exist, generate a new one


[rocketmq-clients] 04/04: Update csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 423c82488851e5c4762ceea16b386191c40f82ae
Author: colprog <co...@gmail.com>
AuthorDate: Fri Dec 23 17:19:21 2022 +0800

    Update csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
    
    Co-authored-by: Aaron Ai <ya...@gmail.com>
---
 csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj b/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
index 93e92a5f..75b600fe 100644
--- a/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
+++ b/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
@@ -2,7 +2,8 @@
 
   <PropertyGroup>
     <PackageId>RocketMQ-Client-CSharp</PackageId>
-    <Version>5.0.0</Version>
+    <Version>5.0.1</Version>
+
     <Authors>Zhanhui Li</Authors>
     <Company>Apache Software Foundation</Company>
     <TargetFramework>net5.0</TargetFramework>