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

mikexue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/eventmesh.git


The following commit(s) were added to refs/heads/master by this push:
     new 12aeb4bbb [ISSUE #4109 ] Code Optimization.[ClientGroupWrapper] (#4154)
12aeb4bbb is described below

commit 12aeb4bbbc6156d80057b33ef3a558a60b6ea516
Author: Nitheesh Daram <[email protected]>
AuthorDate: Tue Jun 27 15:20:46 2023 +0530

    [ISSUE #4109 ] Code Optimization.[ClientGroupWrapper] (#4154)
    
    * Resolves #4109
    
    Signed-off-by: Nitheesh Daram 
<[email protected]>
    
    * Resolves #4109
    
    Code Review Changes
    
    Signed-off-by: Nitheesh Daram 
<[email protected]>
    
    ---------
    
    Signed-off-by: Nitheesh Daram 
<[email protected]>
---
 .../tcp/client/group/ClientGroupWrapper.java       | 52 +++++++++++++++-------
 .../client/group/ClientSessionGroupMapping.java    | 20 ++++-----
 2 files changed, 47 insertions(+), 25 deletions(-)

diff --git 
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
 
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
index ac45ca6cb..097f89144 100644
--- 
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
+++ 
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
@@ -66,6 +66,7 @@ import io.opentelemetry.api.trace.Span;
 
 import com.google.common.base.Preconditions;
 
+import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 
 
@@ -88,17 +89,26 @@ public class ClientGroupWrapper {
 
     private final ReadWriteLock groupLock = new ReentrantReadWriteLock();
 
-    public Set<Session> groupConsumerSessions = new HashSet<Session>();
+    @Getter
+    private final Set<Session> groupConsumerSessions = new HashSet<Session>();
 
-    public Set<Session> groupProducerSessions = new HashSet<Session>();
+    @Getter
+    private final Set<Session> groupProducerSessions = new HashSet<Session>();
 
-    public AtomicBoolean started4Persistent = new AtomicBoolean(Boolean.FALSE);
+    @Getter
+    private final AtomicBoolean started4Persistent = new 
AtomicBoolean(Boolean.FALSE);
 
-    public AtomicBoolean started4Broadcast = new AtomicBoolean(Boolean.FALSE);
+    @Getter
+    private final AtomicBoolean started4Broadcast = new 
AtomicBoolean(Boolean.FALSE);
 
-    public AtomicBoolean inited4Persistent = new AtomicBoolean(Boolean.FALSE);
+    @Getter
+    private final AtomicBoolean inited4Persistent = new 
AtomicBoolean(Boolean.FALSE);
 
-    public AtomicBoolean inited4Broadcast = new AtomicBoolean(Boolean.FALSE);
+    @Getter
+    private final AtomicBoolean inited4Broadcast = new 
AtomicBoolean(Boolean.FALSE);
+
+    @Getter
+    private final AtomicBoolean producerStarted = new 
AtomicBoolean(Boolean.FALSE);
 
     private MQConsumerWrapper persistentMsgConsumer;
 
@@ -109,8 +119,6 @@ public class ClientGroupWrapper {
 
     private final ConcurrentHashMap<String, SubscriptionItem> subscriptions = 
new ConcurrentHashMap<>();
 
-    public AtomicBoolean producerStarted = new AtomicBoolean(Boolean.FALSE);
-
     private final MQProducerWrapper mqProducerWrapper;
 
     public ClientGroupWrapper(String sysId, String group,
@@ -139,6 +147,9 @@ public class ClientGroupWrapper {
             this.groupLock.readLock().lockInterruptibly();
             has = topic2sessionInGroupMapping.containsKey(topic);
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("hasSubscription error! topic[{}]", topic);
         } finally {
             this.groupLock.readLock().unlock();
@@ -218,6 +229,9 @@ public class ClientGroupWrapper {
 
             subscriptions.putIfAbsent(topic, subscriptionItem);
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("addSubscription error! topic:{} client:{}", topic, 
session.getClient(), e);
             throw new Exception("addSubscription fail");
         } finally {
@@ -267,6 +281,9 @@ public class ClientGroupWrapper {
                     group, topic);
             }
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("removeSubscription error! topic:{} client:{}", topic, 
session.getClient(),
                 e);
         } finally {
@@ -333,6 +350,9 @@ public class ClientGroupWrapper {
                 }
             }
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("addGroupConsumerSession error! group:{} client:{}", 
group,
                 session.getClient(), e);
         } finally {
@@ -360,6 +380,9 @@ public class ClientGroupWrapper {
                     session.getClient());
             }
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("addGroupProducerSession error! group:{} client:{}", 
group,
                 session.getClient(), e);
         } finally {
@@ -389,6 +412,9 @@ public class ClientGroupWrapper {
                 }
             }
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("removeGroupConsumerSession error! group:{} client:{}", 
group,
                 session.getClient(), e);
         } finally {
@@ -415,6 +441,9 @@ public class ClientGroupWrapper {
                     session.getClient());
             }
         } catch (Exception e) {
+            if (e instanceof InterruptedException) {
+                Thread.currentThread().interrupt();
+            }
             log.error("removeGroupProducerSession error! group:{} client:{}", 
group,
                 session.getClient(), e);
         } finally {
@@ -670,13 +699,6 @@ public class ClientGroupWrapper {
         persistentMsgConsumer = null;
     }
 
-    public Set<Session> getGroupConsumerSessions() {
-        return groupConsumerSessions;
-    }
-
-    public Set<Session> getGroupProducerSessions() {
-        return groupProducerSessions;
-    }
 
     public EventMeshTCPConfiguration getEventMeshTCPConfiguration() {
         return eventMeshTCPConfiguration;
diff --git 
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
 
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
index a0c088008..f8873ca9a 100644
--- 
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
+++ 
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
@@ -209,7 +209,7 @@ public class ClientSessionGroupMapping {
     }
 
     private void startClientGroupProducer(ClientGroupWrapper cgw, Session 
session) throws Exception {
-        if (!cgw.producerStarted.get()) {
+        if (!cgw.getProducerStarted().get()) {
             cgw.startClientGroupProducer();
         }
         boolean flag = cgw.addGroupProducerSession(session);
@@ -220,15 +220,15 @@ public class ClientSessionGroupMapping {
     }
 
     private void initClientGroupConsumser(ClientGroupWrapper cgw) throws 
Exception {
-        if (!cgw.producerStarted.get()) {
+        if (!cgw.getProducerStarted().get()) {
             cgw.startClientGroupProducer();
         }
 
-        if (!cgw.inited4Broadcast.get()) {
+        if (!cgw.getInited4Broadcast().get()) {
             cgw.initClientGroupBroadcastConsumer();
         }
 
-        if (!cgw.inited4Persistent.get()) {
+        if (!cgw.getInited4Persistent().get()) {
             cgw.initClientGroupPersistentConsumer();
         }
     }
@@ -247,10 +247,10 @@ public class ClientSessionGroupMapping {
                 throw new Exception("addGroupConsumerSession fail");
             }
 
-            if (cgw.inited4Persistent.get() && !cgw.started4Persistent.get()) {
+            if (cgw.getInited4Persistent().get() && 
!cgw.getStarted4Persistent().get()) {
                 cgw.startClientGroupPersistentConsumer();
             }
-            if (cgw.inited4Broadcast.get() && !cgw.started4Broadcast.get()) {
+            if (cgw.getInited4Broadcast().get() && 
!cgw.getStarted4Broadcast().get()) {
                 cgw.startClientGroupBroadcastConsumer();
             }
             session.setSessionState(SessionState.RUNNING);
@@ -306,7 +306,7 @@ public class ClientSessionGroupMapping {
                 Session reChooseSession = 
clientGroupWrapper.getDownstreamDispatchStrategy()
                     .select(clientGroupWrapper.getGroup(),
                         downStreamMsgContext.event.getSubject(),
-                        clientGroupWrapper.groupConsumerSessions);
+                        clientGroupWrapper.getGroupConsumerSessions());
                 if (reChooseSession != null) {
                     downStreamMsgContext.setSession(reChooseSession);
                     
reChooseSession.getPusher().unAckMsg(downStreamMsgContext.seq, 
downStreamMsgContext);
@@ -340,18 +340,18 @@ public class ClientSessionGroupMapping {
     }
 
     private void shutdownClientGroupConsumer(ClientGroupWrapper 
clientGroupWrapper) throws Exception {
-        if (clientGroupWrapper.started4Broadcast.get()) {
+        if (clientGroupWrapper.getStarted4Broadcast().get()) {
             clientGroupWrapper.shutdownBroadCastConsumer();
         }
 
-        if (clientGroupWrapper.started4Persistent.get()) {
+        if (clientGroupWrapper.getStarted4Persistent().get()) {
             clientGroupWrapper.shutdownPersistentConsumer();
         }
     }
 
 
     private void shutdownClientGroupProducer(ClientGroupWrapper 
clientGroupWrapper) throws Exception {
-        if (clientGroupWrapper.producerStarted.get()) {
+        if (clientGroupWrapper.getProducerStarted().get()) {
             clientGroupWrapper.shutdownProducer();
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to