This is an automated email from the ASF dual-hosted git repository.
mxsm 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 50d6113ce [ISSUE #4062]Implement the method
printRetryThreadPoolState() in EventMeshTcpRetryer (#4063)
50d6113ce is described below
commit 50d6113cec1cdbbb38825625c5b89dffa62f604f
Author: pandaapo <[email protected]>
AuthorDate: Mon Aug 21 09:12:51 2023 +0800
[ISSUE #4062]Implement the method printRetryThreadPoolState() in
EventMeshTcpRetryer (#4063)
* Complete the method printRetryThreadPoolState().
* Modify as review.
* Modify as review.
* Implement the new method of Connector in mongodb conector. Optimize
duplicate code in redis connector.
* Implement the new method of Connector in S3 connector module. Optimize
some duplicate codes.
* Fix checkstyle error.
* Fix checkstyle error.
* Fix checkstyle error.
* Fix checkstyle error.
---
.../kafka/sink/connector/KafkaSinkConnector.java | 20 ++----
.../source/connector/KafkaSourceConnector.java | 18 ++----
.../sink/connector/MongodbSinkConnector.java | 13 ++++
.../source/connector/MongodbSourceConnector.java | 13 ++++
.../sink/connector/OpenFunctionSinkConnector.java | 2 +-
.../connector/OpenFunctionSourceConnector.java | 2 +-
.../pulsar/sink/connector/PulsarSinkConnector.java | 13 ++--
.../source/connector/PulsarSourceConnector.java | 14 ++---
.../redis/sink/connector/RedisSinkConnector.java | 11 ++--
.../source/connector/RedisSourceConnector.java | 12 ++--
.../source/connector/RocketMQSourceConnector.java | 11 +---
.../s3/source/connector/S3SourceConnector.java | 13 ++++
.../apache/eventmesh/openconnect/Application.java | 2 -
.../apache/eventmesh/openconnect/SinkWorker.java | 2 +-
.../api/connector/ConnectorContext.java | 3 -
.../api/connector/SinkConnectorContext.java | 2 -
.../api/connector/SourceConnectorContext.java | 1 -
.../offsetmgmt/api/data/RecordOffset.java | 2 +-
.../api/storage/ConnectorRecordPartition.java | 1 -
.../offsetmgmt/nacos/NacosConfigService.java | 6 +-
.../client/session/retry/EventMeshTcpRetryer.java | 2 +
.../eventmesh/runtime/util/ThreadPoolHelper.java | 46 ++++++++++++++
.../runtime/util/ThreadPoolHelperTest.java | 71 ++++++++++++++++++++++
23 files changed, 202 insertions(+), 78 deletions(-)
diff --git
a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/connector/KafkaSinkConnector.java
b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/connector/KafkaSinkConnector.java
index 620a488f1..49b7e88f1 100644
---
a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/connector/KafkaSinkConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/connector/KafkaSinkConnector.java
@@ -54,25 +54,17 @@ public class KafkaSinkConnector implements Sink {
@Override
public void init(Config config) {
this.sinkConfig = (KafkaSinkConfig) config;
- props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
sinkConfig.getConnectorConfig().getBootstrapServers());
- props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
sinkConfig.getConnectorConfig().getKeyConverter());
- props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
sinkConfig.getConnectorConfig().getValueConverter());
- props.put(ProducerConfig.ACKS_CONFIG,
sinkConfig.getConnectorConfig().getAck());
- props.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG,
sinkConfig.getConnectorConfig().getMaxRequestSize());
- props.put(ProducerConfig.BUFFER_MEMORY_CONFIG,
sinkConfig.getConnectorConfig().getBufferMemory());
- props.put(ProducerConfig.BATCH_SIZE_CONFIG,
sinkConfig.getConnectorConfig().getBatchSize());
- props.put(ProducerConfig.LINGER_MS_CONFIG,
sinkConfig.getConnectorConfig().getLingerMs());
- props.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG,
sinkConfig.getConnectorConfig().getRequestTimeoutMs());
- props.put(ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION,
sinkConfig.getConnectorConfig().getMaxInFightRequestsPerConnection());
- props.put(ProducerConfig.RETRIES_CONFIG,
sinkConfig.getConnectorConfig().getRetries());
- props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG,
sinkConfig.getConnectorConfig().getCompressionType());
- producer = new KafkaProducer<>(props);
+ doInit();
}
@Override
public void init(ConnectorContext connectorContext) throws Exception {
- SinkConnectorContext sinkConnectorContext =
(SinkConnectorContext)connectorContext;
+ SinkConnectorContext sinkConnectorContext = (SinkConnectorContext)
connectorContext;
this.sinkConfig = (KafkaSinkConfig)
sinkConnectorContext.getSinkConfig();
+ doInit();
+ }
+
+ private void doInit() {
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
sinkConfig.getConnectorConfig().getBootstrapServers());
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
sinkConfig.getConnectorConfig().getKeyConverter());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
sinkConfig.getConnectorConfig().getValueConverter());
diff --git
a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/connector/KafkaSourceConnector.java
b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/connector/KafkaSourceConnector.java
index 2a7c940d0..18fa42163 100644
---
a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/connector/KafkaSourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/connector/KafkaSourceConnector.java
@@ -55,23 +55,17 @@ public class KafkaSourceConnector implements Source {
@Override
public void init(Config config) throws Exception {
this.sourceConfig = (KafkaSourceConfig) config;
- Properties props = new Properties();
- props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
sourceConfig.getConnectorConfig().getBootstrapServers());
- props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
sourceConfig.getConnectorConfig().getKeyConverter());
- props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
sourceConfig.getConnectorConfig().getValueConverter());
- props.put(ConsumerConfig.GROUP_ID_CONFIG,
sourceConfig.getConnectorConfig().getGroupID());
- props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,
sourceConfig.getConnectorConfig().getEnableAutoCommit());
- props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG,
sourceConfig.getConnectorConfig().getMaxPollRecords());
- props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG,
sourceConfig.getConnectorConfig().getAutoCommitIntervalMS());
- props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG,
sourceConfig.getConnectorConfig().getSessionTimeoutMS());
- this.pollTimeOut = sourceConfig.getConnectorConfig().getPollTimeOut();
- this.kafkaConsumer = new KafkaConsumer<String, String>(props);
+ doInit();
}
@Override
public void init(ConnectorContext connectorContext) throws Exception {
- SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext)connectorContext;
+ SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext) connectorContext;
this.sourceConfig = (KafkaSourceConfig)
sourceConnectorContext.getSourceConfig();
+ doInit();
+ }
+
+ private void doInit() {
Properties props = new Properties();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
sourceConfig.getConnectorConfig().getBootstrapServers());
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
sourceConfig.getConnectorConfig().getKeyConverter());
diff --git
a/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/sink/connector/MongodbSinkConnector.java
b/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/sink/connector/MongodbSinkConnector.java
index aa11cb87a..ef65ff6e9 100644
---
a/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/sink/connector/MongodbSinkConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/sink/connector/MongodbSinkConnector.java
@@ -22,6 +22,8 @@ import
org.apache.eventmesh.connector.mongodb.sink.client.MongodbReplicaSetSinkC
import
org.apache.eventmesh.connector.mongodb.sink.client.MongodbStandaloneSinkClient;
import org.apache.eventmesh.connector.mongodb.sink.config.MongodbSinkConfig;
import org.apache.eventmesh.openconnect.api.config.Config;
+import org.apache.eventmesh.openconnect.api.connector.ConnectorContext;
+import org.apache.eventmesh.openconnect.api.connector.SinkConnectorContext;
import org.apache.eventmesh.openconnect.api.sink.Sink;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord;
@@ -51,6 +53,17 @@ public class MongodbSinkConnector implements Sink {
@Override
public void init(Config config) throws Exception {
this.sinkConfig = (MongodbSinkConfig) config;
+ doInit();
+ }
+
+ @Override
+ public void init(ConnectorContext connectorContext) throws Exception {
+ SinkConnectorContext sinkConnectorContext = (SinkConnectorContext)
connectorContext;
+ this.sinkConfig = (MongodbSinkConfig)
sinkConnectorContext.getSinkConfig();
+ doInit();
+ }
+
+ private void doInit() {
String connectorType =
sinkConfig.getConnectorConfig().getConnectorType();
if (connectorType.equals(ClusterType.STANDALONE.name())) {
this.client = new
MongodbStandaloneSinkClient(sinkConfig.getConnectorConfig());
diff --git
a/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/source/connector/MongodbSourceConnector.java
b/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/source/connector/MongodbSourceConnector.java
index baaa58a0d..995f8cd4a 100644
---
a/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/source/connector/MongodbSourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-mongodb/src/main/java/org/apache/eventmesh/connector/mongodb/source/connector/MongodbSourceConnector.java
@@ -22,6 +22,8 @@ import
org.apache.eventmesh.connector.mongodb.source.client.MongodbReplicaSetSou
import
org.apache.eventmesh.connector.mongodb.source.client.MongodbStandaloneSourceClient;
import
org.apache.eventmesh.connector.mongodb.source.config.MongodbSourceConfig;
import org.apache.eventmesh.openconnect.api.config.Config;
+import org.apache.eventmesh.openconnect.api.connector.ConnectorContext;
+import org.apache.eventmesh.openconnect.api.connector.SourceConnectorContext;
import org.apache.eventmesh.openconnect.api.source.Source;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord;
@@ -55,6 +57,17 @@ public class MongodbSourceConnector implements Source {
@Override
public void init(Config config) throws Exception {
this.sourceConfig = (MongodbSourceConfig) config;
+ doInit();
+ }
+
+ @Override
+ public void init(ConnectorContext connectorContext) throws Exception {
+ SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext) connectorContext;
+ this.sourceConfig = (MongodbSourceConfig)
sourceConnectorContext.getSourceConfig();
+ doInit();
+ }
+
+ private void doInit() {
this.queue = new LinkedBlockingQueue<>(1000);
String connectorType =
sourceConfig.getConnectorConfig().getConnectorType();
if (connectorType.equals(ClusterType.STANDALONE.name())) {
diff --git
a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java
b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java
index b3f488456..aed693600 100644
---
a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java
@@ -54,7 +54,7 @@ public class OpenFunctionSinkConnector implements Sink {
@Override
public void init(ConnectorContext connectorContext) throws Exception {
// init config for openfunction source connector
- SinkConnectorContext sinkConnectorContext =
(SinkConnectorContext)connectorContext;
+ SinkConnectorContext sinkConnectorContext = (SinkConnectorContext)
connectorContext;
this.sinkConfig = (OpenFunctionSinkConfig)
sinkConnectorContext.getSinkConfig();
this.queue = new LinkedBlockingQueue<>(1000);
}
diff --git
a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java
b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java
index 65877cfde..916d6793d 100644
---
a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java
@@ -55,7 +55,7 @@ public class OpenFunctionSourceConnector implements Source {
@Override
public void init(ConnectorContext connectorContext) throws Exception {
- SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext)connectorContext;
+ SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext) connectorContext;
// init config for openfunction source connector
this.sourceConfig = (OpenFunctionSourceConfig)
sourceConnectorContext.getSourceConfig();
this.queue = new LinkedBlockingQueue<>(1000);
diff --git
a/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/sink/connector/PulsarSinkConnector.java
b/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/sink/connector/PulsarSinkConnector.java
index 06c882dc8..426211cdd 100644
---
a/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/sink/connector/PulsarSinkConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/sink/connector/PulsarSinkConnector.java
@@ -53,19 +53,18 @@ public class PulsarSinkConnector implements Sink {
public void init(Config config) throws Exception {
// init config for pulsar source connector
this.sinkConfig = (PulsarSinkConfig) config;
- PulsarClient client = PulsarClient.builder()
- .serviceUrl(sinkConfig.getConnectorConfig().getServiceUrl())
- .build();
- producer = client.newProducer()
- .topic(sinkConfig.getConnectorConfig().getTopic())
- .create();
+ doInit();
}
@Override
public void init(ConnectorContext connectorContext) throws Exception {
// init config for pulsar source connector
- SinkConnectorContext sinkConnectorContext =
(SinkConnectorContext)connectorContext;
+ SinkConnectorContext sinkConnectorContext = (SinkConnectorContext)
connectorContext;
this.sinkConfig = (PulsarSinkConfig)
sinkConnectorContext.getSinkConfig();
+ doInit();
+ }
+
+ private void doInit() throws Exception {
PulsarClient client = PulsarClient.builder()
.serviceUrl(sinkConfig.getConnectorConfig().getServiceUrl())
.build();
diff --git
a/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/source/connector/PulsarSourceConnector.java
b/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/source/connector/PulsarSourceConnector.java
index 5a5736bc6..9d77c5b6e 100644
---
a/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/source/connector/PulsarSourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-pulsar/src/main/java/org/apache/eventmesh/connector/pulsar/source/connector/PulsarSourceConnector.java
@@ -59,19 +59,17 @@ public class PulsarSourceConnector implements Source {
public void init(Config config) throws Exception {
// init config for rocketmq source connector
this.sourceConfig = (PulsarSourceConfig) config;
- PulsarClient client = PulsarClient.builder()
- .serviceUrl(sourceConfig.getConnectorConfig().getServiceUrl())
- .build();
- consumer = client.newConsumer()
- .topic(sourceConfig.connectorConfig.getTopic())
- .subscriptionName(sourceConfig.getPubSubConfig().getGroup())
- .subscribe();
+ doInit();
}
@Override
public void init(ConnectorContext connectorContext) throws Exception {
- SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext)connectorContext;
+ SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext) connectorContext;
this.sourceConfig = (PulsarSourceConfig)
sourceConnectorContext.getSourceConfig();
+ doInit();
+ }
+
+ private void doInit() throws Exception {
PulsarClient client = PulsarClient.builder()
.serviceUrl(sourceConfig.getConnectorConfig().getServiceUrl())
.build();
diff --git
a/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/sink/connector/RedisSinkConnector.java
b/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/sink/connector/RedisSinkConnector.java
index abc11b9c3..88246cc05 100644
---
a/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/sink/connector/RedisSinkConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/sink/connector/RedisSinkConnector.java
@@ -55,16 +55,17 @@ public class RedisSinkConnector implements Sink {
@Override
public void init(Config config) throws Exception {
this.sinkConfig = (RedisSinkConfig) config;
- org.redisson.config.Config redisConfig = new
org.redisson.config.Config();
-
redisConfig.useSingleServer().setAddress(sinkConfig.connectorConfig.getServer());
- redisConfig.setCodec(CloudEventCodec.getInstance());
- this.redissonClient = Redisson.create(redisConfig);
+ doInit();
}
@Override
public void init(ConnectorContext connectorContext) throws Exception {
- SinkConnectorContext sinkConnectorContext =
(SinkConnectorContext)connectorContext;
+ SinkConnectorContext sinkConnectorContext = (SinkConnectorContext)
connectorContext;
this.sinkConfig = (RedisSinkConfig)
sinkConnectorContext.getSinkConfig();
+ doInit();
+ }
+
+ private void doInit() {
org.redisson.config.Config redisConfig = new
org.redisson.config.Config();
redisConfig.useSingleServer().setAddress(sinkConfig.connectorConfig.getServer());
redisConfig.setCodec(CloudEventCodec.getInstance());
diff --git
a/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/source/connector/RedisSourceConnector.java
b/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/source/connector/RedisSourceConnector.java
index 985d4c3b6..f42f7a3aa 100644
---
a/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/source/connector/RedisSourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-redis/src/main/java/org/apache/eventmesh/connector/redis/source/connector/RedisSourceConnector.java
@@ -58,17 +58,17 @@ public class RedisSourceConnector implements Source {
@Override
public void init(Config config) throws Exception {
this.sourceConfig = (RedisSourceConfig) config;
- org.redisson.config.Config redisConfig = new
org.redisson.config.Config();
-
redisConfig.useSingleServer().setAddress(sourceConfig.connectorConfig.getServer());
- redisConfig.setCodec(CloudEventCodec.getInstance());
- this.redissonClient = Redisson.create(redisConfig);
- this.queue = new LinkedBlockingQueue<>(1000);
+ doInit();
}
@Override
public void init(ConnectorContext connectorContext) throws Exception {
- SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext)connectorContext;
+ SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext) connectorContext;
this.sourceConfig = (RedisSourceConfig)
sourceConnectorContext.getSourceConfig();
+ doInit();
+ }
+
+ private void doInit() {
org.redisson.config.Config redisConfig = new
org.redisson.config.Config();
redisConfig.useSingleServer().setAddress(sourceConfig.connectorConfig.getServer());
redisConfig.setCodec(CloudEventCodec.getInstance());
diff --git
a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java
b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java
index 9fc68b010..331641d22 100644
---
a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java
@@ -25,35 +25,26 @@ import org.apache.eventmesh.openconnect.api.source.Source;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordOffset;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordPartition;
-import
org.apache.eventmesh.openconnect.offsetmgmt.api.storage.ConnectorRecordPartition;
import
org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageReader;
import org.apache.rocketmq.client.consumer.DefaultLitePullConsumer;
-import org.apache.rocketmq.client.exception.MQClientException;
-import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.TreeMap;
-import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
import lombok.extern.slf4j.Slf4j;
@@ -208,7 +199,7 @@ public class RocketMQSourceConnector implements Source {
prepareCommitOffset.forEach((messageQueue, list) -> {
Iterator<AtomicLong> offsetIterator = list.iterator();
- while(offsetIterator.hasNext()) {
+ while (offsetIterator.hasNext()) {
Map<MessageQueue, Long> commitOffsetTable = new HashMap<>();
commitOffsetTable.put(messageQueue,
offsetIterator.next().get());
consumer.commitSync(commitOffsetTable, false);
diff --git
a/eventmesh-connectors/eventmesh-connector-s3/src/main/java/org/apache/eventmesh/connector/s3/source/connector/S3SourceConnector.java
b/eventmesh-connectors/eventmesh-connector-s3/src/main/java/org/apache/eventmesh/connector/s3/source/connector/S3SourceConnector.java
index 43b757d08..8cd0a3627 100644
---
a/eventmesh-connectors/eventmesh-connector-s3/src/main/java/org/apache/eventmesh/connector/s3/source/connector/S3SourceConnector.java
+++
b/eventmesh-connectors/eventmesh-connector-s3/src/main/java/org/apache/eventmesh/connector/s3/source/connector/S3SourceConnector.java
@@ -21,6 +21,8 @@ package org.apache.eventmesh.connector.s3.source.connector;
import org.apache.eventmesh.connector.s3.source.config.S3SourceConfig;
import org.apache.eventmesh.connector.s3.source.config.SourceConnectorConfig;
import org.apache.eventmesh.openconnect.api.config.Config;
+import org.apache.eventmesh.openconnect.api.connector.ConnectorContext;
+import org.apache.eventmesh.openconnect.api.connector.SourceConnectorContext;
import org.apache.eventmesh.openconnect.api.source.Source;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordOffset;
@@ -79,6 +81,17 @@ public class S3SourceConnector implements Source {
public void init(Config config) throws Exception {
// init config for s3 source connector
this.sourceConfig = (S3SourceConfig) config;
+ doInit();
+ }
+
+ @Override
+ public void init(ConnectorContext connectorContext) throws Exception {
+ SourceConnectorContext sourceConnectorContext =
(SourceConnectorContext) connectorContext;
+ this.sourceConfig = (S3SourceConfig)
sourceConnectorContext.getSourceConfig();
+ doInit();
+ }
+
+ private void doInit() {
this.sourceConnectorConfig =
this.sourceConfig.getSourceConnectorConfig();
this.eachRecordSize = calculateEachRecordSize();
AwsBasicCredentials basicCredentials =
AwsBasicCredentials.create(this.sourceConnectorConfig.getAccessKey(),
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/Application.java
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/Application.java
index 25aaf2b6b..8a0341f41 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/Application.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/Application.java
@@ -21,8 +21,6 @@ import org.apache.eventmesh.openconnect.api.config.Config;
import org.apache.eventmesh.openconnect.api.config.SinkConfig;
import org.apache.eventmesh.openconnect.api.config.SourceConfig;
import org.apache.eventmesh.openconnect.api.connector.Connector;
-import org.apache.eventmesh.openconnect.api.connector.ConnectorContext;
-import org.apache.eventmesh.openconnect.api.connector.SourceConnectorContext;
import org.apache.eventmesh.openconnect.api.sink.Sink;
import org.apache.eventmesh.openconnect.api.source.Source;
import org.apache.eventmesh.openconnect.util.ConfigUtil;
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SinkWorker.java
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SinkWorker.java
index 80718cde6..7ac918a3e 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SinkWorker.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SinkWorker.java
@@ -48,7 +48,7 @@ public class SinkWorker implements ConnectorWorker {
private final EventMeshTCPClient<CloudEvent> eventMeshTCPClient;
- public SinkWorker(Sink sink, SinkConfig config){
+ public SinkWorker(Sink sink, SinkConfig config) {
this.sink = sink;
this.config = config;
eventMeshTCPClient = buildEventMeshSubClient(config);
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/ConnectorContext.java
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/ConnectorContext.java
index a17e21126..bc4298fde 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/ConnectorContext.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/ConnectorContext.java
@@ -17,9 +17,6 @@
package org.apache.eventmesh.openconnect.api.connector;
-import org.apache.eventmesh.openconnect.api.config.Config;
-import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord;
-
/**
* Connector Context
*/
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SinkConnectorContext.java
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SinkConnectorContext.java
index 22b94dbcb..a7aef4fff 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SinkConnectorContext.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SinkConnectorContext.java
@@ -18,8 +18,6 @@
package org.apache.eventmesh.openconnect.api.connector;
import org.apache.eventmesh.openconnect.api.config.SinkConfig;
-import org.apache.eventmesh.openconnect.api.config.SourceConfig;
-import
org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageReader;
import lombok.Data;
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SourceConnectorContext.java
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SourceConnectorContext.java
index 72af997c5..14fd92218 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SourceConnectorContext.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/SourceConnectorContext.java
@@ -17,7 +17,6 @@
package org.apache.eventmesh.openconnect.api.connector;
-import org.apache.eventmesh.openconnect.api.config.Config;
import org.apache.eventmesh.openconnect.api.config.SourceConfig;
import
org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageReader;
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordOffset.java
b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordOffset.java
index cad0e62cb..fee70de27 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordOffset.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordOffset.java
@@ -29,7 +29,7 @@ public class RecordOffset {
*/
private Map<String, ?> offset = new HashMap<>();
- public RecordOffset(){
+ public RecordOffset() {
}
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/ConnectorRecordPartition.java
b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/ConnectorRecordPartition.java
index 56ffd7756..05308e800 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/ConnectorRecordPartition.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/ConnectorRecordPartition.java
@@ -19,7 +19,6 @@ package
org.apache.eventmesh.openconnect.offsetmgmt.api.storage;
import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordPartition;
-import java.io.Serializable;
import java.util.Map;
import java.util.Objects;
diff --git
a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/nacos/NacosConfigService.java
b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/nacos/NacosConfigService.java
index 384062289..c8266d615 100644
---
a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/nacos/NacosConfigService.java
+++
b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/nacos/NacosConfigService.java
@@ -28,7 +28,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.Executor;
import com.alibaba.nacos.api.NacosFactory;
@@ -112,7 +111,7 @@ public class NacosConfigService implements
OffsetManagementService {
Map<ConnectorRecordPartition, RecordOffset> recordMap =
positionStore.getKVMap();
List<Map<String, Object>> recordToSyncList = new ArrayList<>();
- for(Map.Entry<ConnectorRecordPartition, RecordOffset> entry :
recordMap.entrySet()) {
+ for (Map.Entry<ConnectorRecordPartition, RecordOffset> entry :
recordMap.entrySet()) {
Map<String, Object> synchronizeMap = new HashMap<>();
synchronizeMap.put("connectorRecordPartition", entry.getKey());
synchronizeMap.put("recordOffset", entry.getValue());
@@ -206,7 +205,8 @@ public class NacosConfigService implements
OffsetManagementService {
});
for (Map<String, Object> recordPartitionOffsetMap :
recordOffsetList) {
- ConnectorRecordPartition connectorRecordPartition =
JacksonUtils.toObj(JacksonUtils.toJson(recordPartitionOffsetMap.get("connectorRecordPartition")),
+ ConnectorRecordPartition connectorRecordPartition =
JacksonUtils.toObj(
+
JacksonUtils.toJson(recordPartitionOffsetMap.get("connectorRecordPartition")),
ConnectorRecordPartition.class);
RecordOffset recordOffset =
JacksonUtils.toObj(JacksonUtils.toJson(recordPartitionOffsetMap.get("recordOffset")),
RecordOffset.class);
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/retry/EventMeshTcpRetryer.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/retry/EventMeshTcpRetryer.java
index cc57f8854..1975a0901 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/retry/EventMeshTcpRetryer.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/retry/EventMeshTcpRetryer.java
@@ -23,6 +23,7 @@ import org.apache.eventmesh.runtime.boot.EventMeshTCPServer;
import org.apache.eventmesh.runtime.core.protocol.RetryContext;
import
org.apache.eventmesh.runtime.core.protocol.tcp.client.session.push.DownStreamMsgContext;
import org.apache.eventmesh.runtime.util.EventMeshUtil;
+import org.apache.eventmesh.runtime.util.ThreadPoolHelper;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.DelayQueue;
@@ -127,5 +128,6 @@ public class EventMeshTcpRetryer {
}
public void printRetryThreadPoolState() {
+ ThreadPoolHelper.printState(pool);
}
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ThreadPoolHelper.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ThreadPoolHelper.java
new file mode 100644
index 000000000..7f5b4bb31
--- /dev/null
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ThreadPoolHelper.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.eventmesh.runtime.util;
+
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class ThreadPoolHelper {
+
+ public static void printState(ThreadPoolExecutor threadPool) {
+ if (threadPool == null) {
+ log.warn("No thread pool is provided!");
+ return;
+ }
+
+ log.info("The ThreadPool's state==================");
+ log.info("Shutdown | Terminating | Terminated: {} | {} | {}",
threadPool.isShutdown(), threadPool.isTerminating(), threadPool.isTerminated());
+ log.info("Active Threads: " + threadPool.getActiveCount());
+ log.info("Completed Tasks / Tasks: {} / {}" +
threadPool.getCompletedTaskCount(), threadPool.getTaskCount());
+ log.info("Queue Size: " + threadPool.getQueue().size());
+ log.info("Core Pool Size: " + threadPool.getCorePoolSize());
+ log.info("Maximum Pool Size: " + threadPool.getMaximumPoolSize());
+ log.info("Keep Alive Time(ms): " +
threadPool.getKeepAliveTime(TimeUnit.MILLISECONDS));
+ log.info("The rejection policy: " +
threadPool.getRejectedExecutionHandler().getClass().getSimpleName());
+ log.info("========================================");
+ }
+
+}
diff --git
a/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/util/ThreadPoolHelperTest.java
b/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/util/ThreadPoolHelperTest.java
new file mode 100644
index 000000000..f117ee01c
--- /dev/null
+++
b/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/util/ThreadPoolHelperTest.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.eventmesh.runtime.util;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.RejectedExecutionHandler;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ThreadPoolHelperTest {
+
+ @Mock
+ private ThreadPoolExecutor mockThreadPool;
+
+ @Mock
+ private RejectedExecutionHandler mockRejectionPolicy;
+
+ @Test
+ public void testPrintState() {
+ when(mockThreadPool.isShutdown()).thenReturn(false);
+ when(mockThreadPool.isTerminating()).thenReturn(false);
+ when(mockThreadPool.isTerminated()).thenReturn(false);
+ when(mockThreadPool.getActiveCount()).thenReturn(2);
+ when(mockThreadPool.getCompletedTaskCount()).thenReturn(10L);
+ when(mockThreadPool.getTaskCount()).thenReturn(15L);
+ when(mockThreadPool.getQueue()).thenReturn(new
LinkedBlockingDeque<>(5));
+ when(mockThreadPool.getCorePoolSize()).thenReturn(5);
+ when(mockThreadPool.getMaximumPoolSize()).thenReturn(10);
+
when(mockThreadPool.getKeepAliveTime(any(TimeUnit.class))).thenReturn(1000L);
+
when(mockThreadPool.getRejectedExecutionHandler()).thenReturn(mockRejectionPolicy);
+
+ ThreadPoolHelper.printState(mockThreadPool);
+
+ verify(mockThreadPool).isShutdown();
+ verify(mockThreadPool).isTerminating();
+ verify(mockThreadPool).isTerminated();
+ verify(mockThreadPool).getActiveCount();
+ verify(mockThreadPool).getCompletedTaskCount();
+ verify(mockThreadPool).getTaskCount();
+ verify(mockThreadPool).getQueue();
+ verify(mockThreadPool).getCorePoolSize();
+ verify(mockThreadPool).getMaximumPoolSize();
+ verify(mockThreadPool).getKeepAliveTime(any(TimeUnit.class));
+ verify(mockThreadPool).getRejectedExecutionHandler();
+ }
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]